JPH0566914A - 破線の描画方式 - Google Patents
破線の描画方式Info
- Publication number
- JPH0566914A JPH0566914A JP25704091A JP25704091A JPH0566914A JP H0566914 A JPH0566914 A JP H0566914A JP 25704091 A JP25704091 A JP 25704091A JP 25704091 A JP25704091 A JP 25704091A JP H0566914 A JPH0566914 A JP H0566914A
- Authority
- JP
- Japan
- Prior art keywords
- broken line
- coordinate
- coordinate point
- point
- solid line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 57
- 230000001174 ascending effect Effects 0.000 claims description 5
- 230000000712 assembly Effects 0.000 abstract 2
- 238000000429 assembly Methods 0.000 abstract 2
- 230000001186 cumulative effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
Landscapes
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【目的】 特異点が必ず実線部に存在するように座標点
の集合を連結し、座標点の集合が連結されて描画される
破線のY座標についての極値が適正に描画されるように
する。 【構成】 データ入力手段1は、連続線分データ,座標
要素数およびY座標最小間隔等の破線の描画に必要なデ
ータを入力する。破線描画距離算出手段2は、データ入
力手段1により入力されたデータに基づき、処理対象の
座標点が特異点であるか否かの判定を行い、その判定に
基づいて特異点が実線部に描画されるように実線部およ
び空白部の長さを算出する。破線描画手段3は、破線描
画距離算出手段2による実線部および空白部の長さの算
出に基づいて、出力装置4に対して破線の描画を行う。
の集合を連結し、座標点の集合が連結されて描画される
破線のY座標についての極値が適正に描画されるように
する。 【構成】 データ入力手段1は、連続線分データ,座標
要素数およびY座標最小間隔等の破線の描画に必要なデ
ータを入力する。破線描画距離算出手段2は、データ入
力手段1により入力されたデータに基づき、処理対象の
座標点が特異点であるか否かの判定を行い、その判定に
基づいて特異点が実線部に描画されるように実線部およ
び空白部の長さを算出する。破線描画手段3は、破線描
画距離算出手段2による実線部および空白部の長さの算
出に基づいて、出力装置4に対して破線の描画を行う。
Description
【0001】
【産業上の利用分野】本発明は、X座標について昇順に
並んだ座標点の集合により表現された連続線分データを
計算機によって処理し破線として出力装置に対して描画
(表示または印字等)する破線の描画方式に関する。
並んだ座標点の集合により表現された連続線分データを
計算機によって処理し破線として出力装置に対して描画
(表示または印字等)する破線の描画方式に関する。
【0002】なお、本発明の説明におけるX座標とY座
標とは直交座標における各方向の座標を示しており、X
座標とY座標とは互換的なものである(Y座標について
昇順に並んだ座標点の集合により表現された連続線分デ
ータに対しても本発明を適用することができる)。ま
た、本発明の説明において、「頂点」とはY座標につい
て極値となる座標点をいう。さらに、本発明の説明にお
いて、「特異点」とは、頂点の中で、「X座標について
の昇順」という順序における次の座標点との間のY座標
の値の差が一定値(当該破線の描画方式に対して設定さ
れている一定値)よりも大きな頂点をいう。
標とは直交座標における各方向の座標を示しており、X
座標とY座標とは互換的なものである(Y座標について
昇順に並んだ座標点の集合により表現された連続線分デ
ータに対しても本発明を適用することができる)。ま
た、本発明の説明において、「頂点」とはY座標につい
て極値となる座標点をいう。さらに、本発明の説明にお
いて、「特異点」とは、頂点の中で、「X座標について
の昇順」という順序における次の座標点との間のY座標
の値の差が一定値(当該破線の描画方式に対して設定さ
れている一定値)よりも大きな頂点をいう。
【0003】
【従来の技術】従来、この種の破線の描画方式では、座
標点を連結する軌跡上で実線部(実線で描画される部
分)と空白部(実線部と実線部との間の空白の部分)と
の区別は、破線データのみによって判断されていた。こ
こで、破線データとは、破線を構成する1単位(1つの
実線部および1つの空白部)の長さL0(この長さが破
線の1周期である)と、1周期中の実線部の長さL1 と
を示すデータをいう(図3(a)参照)。
標点を連結する軌跡上で実線部(実線で描画される部
分)と空白部(実線部と実線部との間の空白の部分)と
の区別は、破線データのみによって判断されていた。こ
こで、破線データとは、破線を構成する1単位(1つの
実線部および1つの空白部)の長さL0(この長さが破
線の1周期である)と、1周期中の実線部の長さL1 と
を示すデータをいう(図3(a)参照)。
【0004】次に、図3(a)〜(c)および図4を参
照して、従来の破線の描画方式の具体的な動作について
説明する。
照して、従来の破線の描画方式の具体的な動作について
説明する。
【0005】図3(b)は、破線の描画方式における処
理対象の座標点の集合の一例を示す図である。この座標
点の集合は、{(x1 ,y1 ),(x2 ,y2 ),(x
3 ,y3 ),(x4 ,y4 ),(x5 ,y5 ),
(x6 ,y6 ),(x7 ,y7 ),(x8 ,y8 )}に
よって示される。図3(b)に示す座標点の集合に関し
て、例えば、(x1 ,y1 )の座標点を「座標点
“1”」で示す。また、例えば、隣接する座標点“1
“と座標点“2”との間の距離を「d1.2 」で示す。こ
こで、座標点間の距離di.i+1 は次式により算出され
る。 di.i+1 ={(xi −xi+1 )2 +(yi −yi+1 )2 }1/2
理対象の座標点の集合の一例を示す図である。この座標
点の集合は、{(x1 ,y1 ),(x2 ,y2 ),(x
3 ,y3 ),(x4 ,y4 ),(x5 ,y5 ),
(x6 ,y6 ),(x7 ,y7 ),(x8 ,y8 )}に
よって示される。図3(b)に示す座標点の集合に関し
て、例えば、(x1 ,y1 )の座標点を「座標点
“1”」で示す。また、例えば、隣接する座標点“1
“と座標点“2”との間の距離を「d1.2 」で示す。こ
こで、座標点間の距離di.i+1 は次式により算出され
る。 di.i+1 ={(xi −xi+1 )2 +(yi −yi+1 )2 }1/2
【0006】図3(c)は、従来の破線の描画方式によ
り図3(b)に示す座標点の集合が破線で連結された状
態を示す図である。
り図3(b)に示す座標点の集合が破線で連結された状
態を示す図である。
【0007】図4は、従来の破線の描画方式の処理(破
線を構成する実線部の長さおよび空白部の長さが算出さ
れる手順等)を示す流れ図である。
線を構成する実線部の長さおよび空白部の長さが算出さ
れる手順等)を示す流れ図である。
【0008】従来の破線の描画方式は、座標点の集合に
より表現された連続線分データおよび破線データ等を入
力し、次のようにして、破線を構成する実線部の長さお
よび空白部の長さを算出し、その算出に基づいて破線の
描画を出力装置に対して行っていた。
より表現された連続線分データおよび破線データ等を入
力し、次のようにして、破線を構成する実線部の長さお
よび空白部の長さを算出し、その算出に基づいて破線の
描画を出力装置に対して行っていた。
【0009】初期値の設定を行う(ステップ401)。
ここで、Dは破線の1周期の始点からの累積距離を示
し、iは処理対象の座標点の番号(「座標点“i”」と
いうときのi)を示し、jは実線部と空白部とを識別す
るためのフラグを示し(jが1の場合には実線部の描画
を示し、jが0の場合には空白部の描画を示す)、nは
処理対象の座標点の数(座標要素数)を示している。
ここで、Dは破線の1周期の始点からの累積距離を示
し、iは処理対象の座標点の番号(「座標点“i”」と
いうときのi)を示し、jは実線部と空白部とを識別す
るためのフラグを示し(jが1の場合には実線部の描画
を示し、jが0の場合には空白部の描画を示す)、nは
処理対象の座標点の数(座標要素数)を示している。
【0010】「i<n」であるか否かを判定する(ステ
ップ402)。この判定で「i<n」でない場合には、
処理を終了する。すなわち、終了条件「i<n」が満た
されなくなるまで、以下の処理を繰り返す。
ップ402)。この判定で「i<n」でない場合には、
処理を終了する。すなわち、終了条件「i<n」が満た
されなくなるまで、以下の処理を繰り返す。
【0011】ステップ402の判定で「i<n」である
場合には、座標点“i“と座標点“i+1”との間の距
離di.i+1 を求め(ステップ403)、「D+di.i+1
>Lj 」であるか否かを判定する(ステップ404)。
場合には、座標点“i“と座標点“i+1”との間の距
離di.i+1 を求め(ステップ403)、「D+di.i+1
>Lj 」であるか否かを判定する(ステップ404)。
【0012】この判定で「D+di.i+1 >Lj 」でない
場合には、現時点で処理対象(連結の対象)としている
座標点“i”および座標点“i+1”に関して描画処理
draw(xi ,yi ,xi+1 ,yi+1 ,j)を行う
(ステップ405)。ここで、描画処理draw
(xa ,ya ,xb ,yb ,f)とは、座標点(xa ,
ya )と座標点(xb ,yb )との間に、5番目の引数
fの値が1である場合には実線を描画し、5番目の引数
fの値が0である場合には空白を描画する(描画処理を
行わない)処理をいう。
場合には、現時点で処理対象(連結の対象)としている
座標点“i”および座標点“i+1”に関して描画処理
draw(xi ,yi ,xi+1 ,yi+1 ,j)を行う
(ステップ405)。ここで、描画処理draw
(xa ,ya ,xb ,yb ,f)とは、座標点(xa ,
ya )と座標点(xb ,yb )との間に、5番目の引数
fの値が1である場合には実線を描画し、5番目の引数
fの値が0である場合には空白を描画する(描画処理を
行わない)処理をいう。
【0013】ステップ405の描画処理を終えると、D
を「D+di.i+1 」に更新し(ステップ406)、iに
1を加算し(ステップ407)、ステップ402の判定
に制御を戻す。
を「D+di.i+1 」に更新し(ステップ406)、iに
1を加算し(ステップ407)、ステップ402の判定
に制御を戻す。
【0014】ステップ404の判定で「D+di.i+1 >
Lj」である場合には、座標点“i”(xi ,yi )と
座標点“i+1”(xi+1 ,yi+1 )とを結ぶ直線上で
座標点“i”からの距離が「Lj −D」の座標点
“i′”(xi′,yi ′)を求め(ステップ40
8)、描画処理draw(xi ,yi ,xi ′,
yi ′,j)を行う(ステップ409)。
Lj」である場合には、座標点“i”(xi ,yi )と
座標点“i+1”(xi+1 ,yi+1 )とを結ぶ直線上で
座標点“i”からの距離が「Lj −D」の座標点
“i′”(xi′,yi ′)を求め(ステップ40
8)、描画処理draw(xi ,yi ,xi ′,
yi ′,j)を行う(ステップ409)。
【0015】ステップ409の描画処理が終了すると、
jの値の変換(0から1への変換または1から0への変
換)を行い(ステップ410)、変換後のjについて
「j≠0」であるか否かを判定する(ステップ41
1)。
jの値の変換(0から1への変換または1から0への変
換)を行い(ステップ410)、変換後のjについて
「j≠0」であるか否かを判定する(ステップ41
1)。
【0016】この判定で「j≠0」でない場合には、座
標点“i”と座標点“i′”との間の距離di.t を求め
(ステップ412)、Dを「D+di.t 」に更新する
(ステップ413)。
標点“i”と座標点“i′”との間の距離di.t を求め
(ステップ412)、Dを「D+di.t 」に更新する
(ステップ413)。
【0017】ステップ411の判定で「j≠0」である
場合には、Dを0に更新する(初期化する)(ステップ
414)。
場合には、Dを0に更新する(初期化する)(ステップ
414)。
【0018】ステップ413または414の処理が終了
すると、xi ′およびyi ′を新たなxi およびyi と
みなし(ステップ415)、ステップ402の判定に制
御を戻す。
すると、xi ′およびyi ′を新たなxi およびyi と
みなし(ステップ415)、ステップ402の判定に制
御を戻す。
【0019】このように、従来の破線の描画方式では、
実線部の長さおよび空白部の長さの算出は、破線データ
に基づいて行われていた。
実線部の長さおよび空白部の長さの算出は、破線データ
に基づいて行われていた。
【0020】
【発明が解決しようとする課題】上述した従来の破線の
描画方式では、実線部と空白部との区別が破線データの
みによって判断されているので、特異点が空白部に存在
する場合が生じ、座標点の集合が連結されて描画される
破線のY座標についての極値が適正に描画されないおそ
れがあるという欠点があった。
描画方式では、実線部と空白部との区別が破線データの
みによって判断されているので、特異点が空白部に存在
する場合が生じ、座標点の集合が連結されて描画される
破線のY座標についての極値が適正に描画されないおそ
れがあるという欠点があった。
【0021】本発明の目的は、上述の点に鑑み、特異点
が必ず実線部に存在するように座標点の集合を連結し、
座標点の集合が連結されて描画される破線のY座標につ
いての極値が適正に描画されるようにする破線の描画方
式を提供することにある。
が必ず実線部に存在するように座標点の集合を連結し、
座標点の集合が連結されて描画される破線のY座標につ
いての極値が適正に描画されるようにする破線の描画方
式を提供することにある。
【0022】
【課題を解決するための手段】本発明の破線の描画方式
は、X座標について昇順に並んだ座標点の集合により表
現された連続線分データを計算機によって処理し破線と
して出力装置に対して描画する破線の描画方式におい
て、連続線分データ,座標要素数およびY座標最小間隔
等の破線の描画に必要なデータを入力するデータ入力手
段と、このデータ入力手段により入力されたデータに基
づき処理対象の座標点が特異点であるか否かの判定を行
いその判定に基づいて特異点が実線部に描画されるよう
に実線部および空白部の長さを算出する破線描画距離算
出手段と、この破線描画距離算出手段による実線部およ
び空白部の長さの算出に基づいて出力装置に対して破線
の描画を行う破線描画手段とを有する。
は、X座標について昇順に並んだ座標点の集合により表
現された連続線分データを計算機によって処理し破線と
して出力装置に対して描画する破線の描画方式におい
て、連続線分データ,座標要素数およびY座標最小間隔
等の破線の描画に必要なデータを入力するデータ入力手
段と、このデータ入力手段により入力されたデータに基
づき処理対象の座標点が特異点であるか否かの判定を行
いその判定に基づいて特異点が実線部に描画されるよう
に実線部および空白部の長さを算出する破線描画距離算
出手段と、この破線描画距離算出手段による実線部およ
び空白部の長さの算出に基づいて出力装置に対して破線
の描画を行う破線描画手段とを有する。
【0023】
【作用】本発明の破線の描画方式では、データ入力手段
が連続線分データ,座標要素数およびY座標最小間隔等
の破線の描画に必要なデータを入力し、破線描画距離算
出手段がデータ入力手段により入力されたデータに基づ
き処理対象の座標点が特異点であるか否かの判定を行い
その判定に基づいて特異点が実線部に描画されるように
実線部および空白部の長さを算出し、破線描画手段が破
線描画距離算出手段による実線部および空白部の長さの
算出に基づいて出力装置に対して破線の描画を行う。
が連続線分データ,座標要素数およびY座標最小間隔等
の破線の描画に必要なデータを入力し、破線描画距離算
出手段がデータ入力手段により入力されたデータに基づ
き処理対象の座標点が特異点であるか否かの判定を行い
その判定に基づいて特異点が実線部に描画されるように
実線部および空白部の長さを算出し、破線描画手段が破
線描画距離算出手段による実線部および空白部の長さの
算出に基づいて出力装置に対して破線の描画を行う。
【0024】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
説明する。
【0025】図1は、本発明の破線の描画方式の一実施
例の構成を示すブロック図である。本実施例の破線の描
画方式は、データ入力手段1と、破線描画距離算出手段
2と、破線描画手段3と、出力装置4(ディスプレイ装
置やプリンタ等)とを含んで構成されている。
例の構成を示すブロック図である。本実施例の破線の描
画方式は、データ入力手段1と、破線描画距離算出手段
2と、破線描画手段3と、出力装置4(ディスプレイ装
置やプリンタ等)とを含んで構成されている。
【0026】図2は、本実施例の破線の描画方式の処理
を示す流れ図である。この処理は、初期値設定ステップ
201と、処理終了判定ステップ202と、距離算出ス
テップ203と、Y座標間隔判定ステップ204と、頂
点判定ステップ205と、特異点判定ステップ206
と、フラグおよび累積距離更新ステップ207と、Y座
標累積値初期化ステップ208と、破線データ距離判定
ステップ209と、描画処理ステップ210と、累積距
離更新ステップ211と、Y座標累積値更新ステップ2
12と、座標点番号更新ステップ213と、中間座標点
算出ステップ214と、描画処理ステップ215と、Y
座標累積値更新ステップ216と、フラグ変換ステップ
217と、フラグ判定ステップ218と、距離算出ステ
ップ219と、累積距離更新ステップ220と、累積距
離初期化ステップ221と、処理対象座標点変換ステッ
プ222とからなる。
を示す流れ図である。この処理は、初期値設定ステップ
201と、処理終了判定ステップ202と、距離算出ス
テップ203と、Y座標間隔判定ステップ204と、頂
点判定ステップ205と、特異点判定ステップ206
と、フラグおよび累積距離更新ステップ207と、Y座
標累積値初期化ステップ208と、破線データ距離判定
ステップ209と、描画処理ステップ210と、累積距
離更新ステップ211と、Y座標累積値更新ステップ2
12と、座標点番号更新ステップ213と、中間座標点
算出ステップ214と、描画処理ステップ215と、Y
座標累積値更新ステップ216と、フラグ変換ステップ
217と、フラグ判定ステップ218と、距離算出ステ
ップ219と、累積距離更新ステップ220と、累積距
離初期化ステップ221と、処理対象座標点変換ステッ
プ222とからなる。
【0027】図3(d)は、本実施例の破線の描画方式
により図3(b)に示す座標点の集合が破線で連結され
た状態を示す図である。
により図3(b)に示す座標点の集合が破線で連結され
た状態を示す図である。
【0028】図5は、本実施例の破線の描画方式による
描画処理の具体例を説明するための図である。
描画処理の具体例を説明するための図である。
【0029】次に、このように構成された本実施例の破
線の描画方式の動作について説明する。
線の描画方式の動作について説明する。
【0030】データ入力手段1は、図3(a)に示すよ
うな破線データ,図3(b)に示すような座標点の集合
により表現された連続線分データおよび破線描画距離算
出手段2の処理で使用されるY座標最小間隔等のデータ
を入力する。なお、本実施例の破線の描画方式では、特
異点であるか否かを判定するための基準となる「Y座標
の値の差の一定値」が上述のY座標最小間隔に該当す
る。
うな破線データ,図3(b)に示すような座標点の集合
により表現された連続線分データおよび破線描画距離算
出手段2の処理で使用されるY座標最小間隔等のデータ
を入力する。なお、本実施例の破線の描画方式では、特
異点であるか否かを判定するための基準となる「Y座標
の値の差の一定値」が上述のY座標最小間隔に該当す
る。
【0031】破線描画距離算出手段2は、次のような手
順で処理を行う。
順で処理を行う。
【0032】データ入力手段1によるデータの入力等に
基づいて、初期値の設定を行う(ステップ201)。こ
こで、Dは破線の1周期の始点からの累積距離を示し、
iは処理対象の座標点の番号を示し、jは実線部と空白
部とを識別するためのフラグを示し(jが1の場合には
実線部の描画を示し、jが0の場合には空白部の描画を
示す)、nは処理対象の座標点の数(座標要素数)を示
し、SはY座標最小間隔を示し(本実施例では「S=1
0」とする)、Yd は頂点からのY座標の累積値を示し
ている。
基づいて、初期値の設定を行う(ステップ201)。こ
こで、Dは破線の1周期の始点からの累積距離を示し、
iは処理対象の座標点の番号を示し、jは実線部と空白
部とを識別するためのフラグを示し(jが1の場合には
実線部の描画を示し、jが0の場合には空白部の描画を
示す)、nは処理対象の座標点の数(座標要素数)を示
し、SはY座標最小間隔を示し(本実施例では「S=1
0」とする)、Yd は頂点からのY座標の累積値を示し
ている。
【0033】「i<n」であるか否かを判定する(ステ
ップ202)。この判定で「i<n」でない場合には、
処理を終了する。すなわち、終了条件「i<n」が満た
されなくなるまで、以下の処理を繰り返す。
ップ202)。この判定で「i<n」でない場合には、
処理を終了する。すなわち、終了条件「i<n」が満た
されなくなるまで、以下の処理を繰り返す。
【0034】ステップ202の判定で「i<n」である
場合には、座標点“i“と座標点“i+1”との間の距
離di.i+1 を求める(ステップ203)。
場合には、座標点“i“と座標点“i+1”との間の距
離di.i+1 を求める(ステップ203)。
【0035】座標点“i+1”と座標点“i”とのY座
標の差Yd ′を求め(「Yd ′=yi+1 −yi 」であ
る)(ステップ204)、「Yd ×Yd ′<0」である
か否かの判定により座標点“i”が頂点であるか否かを
判定する(ステップ205)。
標の差Yd ′を求め(「Yd ′=yi+1 −yi 」であ
る)(ステップ204)、「Yd ×Yd ′<0」である
か否かの判定により座標点“i”が頂点であるか否かを
判定する(ステップ205)。
【0036】この判定で「Yd ×Yd ′<0」である
(座標点“i”が頂点である)場合には、「|Yd ′|
(Yd ′の絶対値)>S」であるか否かの判定により座
標点“i”が特異点であるか否かを判定する(ステップ
206)。
(座標点“i”が頂点である)場合には、「|Yd ′|
(Yd ′の絶対値)>S」であるか否かの判定により座
標点“i”が特異点であるか否かを判定する(ステップ
206)。
【0037】この判定で「|Yd ′|>S」である(座
標点“i”が特異点である)場合には、jに1を設定し
てDに0を設定する(座標点“i”から実線部を描画す
るための準備を行う)(ステップ207)。
標点“i”が特異点である)場合には、jに1を設定し
てDに0を設定する(座標点“i”から実線部を描画す
るための準備を行う)(ステップ207)。
【0038】このように、特異点からの実線部の描画を
保証するのは、Y座標についての極値を適正に描画する
ためである。ただし、全ての頂点からの実線部の描画を
行うと、座標点の集合の態様によっては、座標点を連結
する線が破線にならないおそれがあるので、ステップ2
06の判定に基づいて頂点の中の特異点のみについてス
テップ207の処理を適用する。
保証するのは、Y座標についての極値を適正に描画する
ためである。ただし、全ての頂点からの実線部の描画を
行うと、座標点の集合の態様によっては、座標点を連結
する線が破線にならないおそれがあるので、ステップ2
06の判定に基づいて頂点の中の特異点のみについてス
テップ207の処理を適用する。
【0039】ステップ206の判定で「|Yd ′|>
S」でない場合またはステップ207の処理が終了した
場合には、Yd に0を設定する(頂点が出現する毎にそ
の頂点からのY座標の累積値をYd とし、ステップ20
5における頂点であるか否かの判定が適正に行われるよ
うにする)(ステップ208)。
S」でない場合またはステップ207の処理が終了した
場合には、Yd に0を設定する(頂点が出現する毎にそ
の頂点からのY座標の累積値をYd とし、ステップ20
5における頂点であるか否かの判定が適正に行われるよ
うにする)(ステップ208)。
【0040】ステップ205の判定で「Yd ×Yd ′<
0」でない場合またはステップ208の処理が終了した
場合には、「D+di.i+1 >Lj 」であるか否かを判定
する(ステップ209)。
0」でない場合またはステップ208の処理が終了した
場合には、「D+di.i+1 >Lj 」であるか否かを判定
する(ステップ209)。
【0041】この判定で「D+di.i+1 >Lj 」でない
場合には、現時点で処理対象(連結の対象)としている
座標点“i”および座標点“i+1”に関しての描画処
理draw(xi ,yi ,xi+1 ,yi+1 ,j)を破線
描画手段3に対して指示する(ステップ210)。ここ
で、描画処理draw(xa ,ya ,xb ,yb ,f)
とは、従来の破線の描画方式と同様に、座標点(xa ,
ya )と座標点(xb,yb )との間に、5番目の引数
fの値が1である場合には実線を描画し、5番目の引数
fの値が0である場合には空白を描画する(描画処理を
行わない)処理をいう。
場合には、現時点で処理対象(連結の対象)としている
座標点“i”および座標点“i+1”に関しての描画処
理draw(xi ,yi ,xi+1 ,yi+1 ,j)を破線
描画手段3に対して指示する(ステップ210)。ここ
で、描画処理draw(xa ,ya ,xb ,yb ,f)
とは、従来の破線の描画方式と同様に、座標点(xa ,
ya )と座標点(xb,yb )との間に、5番目の引数
fの値が1である場合には実線を描画し、5番目の引数
fの値が0である場合には空白を描画する(描画処理を
行わない)処理をいう。
【0042】破線描画手段3は、上述の指示に基づい
て、出力装置4に対して描画処理draw(xi ,
yi ,xi+1 ,yi+1 ,j)を行う。
て、出力装置4に対して描画処理draw(xi ,
yi ,xi+1 ,yi+1 ,j)を行う。
【0043】この描画処理が終了すると、破線描画距離
算出手段2は次のような手順で処理を続行する。
算出手段2は次のような手順で処理を続行する。
【0044】Dを「D+di.i+1 」に更新し(ステップ
211)、Yd を「Yd +(yi+1−yi )」に更新し
(ステップ212)、iに1を加算し(ステップ21
3)、ステップ202の判定に制御を戻す。
211)、Yd を「Yd +(yi+1−yi )」に更新し
(ステップ212)、iに1を加算し(ステップ21
3)、ステップ202の判定に制御を戻す。
【0045】ステップ209の判定で「D+di.i+1 >
Lj」である場合には、座標点“i”(xi ,yi )と
座標点“i+1”(xi+1 ,yi+1 )とを結ぶ直線上で
座標点“i”からの距離が「Lj −D」の座標点
“i′”(xi′,yi ′)を求め(ステップ21
4)、描画処理draw(xi ,yi ,xi ′,
yi ′,j)を破線描画手段3に対して指示する(ステ
ップ215)。
Lj」である場合には、座標点“i”(xi ,yi )と
座標点“i+1”(xi+1 ,yi+1 )とを結ぶ直線上で
座標点“i”からの距離が「Lj −D」の座標点
“i′”(xi′,yi ′)を求め(ステップ21
4)、描画処理draw(xi ,yi ,xi ′,
yi ′,j)を破線描画手段3に対して指示する(ステ
ップ215)。
【0046】破線描画手段3は、この指示に基づいて、
出力装置4に対して描画処理draw(xi ,yi ,x
i ′,yi ′,j)を行う。
出力装置4に対して描画処理draw(xi ,yi ,x
i ′,yi ′,j)を行う。
【0047】この描画処理が終了すると、破線描画距離
算出手段2は次のような手順で処理を続行する。
算出手段2は次のような手順で処理を続行する。
【0048】Yd を「Yd +(yi ′−yi )」に更新
し(ステップ216)、jの値を変換し(ステップ21
7)、変換後のjについて「j≠0」であるか否かを判
定する(ステップ218)。
し(ステップ216)、jの値を変換し(ステップ21
7)、変換後のjについて「j≠0」であるか否かを判
定する(ステップ218)。
【0049】この判定で「j≠0」でない場合には、座
標点“i”と座標点“i′”との間の距離di.t を求め
(ステップ219)、Dを「D+di.t 」に更新する
(ステップ220)。
標点“i”と座標点“i′”との間の距離di.t を求め
(ステップ219)、Dを「D+di.t 」に更新する
(ステップ220)。
【0050】ステップ218の判定で「j≠0」である
場合には、Dを0に更新する(初期化する)(ステップ
221)。
場合には、Dを0に更新する(初期化する)(ステップ
221)。
【0051】ステップ220または221の処理が終了
すると、xi ′およびyi ′を新たなxi およびyi と
みなし(ステップ222)、ステップ202の判定に制
御を戻す。
すると、xi ′およびyi ′を新たなxi およびyi と
みなし(ステップ222)、ステップ202の判定に制
御を戻す。
【0052】次に、図3(b)に示す座標点の集合を連
結して図3(d)に示すような破線を描画する際の上述
の処理の適用の内容について、代表的なものを以下に示
す。
結して図3(d)に示すような破線を描画する際の上述
の処理の適用の内容について、代表的なものを以下に示
す。
【0053】 座標点“1”と座標点“2”との間の
処理の場合
処理の場合
【0054】a.ステップ203で「d1.2 ={(0−
10)2 +(0−0)2 }1/2 =10」が求められる。
10)2 +(0−0)2 }1/2 =10」が求められる。
【0055】b.ステップ205で座標点“1”が頂点
ではないと判定され、ステップ209で「D+d
1.2 (=0+10)>L1 (=10)」ではないと判定
されるので、ステップ210で座標点“1”と座標点
“2”との間に実線部の描画が行われる。
ではないと判定され、ステップ209で「D+d
1.2 (=0+10)>L1 (=10)」ではないと判定
されるので、ステップ210で座標点“1”と座標点
“2”との間に実線部の描画が行われる。
【0056】 座標点“2”と座標点“3”との間の
処理の場合
処理の場合
【0057】a.座標点“2”と座標点“3”との間で
ステップ202〜222が次のように適用される。
ステップ202〜222が次のように適用される。
【0058】ステップ205で座標点“2”が頂点では
ないと判定され、ステップ209で「D+d2.3 >
L1 」であると判定されるので、ステップ214で中間
の座標点“2′”(x2 ′,y2 ′)が求められ、ステ
ップ215で座標点“2”と座標点“2′”との間に実
線部の描画が行われる(ただし、この座標点“2′”は
座標点“2”と同じ座標点であるので実際には描画は行
われない)。描画後の処理として、ステップ217で
「j=0」とされ、ステップ222で座標点“2′”の
(x2 ′,y2 ′)が(x2 ,y2 )とみなされる。
ないと判定され、ステップ209で「D+d2.3 >
L1 」であると判定されるので、ステップ214で中間
の座標点“2′”(x2 ′,y2 ′)が求められ、ステ
ップ215で座標点“2”と座標点“2′”との間に実
線部の描画が行われる(ただし、この座標点“2′”は
座標点“2”と同じ座標点であるので実際には描画は行
われない)。描画後の処理として、ステップ217で
「j=0」とされ、ステップ222で座標点“2′”の
(x2 ′,y2 ′)が(x2 ,y2 )とみなされる。
【0059】b.座標点“2′”と座標点“3”との間
でステップ202〜222が次のように適用される(上
述のように、この場合には図2における(x2 ,y2 )
は座標点“2′”の座標(x2 ′,y2 ′)を示してい
る)。
でステップ202〜222が次のように適用される(上
述のように、この場合には図2における(x2 ,y2 )
は座標点“2′”の座標(x2 ′,y2 ′)を示してい
る)。
【0060】ステップ205で座標点“2′”が頂点で
はないと判定され、ステップ209で「D+d2.3 >L
0 」であると判定されるので、ステップ214で中間の
座標点(x2 ′,y2 ′)(この(x2 ′,y2 ′)を
上述の座標点“2′”と区別するために座標点
“2′′”(x2 ′′,y2 ′′)として示す。
(x2 ′′′,y2 ′′′)等についても同様)が求め
られ、ステップ215で座標点“2′”と座標点
“2′′”との間に空白部の描画が行われる。描画後の
処理として、ステップ217で「j=1」とされ、ステ
ップ222で座標点“2′′”の(x2 ′′,
y2 ′′)が(x2 ,y2 )とみなされる。
はないと判定され、ステップ209で「D+d2.3 >L
0 」であると判定されるので、ステップ214で中間の
座標点(x2 ′,y2 ′)(この(x2 ′,y2 ′)を
上述の座標点“2′”と区別するために座標点
“2′′”(x2 ′′,y2 ′′)として示す。
(x2 ′′′,y2 ′′′)等についても同様)が求め
られ、ステップ215で座標点“2′”と座標点
“2′′”との間に空白部の描画が行われる。描画後の
処理として、ステップ217で「j=1」とされ、ステ
ップ222で座標点“2′′”の(x2 ′′,
y2 ′′)が(x2 ,y2 )とみなされる。
【0061】c. 座標点“2′′”と座標点“3”との
間でステップ202〜222が次のように適用される。
間でステップ202〜222が次のように適用される。
【0062】ステップ205で座標点“2′′”が頂点
ではないと判定され、ステップ209で「D+d2.3 >
L1 」であると判定されるので、ステップ214で中間
の座標点(x2 ′′′,y2′′′)が求められ、ステ
ップ215で座標点“2′′”と座標点“2′′′”と
の間に実線部の描画が行われる。描画後の処理として、
ステップ217で「j=0」とされ、ステップ222で
座標点“2′′′”の(x2 ′′′,y2 ′′′)が
(x2 ,y2 )とみなされる。
ではないと判定され、ステップ209で「D+d2.3 >
L1 」であると判定されるので、ステップ214で中間
の座標点(x2 ′′′,y2′′′)が求められ、ステ
ップ215で座標点“2′′”と座標点“2′′′”と
の間に実線部の描画が行われる。描画後の処理として、
ステップ217で「j=0」とされ、ステップ222で
座標点“2′′′”の(x2 ′′′,y2 ′′′)が
(x2 ,y2 )とみなされる。
【0063】d.座標点“2′′′”と座標点“3”と
の間の処理でステップ202〜222が次のように適用
される。
の間の処理でステップ202〜222が次のように適用
される。
【0064】ステップ205で座標点“2′′′”が頂
点ではないと判定され、ステップ209で「D+d2.3
>L0 」でないと判定されるので、ステップ210で座
標点“2′′′”と座標点“3”との間に空白部の描画
が行われる。
点ではないと判定され、ステップ209で「D+d2.3
>L0 」でないと判定されるので、ステップ210で座
標点“2′′′”と座標点“3”との間に空白部の描画
が行われる。
【0065】 座標点“3”と座標点“4”との間の
処理の場合
処理の場合
【0066】a.ステップ205で座標点“3”が頂点
であると判定され、ステップ206で座標点“3”が特
異点であると判定されるので、ステップ207で破線デ
ータにより示される破線の1単位の最初からの座標点
“3”を始点とする描画が行われるように設定される。
ステップ209で「D+d3.4 >L1 」であると判定さ
れるので、ステップ214で中間の座標点“3′”(x
3 ′,y3 ′)が求められ、ステップ215で座標点
“3”と座標点“3′”との間に実線部の描画が行われ
る。描画後の処理として、ステップ217で「j=0」
とされ、ステップ222で座標点“3′”の(x3 ′,
y3 ′)が(x3 ,y3 )とみなされる。
であると判定され、ステップ206で座標点“3”が特
異点であると判定されるので、ステップ207で破線デ
ータにより示される破線の1単位の最初からの座標点
“3”を始点とする描画が行われるように設定される。
ステップ209で「D+d3.4 >L1 」であると判定さ
れるので、ステップ214で中間の座標点“3′”(x
3 ′,y3 ′)が求められ、ステップ215で座標点
“3”と座標点“3′”との間に実線部の描画が行われ
る。描画後の処理として、ステップ217で「j=0」
とされ、ステップ222で座標点“3′”の(x3 ′,
y3 ′)が(x3 ,y3 )とみなされる。
【0067】b.以下、順次、座標点“3′”と座標点
“3′′”との間に空白部の描画が行われ(ステップ2
15)、座標点“3′′”と座標点“3′′′”との間
に実線部の描画が行われ(ステップ215)、座標点
“3′′′”と座標点“4”との間に空白部の描画が行
われる(ステップ210)。
“3′′”との間に空白部の描画が行われ(ステップ2
15)、座標点“3′′”と座標点“3′′′”との間
に実線部の描画が行われ(ステップ215)、座標点
“3′′′”と座標点“4”との間に空白部の描画が行
われる(ステップ210)。
【0068】 座標点“7”と座標点“8”との間の
処理の場合
処理の場合
【0069】a.ステップ205で座標点“7”が頂点
であると判定されるが、ステップ206で座標点“7”
が特異点ではないと判定されるので、座標点“7”(x
7 ,y7 )からの実線部の描画は行われない(ステップ
207の設定が行われない)。ステップ209で「D+
d7.8 >L0 」であると判定されるので、ステップ21
4で中間の座標点“7′”(x7 ′,y7 ′)が求めら
れ、ステップ215で座標点“7”と座標点“7′”と
の間に空白部の描画が行われる。
であると判定されるが、ステップ206で座標点“7”
が特異点ではないと判定されるので、座標点“7”(x
7 ,y7 )からの実線部の描画は行われない(ステップ
207の設定が行われない)。ステップ209で「D+
d7.8 >L0 」であると判定されるので、ステップ21
4で中間の座標点“7′”(x7 ′,y7 ′)が求めら
れ、ステップ215で座標点“7”と座標点“7′”と
の間に空白部の描画が行われる。
【0070】b.最後に、座標点“7′”と座標点
“8”との間に実線部の描画が行われる(ステップ21
0)。
“8”との間に実線部の描画が行われる(ステップ21
0)。
【0071】図5は、図3(d)に示す破線を描画する
ために、以上のようにして順次行われる描画処理dra
w(xi ,yi ,xi′,yi ′,j)またはdraw
(xi ,yi ,xi+1 ,yi+1 ,j)の各引数の値を示
す図である。ただし、整数による近似値で各引数を示し
ているので、図3(d)上の値と若干の差異が存在して
いる。
ために、以上のようにして順次行われる描画処理dra
w(xi ,yi ,xi′,yi ′,j)またはdraw
(xi ,yi ,xi+1 ,yi+1 ,j)の各引数の値を示
す図である。ただし、整数による近似値で各引数を示し
ているので、図3(d)上の値と若干の差異が存在して
いる。
【0072】
【発明の効果】以上説明したように本発明は、データ入
力手段,破線描画距離算出手段および破線描画手段を設
けることにより、破線で座標点の集合を連結する場合
に、特異点が必ず実線部に存在するように描画すること
ができ、座標点の集合が連結されて描画される破線のY
座標についての極値を適正に描画することができるとい
う効果がある。なお、上記効果を保証した上で、座標点
のY座標の変化が少ない場合には破線の空白部を等間隔
に設定することにより、破線としての描画を確保するこ
とができる。
力手段,破線描画距離算出手段および破線描画手段を設
けることにより、破線で座標点の集合を連結する場合
に、特異点が必ず実線部に存在するように描画すること
ができ、座標点の集合が連結されて描画される破線のY
座標についての極値を適正に描画することができるとい
う効果がある。なお、上記効果を保証した上で、座標点
のY座標の変化が少ない場合には破線の空白部を等間隔
に設定することにより、破線としての描画を確保するこ
とができる。
【図1】本発明の一実施例の構成を示すブロック図であ
る。
る。
【図2】図1に示す破線の描画方式の処理を示す流れ図
である。
である。
【図3】(a)は破線データを説明するための図であ
り、(b)は破線の描画方式における連結対象の座標点
の集合の一例を示す図であり、(c)は従来の破線の描
画方式による破線の描画の一例を示す図であり、(d)
は図1に示す破線の描画方式による破線の描画の一例を
示す図である。
り、(b)は破線の描画方式における連結対象の座標点
の集合の一例を示す図であり、(c)は従来の破線の描
画方式による破線の描画の一例を示す図であり、(d)
は図1に示す破線の描画方式による破線の描画の一例を
示す図である。
【図4】従来の破線の描画方式の処理を示す流れ図であ
る。
る。
【図5】図1に示す破線の描画方式の描画処理の具体例
を説明するための図である。
を説明するための図である。
1 データ入力手段 2 破線描画距離算出手段 3 破線描画手段 4 出力装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 登山 伸人 東京都港区西新橋三丁目20番4号 日本電 気エンジニアリング株式会社内 (72)発明者 山田 英史 宮城県黒川郡大和町吉岡字雷神2番地 宮 城日本電気株式会社内
Claims (1)
- 【請求項1】 X座標について昇順に並んだ座標点の集
合により表現された連続線分データを計算機によって処
理し破線として出力装置に対して描画する破線の描画方
式において、 連続線分データ,座標要素数およびY座標最小間隔等の
破線の描画に必要なデータを入力するデータ入力手段
と、 このデータ入力手段により入力されたデータに基づき処
理対象の座標点が特異点であるか否かの判定を行いその
判定に基づいて特異点が実線部に描画されるように実線
部および空白部の長さを算出する破線描画距離算出手段
と、 この破線描画距離算出手段による実線部および空白部の
長さの算出に基づいて出力装置に対して破線の描画を行
う破線描画手段とを有することを特徴とする破線の描画
方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25704091A JPH0566914A (ja) | 1991-09-09 | 1991-09-09 | 破線の描画方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25704091A JPH0566914A (ja) | 1991-09-09 | 1991-09-09 | 破線の描画方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0566914A true JPH0566914A (ja) | 1993-03-19 |
Family
ID=17300910
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25704091A Pending JPH0566914A (ja) | 1991-09-09 | 1991-09-09 | 破線の描画方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0566914A (ja) |
-
1991
- 1991-09-09 JP JP25704091A patent/JPH0566914A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5363479A (en) | System and method for rendering bezier splines | |
| JPH06110992A (ja) | Cadシステムにおける形状変形入力操作方法 | |
| JPH0721224A (ja) | 図形修正方法 | |
| JPH0566914A (ja) | 破線の描画方式 | |
| JP2940865B2 (ja) | アクティブ輪郭線の伝播により道路の両端を抽出する方法 | |
| JP5946398B2 (ja) | 三次元配筋シミュレーションシステムにおける配筋補正処理装置 | |
| JPH0769968B2 (ja) | クリップ領域内における直線描画方法 | |
| JP2684609B2 (ja) | 図形データ処理装置における図形表示方法 | |
| JP2904994B2 (ja) | 座標間接続表示方法 | |
| JP3139008B2 (ja) | 線分画素発生器 | |
| JPH02201584A (ja) | 補間区間判定装置 | |
| JP2746008B2 (ja) | 塗色図形描画装置および塗色データ決定方法 | |
| JPH07220098A (ja) | 多角形近似による円弧の描画データ作成装置 | |
| JP2783143B2 (ja) | 計算機支援設計装置 | |
| JP2001060154A (ja) | 類似処理実行装置 | |
| JPH10143676A (ja) | 画像処理装置、画像処理方法、および記録媒体 | |
| JPH0785289A (ja) | 図面入力装置の端点検出方法 | |
| JPH0341568A (ja) | グリット補正方式 | |
| JPH0640349B2 (ja) | ディジタル図形処理方法 | |
| JP2000242803A (ja) | 画像処理装置 | |
| JPH01166179A (ja) | クリップされた直線の描画方法 | |
| JPH11144066A (ja) | 図形処理装置 | |
| JPH10254972A (ja) | データ処理装置およびデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
| JPS61168013A (ja) | 図形情報のタブレツト入力方式 | |
| JPH0275077A (ja) | 図形処理方法 |