JPH09270018A - 図形描画装置 - Google Patents
図形描画装置Info
- Publication number
- JPH09270018A JPH09270018A JP8079001A JP7900196A JPH09270018A JP H09270018 A JPH09270018 A JP H09270018A JP 8079001 A JP8079001 A JP 8079001A JP 7900196 A JP7900196 A JP 7900196A JP H09270018 A JPH09270018 A JP H09270018A
- Authority
- JP
- Japan
- Prior art keywords
- arc
- segment
- line
- coordinates
- normal vector
- 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.)
- Granted
Links
- 239000013598 vector Substances 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 description 38
- 238000004364 calculation method Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 13
- 230000001186 cumulative effect Effects 0.000 description 4
- 230000006866 deterioration Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001629 suppression Effects 0.000 description 2
- 235000010724 Wisteria floribunda Nutrition 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
Landscapes
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
一定に保ちながら高画質に描画を行ない、さらに破線な
どの線種も高画質に描画する図形描画装置を提供する。 【解決手段】 初期値認識部1は描画する円、円弧、楕
円および楕円弧等の図形の大きさと線の太さを認識す
る。続いて円弧セグメント走査部2では、曲線を直線で
近似して描画可能なセグメントに分割し、セグメントの
始点、終点をセグメント始点・終点格納部3に格納す
る。直線座標発生部4は、セグメントの始点から終点を
通る直線を線幅分だけ発生し、法線ベクトル生成部5で
90゜回転させて法線ベクトルを得る。一方、円弧座標
発生部6でセグメント内の円弧上の画素の座標を順次生
成し、その座標を始点とする法線ベクトルを描画部7で
描画してフレームメモリ9に格納する。
Description
するものであり、特に線幅のある円、円弧、楕円および
楕円弧などを高品質に描画する図形太線描画装置に関す
るものである。
ded Design)システムやコンピュータグラフ
ィックス等において、図形や文字を出力する装置である
プリンタやプロッタ等の解像度が高くなっている。解像
度が高くなればなるほど図形や文字はより美しく出力さ
れる。しかしながら、高解像度化に伴い1ドット幅の線
が非常に細くなり実用的でないため、2ドット以上の線
幅を有する線で描画する機能が必要になっている。ま
た、CADシステムにおいて円、円弧、楕円および楕円
弧はそれらを組み合せることで曲線を表現することもで
きる。さらに、実線だけでなく一点鎖線や点線、破線と
いった線種もよく使用される。
を描画するときには、次に述べる方法がとられてきた。
図15は、従来の線分描画方法の描画手順の説明図であ
る。まず、図15(A)に示す描画方法では、公知のB
resenhamの円弧発生アルゴリズムによって線幅
1画素の円弧は高速に発生することができるため、この
円弧を数本重ねることによって太線を描画している。こ
の方式の具体例としては、例えば、直線についての例が
特開平5−233821号公報等に記載されている。
画したい円弧の輪郭線を予め描画して、その後、一般的
な塗りつぶし処理を用いて太線を描画している。この方
式の具体例としては、例えば、直線についての例が特開
平4−205575号公報、特開平4−77977号公
報、特開平5−67215号公報等に記載されている。
目的の線幅を直径とする円形の画素パターンを円弧の始
点から終点まで公知のBresenhamの円弧発生ア
ルゴリズムに基づいて1画素ずつ移動させ、画素パター
ン内を塗りつぶしていくことで描画する。
線を直線近似して描画する方法である。この方式の具体
例として、例えば、特開平4−128980公報等に示
されている。
は、円周上のどの位置においても線幅が一定であること
である。また破線等を描画する場合においても、破線の
線分長と線分間隔および線幅が円周上のどの位置におい
ても一定であることが画質または精度を決める。さらに
各線分の端点の形状を描画方向に直交した直線にそろえ
る必要がある。
討すると、まず図15(A)に示す描画方法では、円周
上のどの位置においても線幅を一定にするために必要な
細線の本数を算出することは難しい。また、破線を描画
する場合、破線の各線分全ての端点を描画方向に直交し
た直線で切り取ってそろえるように細線の描画を制御す
ることは困難である。
破線を描画する場合は破線の各線分ごとに端点形状まで
含めた輪郭線を求める必要があり、既存の塗りつぶし方
式を用いた際に処理が複雑になることや、膨大なメモリ
を必要とする可能性があるなどの問題がある。また、特
に楕円の輪郭線を描画する場合は、ある楕円から内側ま
たは外側に線幅長離れた楕円の輪郭線を描画するために
必要なBresenhamの円弧発生アルゴリズムのパ
ラメータを特定することは困難である。
画素パターンを用いているので、円、円弧、楕円、楕円
弧のどの位置においても線幅をほぼ一定にすることがで
きる。しかし、端点の形状は半円形状に限られ、例え
ば、破線を描画した場合には、端点の形状は画素パター
ンの半円の形状のままとなり、さらに画素パターンの直
径より短い長さの線分を描画しようとするとそのままで
は描画することができないという問題を有している。
検討する。図16は、曲線を短い直線に近似して描画す
る従来の線分描画方法の描画手順の説明図である。図1
6に示すように、この方式は、発生させようとする曲線
のなかでX軸方向、Y軸方向、斜め方向だけに連続する
直線画素列を取り出し、その画素列を所望の線幅の線分
として元の画像にマッピングする方式である。図16
(A)に示すような曲線を3画素幅で発生させる場合、
図16(A)の周囲に示す5つの直線画素列に分割し、
それぞれを3画素幅として書き戻す。これにより図16
(B)に示す3画素幅の曲線を得ることができる。
ようとすると、各線分中の各画素または線分ごとに描画
するか否かを切り替えることによって可能であると思わ
れる。しかしこの方式では、斜めに描画する線分の線幅
が正確でないため、破線の画質が劣化し、さらに破線の
各線分は3種類の方向しか持たない直線によって成り立
つため常に各線分の切り口を描画方向に直交した直線に
そろえることが難しいという問題を有している。
弧、楕円、楕円弧の描画を高品質に行なうことは困難で
ある。また、破線や点線などを高品質に描画することに
対しては、ほとんど考慮されていないのが現状である。
情に鑑みてなされたもので、円、円弧、楕円および楕円
弧のどの位置においても、所望の線幅を一定に保ちなが
ら高画質に描画を行ない、さらに鎖線や破線、点線な
ど、実線以外の線種についても、各線素の線分長と線分
間隔および線幅を一定に保ちながら高画質に描画を行な
うことのできる図形描画装置を提供することを目的とす
るものである。
は、円、円弧、楕円および楕円弧を描画する機能を有す
る図形描画装置において、入力された情報から描画する
円、円弧、楕円および楕円弧の大きさと線の太さを認識
する初期値認識手段と、該初期値認識手段で認識した
円、円弧、楕円および楕円弧の大きさと線の太さを基に
円、円弧、楕円および楕円弧を直線で近似して描画しう
る近似直線の線分長と等しい円弧長となる座標を順次生
成する円弧セグメント走査手段と、該円弧セグメント走
査手段が生成した座標を円、円弧、楕円および楕円弧を
近似する線分の始点と終点の座標として順次保持するセ
グメント始点・終点格納手段と、前記始点と終点間の円
弧上の座標を生成する円弧座標発生手段と、前記始点と
終点とを結ぶ直線上の座標を生成する直線座標発生手段
と、該直線座標発生手段が生成した座標を基に前記始点
と終点とを結ぶ直線に直交しかつ前記初期値認識手段で
認識された線幅と等しい長さを有する画素列を生成する
法線ベクトル生成手段と、該法線ベクトル生成手段で生
成された画素列を前記円弧座標発生手段が生成した座標
毎に発生させ描画を行なう描画手段を備えたことを特徴
とするものである。
の図形描画装置において、前記円弧セグメント走査手段
は、前記初期値認識手段で認識した円、円弧、楕円およ
び楕円弧の大きさと線の太さに基づいて円弧上の座標を
生成する円弧セグメント座標発生手段と、該円弧セグメ
ント座標発生手段が生成した座標の移動距離を演算する
距離演算手段と、前記初期値認識手段が認識した円、円
弧、楕円および楕円弧の大きさと線の太さを基に円、円
弧、楕円および楕円弧を直線で近似して描画しうる線分
長を算出するセグメントレングス算出手段と、該セグメ
ントレングス算出手段が求めた線分長を前記移動距離演
算手段が求めた移動距離が上回るか否かを判定するセグ
メント走査判定手段を備えていることを特徴とするもの
である。
2に記載の図形描画装置において、前記描画手段は、前
記円弧座標発生手段が求めた円弧座標に基づいて画素抜
けの発生を判定する画素抜け判定手段と、円弧画素を始
点とした法線ベクトルに沿って描画する法線ベクトル描
画手段と、該法線ベクトル描画手段による描画が前記セ
グメントの終点まで終了したか否かを判定するセグメン
ト終了条件判定手段を備えていることを特徴とするもの
である。
3のいずれか1項に記載の図形描画装置において、前記
円弧座標発生手段は、前記始点と終点間の円弧上の座標
を生成する際に、描画する線種に従って前記円弧上の少
なくとも一部の座標のみを生成することを特徴とするも
のである。
第1の実施の形態を示すブロック図である。図中、1は
初期値認識部、2は円弧セグメント走査部、3はセグメ
ント始点・終点格納部、4は直線座標発生部、5は法線
ベクトル生成部、6は円弧座標発生部、7は描画部、8
は終了条件判定部、9はフレームメモリである。
円および楕円弧の大きさと線の太さを認識する。円、円
弧の大きさとしては半径を、また楕円、楕円弧の場合は
X軸およびY軸の径を認識する。さらに円弧、楕円弧の
場合には、描画開始点と描画終了点の座標、あるいは描
画開始点または描画終了点の座標と中心角、または、描
画開始点および描画終了点の存在するある方向からの角
度等を認識する。これらは、キーボードやマウスなどの
入力装置から入力されたり、あるいはファイルや他の計
算機から与えられるページ記述言語等で記述された描画
データを解釈することで得られる。
円、および楕円弧を直線で近似して描画するために最適
な線分長と等しい長さだけ、円弧上の座標を走査する。
この線分長の区間をセグメントと呼び、線分長をセグメ
ントレングスと呼ぶ。セグメントレングスは、円と円弧
の場合には半径と線幅から、また楕円と楕円弧の場合に
はX軸およびY軸の径、X軸の径とY軸の径の比および
線幅から求めることができる。円弧座標上をセグメント
レングスと等しい長さだけ走査することでセグメントの
始点と終点が求められる。セグメント始点・終点格納部
3は、円弧セグメント走査部2で求められたセグメント
の始点および終点の座標を一時保持する。
点格納部3に保持されているセグメントの始点から終点
までの直線座標を、例えばDDA等によって発生する。
法線ベクトル生成部5は、直線座標発生部4で発生した
直線座標に対応する画素列を、線幅分のみ90°回転さ
せることによって、セグメントの始点と終点を結ぶ直線
に直交する法線ベクトルを生成する。円弧座標発生部6
は、セグメント始点・終点格納部3に保持されているセ
グメントの始点および終点間の円弧上の座標を発生す
る。円弧上の座標の発生には、例えばBresenha
mの円弧発生アルゴリズム等を用いることができる。
円弧上の各座標を法線ベクトル生成部5で生成した法線
ベクトルの始点として、法線ベクトルを構成する画素列
を描画する。このとき、隣り合う法線ベクトル間に描画
されない画素が生じる場合は、その画素の描画も行な
う。終了条件判定部8は、描画開始点から描画終了点ま
での描画が終了したか否かを判定し、描画終了点までの
描画が終了していない間は、円弧セグメント走査部2以
降の処理を繰り返し行なわせる。フレームメモリ9は、
描画部7で描画された画像を保持する。
施の形態における描画手順の一例の説明図である。ここ
では、描画開始点から描画終了点までのある線幅の円弧
を描画する場合を例にして説明する。初期値認識部1
は、描画する円弧の半径、描画開始点、描画終了点、線
幅などを認識する。
から、円弧内で円弧上の画素の接線のなす角度がほぼ等
しいと見なせる最大の円弧長だけ走査し、セグメントの
終点を求める。図2では一部のセグメントについて示し
ており、例えば円弧上の点aを始点とし、走査して得た
セグメントの終点bを求める。求めたセグメントの始点
aと終点bの座標は、セグメント始点・終点格納部3に
一時保持される。
・終点格納部3に格納されているセグメントの始点aら
終点bを通過する直線上を線幅長だけ走査し、直線上の
画素の座標を発生する。法線ベクトル生成部5は、直線
座標発生部4で発生した座標を、セグメントの始点aを
中心に90゜回転させて法線ベクトルa−a’を生成す
る。
点・終点格納部3に格納されているセグメントの始点a
と終点bの間の円弧ab上の画素の座標を点aから順に
発生する。描画部7は、円弧座標発生部6で発生した円
弧ab上の各画素の座標について、その座標を法線ベク
トルの始点として、法線ベクトル生成部5で生成した法
線ベクトルa−a’を構成する画素列を描画する。図2
では、描画した法線ベクトルを細矢印で示している。こ
のとき、隣り合う法線ベクトル間に描画されない画素が
生じる場合は、その画素の描画も行なう。このようにし
て、始点aと終点bの間のセグメントの描画が終了す
る。
でないことを確認し、点bを始点とする新たなセグメン
トの処理を開始させる。以下同様にして、順次セグメン
トへの分割と、各セグメントにおける描画処理が行なわ
れる。このようにして、描画開始点から描画終了点ま
で、指定された線幅の円弧がフレームメモリ9内に描画
される。
円弧座標発生部6で発生した円弧上の画素がそのまま用
いられるため、画質の劣化が少ない。また、線幅は法線
ベクトルによって描画されるので、円周上のどの位置に
おいても正確で一定であり、端点形状は直線で描画方向
に直交する。
て描画と抑止を切り替えながら処理することにより、破
線や点線、鎖線などが高精度に描画可能となる。図3
は、本発明の図形描画装置の第1の実施の形態における
破線の描画の一例の説明図である。図3では簡単のた
め、それぞれのセグメントは6本の法線ベクトルを含む
ものとし、5ドットごとに描画と抑止を切り替えながら
処理するものとする。このような処理は、例えば円弧座
標発生部6が発生した円弧上の画素の座標を、描画部7
に5つ送った後の5つは送らずに捨てるように制御れば
よい。このような簡単な制御により、図3に示すよう
に、各線素の幅、長さ、線素間の間隔、線素の形状の揃
った、高品質の破線などを描画することができる。円弧
座標発生部6で発生した円弧上の画素の座標を描画部7
に送る規則(特定パターン)を変更するだけで、線素の
長さや線素間の間隔を変更でき、また、1点鎖線や2点
鎖線などの鎖線も描画可能である。この特定パターンは
数値によって予め与えておくほか、例えば関数を与えて
おき、線幅に従って決定したり、半径や曲率などに従っ
て動的に決定するように構成することも可能である。
を抜くことによって2重線などの多重線を描くことも可
能である。このときの線の間の幅も一定となる。さらに
抜く画素を周期的に変化させることによって波線も可能
であり、これらと破線などの線種を組み合わせることも
可能である。
施の形態を示すブロック図である。図中、図1と同様の
部分には同じ符号を付して説明を省略する。11はセグ
メントレングス算出部、12は円弧セグメント座標発生
部、13は移動距離演算部、14はセグメント走査判定
部である。この第2の実施の形態では、上述の第1の実
施の形態における円弧セグメント走査部2の具体例を示
している。この実施の形態を用いて、主にセグメントの
処理について詳述する。
認識部1で認識した描画する曲線の描画開始点と描画終
了点の座標、線幅、楕円の場合はX軸およびY軸の径に
基づいてセグメントの長さであるセグメントレングスを
算出する。円弧セグメント座標発生部12は、円弧上の
画素の座標を順次発生する。円弧上の画素の座標は、例
えば、公知のBresenhamの円弧発生アルゴリズ
ムを用いて発生させることができる。移動距離演算部1
3は、セグメントの始点となる画素の座標から、円弧セ
グメント座標発生部12が発生した画素の座標までの移
動距離を演算する。セグメント走査判定部14は、セグ
メントレングス算出部11で求めたセグメントレングス
と、移動距離演算部13で演算される移動距離を比較し
てセグメントの走査の終了を判定し、終了した場合は円
弧セグメント座標発生部12がセグメントの始点および
終点をセグメント始点・終点格納部3に送る。
の形態における動作について説明する。図5は、本発明
の第2の実施の形態におけるセグメントレングス算出部
の動作の一例を示すフローチャートである。S31にお
いて、描画する曲線が円または円弧か、あるいは楕円ま
たは楕円弧かを判定する。円または円弧であれば、初期
値認識部1の認識している半径を以下の最大近似直線長
の計算に用いる半径とする。また、楕円または楕円弧で
あれば、S32において、初期値認識部1が認識してい
る楕円の長軸および短軸の径の値から、最大近似直線長
の計算に用いる半径(以下この半径を、径に応じた半径
と呼ぶ)の算出を行なう。この処理は後述する。
は楕円の場合はS32で算出された径に応じた半径に基
づき、直線近似しても画質劣化があまり認められない範
囲で最も長い近似直線長を求める。この処理についても
後述する。
で認識された線幅と、S33で算出された最大の近似直
線長を比較し、小さい方をセグメントレングスとする。
すなわち、最大の近似直線長が線幅以上の場合にはS3
5においてセグメントレングスを線幅とし、線幅の方が
最大の近似直線長よりも長い場合にはS36においてセ
グメントレングスを最大近似直線長とする。このように
して、セグメントレングス算出部11においてセグメン
トレングスが算出される。
るセグメントレングス算出時の径に応じた半径計算の動
作の一例の説明図である。この径に応じた半径を簡単に
求めるため、この例ではカーブの急な領域と緩やかな領
域に分け、それぞれの領域について便宜上の径に応じた
半径を決定している。図6に示すように、長軸との交点
およびその付近をカーブの急な領域2とし、短軸との交
点およびその付近をカーブの緩やかな領域1としてい
る。そして、2つの領域に分けるためのしきい値Th
は、長軸と短軸の径の比が4:1以下、すなわちA≦4
×Bの場合は短軸の半分(B/2)とし、4:1より大
きい、すなわちA>4×Bの場合は短軸の1/4(B/
4)とする。図6では第1象限のみしか示していない
が、他の象限についても同様である。
るセグメントレングス算出時の径に応じた半径の計算の
動作の一例を示すフローチャートである。図6に示した
方法による径に応じた半径の計算動作を図7に示してい
る。まずS41において、長軸と短軸の径の比(A/
B)が1.5未満の場合は円と見なし、S42において
半径は短軸Bの半径が採用される。
上については楕円と見なし、図6に示したように各象限
ごとに2つの領域に分けてそれぞれの領域ごとに半径を
算出する。S43において領域2に含まれるか否かを判
定し、領域2に含まれると判断された場合はS44にお
いて径の値に無関係に短軸の半分(B/2)を半径とす
る。領域1に含まれる場合は順にS45およびS47で
径の比によって判定される。S45において長軸と短軸
の径の比(A/B)が1.5以上2.5未満の場合に
は、S46において径に応じた半径を長軸の径Aと短軸
の径Bの和とする。また、S47において長軸と短軸の
径の比(A/B)が2.5以上3.5未満の場合には、
S48において径に応じた半径を長軸の径Aと短軸の径
Bの和の2倍とする。さらにそれ以上の場合には、S4
9において径に応じた半径を長軸の径Aと短軸の径Bの
和の3倍とする。これらの径に応じた半径の値は一例で
あって、他の値としてもよい。
に、上述のようにして径に応じた半径が算出された。ま
た、描画する図形が円または円弧の場合には、初期値認
識部1で半径が認識されている。これらの半径または径
に応じた半径に基づき、直線近似しても画質劣化があま
り認められない範囲で最も長い近似直線長を求める。図
8は、本発明の第2の実施の形態における半径に基づく
最大近似直線長の算出動作の一例を示すフローチャート
である。ここでは、径に応じた半径も単に半径と呼んで
いる。
びS53によって3つに場合分けされ、それぞれS5
2、S54、S55に示す実験から導いた計算式によっ
て算出される。すなわち、S51において半径が400
より小さいか否かを判定し、400より小さい場合には
S52において最大近似直線長を5+0.0625×半
径とする。また、S53において半径が400以上10
00未満か否かを判定し、その範囲内の場合にはS54
において最大近似直線長を25+0.03125×半径
とする。半径が1000以上の場合には、最大近似直線
長を50+0.00781×半径とする。S52,S5
4,S55において用いた半径に乗ずる係数は、それぞ
れ2-4,2-5,2-7であり、計算機による2進の乗算を
シフトによって行なえる値として計算速度を向上させて
いる。このようにして求めた最大近似直線長は半径と比
較され、どちらか短い方がセグメントレングスとして採
用される。
て円弧セグメント座標発生部で発生される画素の座標と
円弧セグメントの一例の説明図である。円弧セグメント
座標発生部12は、例えば、公知のBresenham
の円弧発生アルゴリズムなどに基づいて、セグメントの
始点から順に図9に円で示した画素の座標を発生してゆ
く。図9では、セグメントの始点の画素を●で示し、順
次生成される画素を○にハッチングを施して示してい
る。また、セグメントの終点の画素を◎で示している。
チングを施した画素の座標が順次生成されてゆく。その
都度、移動距離演算部13は、セグメントの始点の画素
からの移動距離を演算する。そしてセグメント走査判定
部14によってセグメントレングス算出部11で求めた
セグメントレングスと、移動距離演算部13で演算され
る移動距離を比較してセグメントの終点を判定する。図
9では、◎で示した画素の座標が発生された時点で、移
動距離演算部13で演算された移動距離がセグメントレ
ングスに達したとすると、セグメント走査判定部14は
これを検出し、◎で示した画素がセグメントの終点であ
ることを判定する。また、セグメント走査判定部14
は、移動距離がセグメントレングスに達する前に描画終
了点に達した場合には、その描画終了点をセグメントの
終点と判定する。セグメントの終点が検出された場合
は、円弧セグメント座標発生部12から、セグメントの
始点および終点の座標をセグメント始点・終点格納部3
に送る。
説明図である。この例では、移動距離の演算誤差を低減
するために、移動距離演算部23は、過去に発生した2
画素の座標までさかのぼり、これら2つの座標間の距離
を用いて演算を行なう。図10に示すように、現時点で
最後に発生した画素(以下現画素と呼ぶ)Pnからの次
に新しく発生する画素(以下次画素と呼ぶ)Pn+1が
発生されると、移動距離演算部13はまず次画素までの
暫定移動距離Pn〜Pn+1を演算する。このとき、隣
接する座標間の単位距離をx軸方向、y軸方向ともに1
とすると、画像は格子状に画素が存在するため暫定移動
距離は1.0または√2のいずれかである。さらに移動
距離演算部13が保持している現画素の前に発生した画
素(以下前画素と呼ぶ)からの移動距離Pn−1〜Pn
および先の暫定移動距離Pn〜Pn+1に基づいて新た
に次画素までの移動距離Pn〜Pn+1を算出する。す
なわち、連続する画素の移動距離の値が1.0および√
2または√2および1.0の場合のみ、これらをまとめ
てピタゴラスの定理により√5とする。
1.0、Pn〜Pn+1=√2よりPn−1〜Pn+1
=√5となるように、新たにPn〜Pn+1=(√5−
1.0)を移動距離として出力する。移動距離の演算
後、Pn〜Pn+1の値(√5−1.0)は、Pn+1
からPn+2までの移動距離の算出のために、移動距離
演算部23内に保持される。
示すフローチャートである。S61において、円弧セグ
メント座標発生部12が発生した次画素までの暫定移動
距離を入力する。以下この暫定移動距離の値をDnとす
る。また、移動距離演算部13内で保持している前画素
からの移動距離を入力する。以下、この移動距離の値を
Dpとする。
および移動距離Dpの値に応じて場合分けを行ない、そ
れぞれの場合の加算距離を求める。S62において暫定
移動距離Dnが1であるか否かを判定する。暫定移動距
離Dnが1である場合には、さらにS63において移動
距離Dpが√2であるか否かを判定する。移動距離Dp
が√2でなければ、S64において、現座標Pnから次
座標Pn+1までの加算距離を1として、累積距離に加
算する。また、移動距離Dpが√2である場合には、S
65において、現座標Pnから次座標Pn+1までの加
算距離を√5−√2として、累積距離に加算する。S6
2において暫定移動距離Dnが1でないと判定された場
合には、さらにS66において移動距離Dpが1である
か否かを判定する。移動距離Dpが1であれば、S67
において、現座標Pnから次座標Pn+1までの加算距
離を√5−1として、累積距離に加算する。また、移動
距離Dpが1でない場合には、S68において、現座標
Pnから次座標Pn+1までの加算距離を√2として、
累積距離に加算する。
態における円弧セグメント走査部2の構成の一例を示し
たものである。セグメント始点・終点格納部3にセグメ
ントの始点、終点の画素の座標が格納された後の処理は
上述の第1の実施の形態と同様であるのでここでは説明
を省略する。
3の実施の形態を示すブロック図である。図中、図1と
同様の部分には同じ符号を付して説明を省略する。21
は画素抜け判定部、22は法線ベクトル描画部、23は
セグメント終了条件判定部である。この第3の実施の形
態では、上述の第1の実施の形態における描画部7の具
体例を示している。この実施の形態を用いて、主に法線
ベクトルを用いた描画処理について詳述する。
で発生した円弧上の画素の座標をもとに、法線ベクトル
生成部5で生成された法線ベクトルによる描画の際に画
素抜けが発生するか否かを判定し、円弧上の画素の座標
とともに判定結果を法線ベクトル描画部22に伝える。
部6で発生した円弧上の画素の座標をもとに、その画素
を始点として、法線ベクトル生成部5で生成した法線ベ
クトルを描画する。また、画素抜け判定部21で画素抜
けが発生すると判定されている場合には、画素抜けの除
去も行なう。
標発生部6によって発生された円弧上の画素がセグメン
トの終点に達したか否かを判定し、セグメントの終点に
達していない場合には、円弧座標発生部6に対して次の
円弧上の画素の座標の発生を指示する。
動作の一例について、具体例を用いながら説明する。こ
こでは、セグメント始点・終点格納部3にセグメントの
始点および終点の画素の座標が格納された後の処理につ
いて説明する。具体例として、図9に示すようにセグメ
ントの始点の画素●と終点の画素◎の座標がセグメント
始点・終点格納部3に格納されているものとする。
ける法線ベクトルの作成過程の説明図である。直線座標
発生部4は、セグメント始点・終点格納部3に保持され
ているセグメントの始点および終点の画素の座標に基づ
いて、図13に示すようにセグメントの始点から終点の
方向への直線上の画素の座標を発生する。図13では、
発生された画素を○に×を施して示している。セグメン
トの始点から発生した画素の座標までの距離の計算は上
述の第2の実施の形態における移動距離演算部13にお
ける処理と同様にして求めることができる。そして、計
算された距離と線幅とを比較することによって、線幅分
の直線上の画素が生成されたか否かを判定することがで
きる。
4において線幅分だけ発生された画素の座標をもとに、
それらをセグメントの始点を中心として90°回転し、
図13において●で示す画素列のように、セグメントの
始点から終点方向に直交し長さが線幅となる法線ベクト
ルを生成する。
ける法線ベクトルに基づくセグメントの描画過程の説明
図である。法線ベクトル生成部5において法線ベクトル
が生成された後に、円弧座標発生部6は、例えば、Br
esenhamの円弧発生アルゴリズム等を用いて、セ
グメントの始点から終点までの円弧上の画素の座標を順
次発生する。そして法線ベクトル描画部22は、円弧座
標発生部6で発生した座標を法線ベクトルの始点とし
て、法線ベクトル生成部5で生成した法線ベクトルの描
画を行なう。この法線ベクトルの描画を、円弧座標発生
部6で発生した座標ごとに行なってゆく。
素が斜めに移動した場合は、図14に△で示す画素のよ
うに、画素抜けが生じる。そのため、画素抜け判定部2
1は、円弧座標発生部6で発生された円弧上の画素の座
標に基づいて、画素が斜めに移動したことを検出して画
素抜けと判定する。画素抜けとなる画素は法線ベクトル
描画部22において埋められ、画素抜けが除去される。
標の発生は、セグメント終了条件判定部23がセグメン
トの終点を判定するまで行なわれ、セグメントの終点に
達したらセグメント内の描画を終了する。これにより、
図14に示すように1つのセグメントにおける描画が行
なわれる。このとき、△で示す画素抜けの箇所も埋めら
れている。描画されたセグメントレングスだけの図形
は、円弧上の画素を始点として法線ベクトルを描画して
いるので、法線ベクトルの終点の画素が形成する図形の
形状も円弧となり、画質を向上させることができる。ま
た、線幅に応じた法線ベクトルを用いているため、線幅
は均一となる。
を認識するまでセグメントごとに以上の処理を行ない、
描画開始点から描画終了点までの線が描画される。この
とき、各セグメントの境界部では、法線ベクトルを曲線
の内側となるように発生させることによって、2つのセ
グメントの端部が隣接あるいは多少重複するように描画
される。そのため、セグメント間で画素抜けなどは発生
しない。
に発生させるため、円や楕円の中心の回りに反時計方向
に円弧や楕円弧の走査を行なうものとし、法線ベクトル
を生成する際にもセグメントの始点を中心に反時計方向
に90゜回転させている。もちろん、時計方向に円弧や
楕円弧を走査しまた法線ベクトルを回転させる構成でも
よい。また、円弧や楕円湖の走査方向と法線ベクトルの
回転方向を異ならせ、法線ベクトルの終点を円弧座標発
生部6で発生した円弧上の画素に合わせて描画するよう
に構成することもできる。
ように、本発明では特定のパターンに従って描画と抑止
を切り替えながら処理することにより、破線や点線、鎖
線などの描画が可能であるが、このような描画と抑止の
切換処理は、例えば、円弧座標発生部6において円弧上
の画素の座標を発生させる際に、描画部分の円弧上の画
素の座標のみを描画部7に渡すように構成するほか、描
画部7内の法線ベクトル描画部22において法線ベクト
ルを描画する際に特定のパターンに従って法線ベクトル
を描画するか否かを判定しながら描画を行なうように構
成することもできる。
グメント走査部2の内部構成の一例を、また、第3の実
施の形態では描画部7の内部構成の一例をそれぞれ示し
たが、これらを組み合わせて構成してもよい。
によれば、円、円弧、楕円および楕円弧のどの位置にお
いても、所望の線幅を一定に保ち、しかも内外周とも円
弧上の画素が用いられるため、画質のよい図形を描画す
ることができる。また、端点形状は描画方向に直交した
直線で描画することができる。さらに、破線などを描画
させる場合にも、簡単な制御のみによって描画すること
ができるとともに、描画された破線などは各線素が揃
い、線素間の間隔も揃った、高画質の破線などを得るこ
とができるという効果がある。
示すブロック図である。
おける描画手順の一例の説明図である。
おける破線の描画の一例の説明図である。
示すブロック図である。
トレングス算出部の動作の一例を示すフローチャートで
ある。
トレングス算出時の径に応じた半径計算の動作の一例の
説明図である。
トレングス算出時の径に応じた半径の計算の動作の一例
を示すフローチャートである。
づく最大近似直線長の算出動作の一例を示すフローチャ
ートである。
メント座標発生部で発生される画素の座標と円弧セグメ
ントの一例の説明図である。
る。
チャートである。
形態を示すブロック図である。
クトルの作成過程の説明図である。
クトルに基づくセグメントの描画過程の説明図である。
ある。
線分描画方法の描画手順の説明図である。
グメント始点・終点格納部、4…直線座標発生部、5…
法線ベクトル生成部、6…円弧座標発生部、7…描画
部、8…終了条件判定部、9…フレームメモリ、11…
セグメントレングス算出部、12…円弧セグメント座標
発生部、13…移動距離演算部、14…セグメント走査
判定部、21…画素抜け判定部、22…法線ベクトル描
画部、23…セグメント終了条件判定部。
Claims (4)
- 【請求項1】 円、円弧、楕円および楕円弧を描画する
機能を有する図形描画装置において、入力された情報か
ら描画する円、円弧、楕円および楕円弧の大きさと線の
太さを認識する初期値認識手段と、該初期値認識手段で
認識した円、円弧、楕円および楕円弧の大きさと線の太
さを基に円、円弧、楕円および楕円弧を直線で近似して
描画しうる近似直線の線分長と等しい円弧長となる座標
を順次生成する円弧セグメント走査手段と、該円弧セグ
メント走査手段が生成した座標を円、円弧、楕円および
楕円弧を近似する線分の始点と終点の座標として順次保
持するセグメント始点・終点格納手段と、前記始点と終
点間の円弧上の座標を生成する円弧座標発生手段と、前
記始点と終点とを結ぶ直線上の座標を生成する直線座標
発生手段と、該直線座標発生手段が生成した座標を基に
前記始点と終点とを結ぶ直線に直交しかつ前記初期値認
識手段で認識された線幅と等しい長さを有する画素列を
生成する法線ベクトル生成手段と、該法線ベクトル生成
手段で生成された画素列を前記円弧座標発生手段が生成
した座標毎に発生させ描画を行なう描画手段を備えたこ
とを特徴とする図形描画装置。 - 【請求項2】 前記円弧セグメント走査手段は、前記初
期値認識手段で認識した円、円弧、楕円および楕円弧の
大きさと線の太さに基づいて円弧上の座標を生成する円
弧セグメント座標発生手段と、該円弧セグメント座標発
生手段が生成した座標の移動距離を演算する距離演算手
段と、前記初期値認識手段が認識した円、円弧、楕円お
よび楕円弧の大きさと線の太さを基に円、円弧、楕円お
よび楕円弧を直線で近似して描画しうる線分長を算出す
るセグメントレングス算出手段と、該セグメントレング
ス算出手段が求めた線分長を前記移動距離演算手段が求
めた移動距離が上回るか否かを判定するセグメント走査
判定手段を備えていることを特徴とする請求項1に記載
の図形描画装置。 - 【請求項3】 前記描画手段は、前記円弧座標発生手段
が求めた円弧座標に基づいて画素抜けの発生を判定する
画素抜け判定手段と、円弧画素を始点とした法線ベクト
ルに沿って描画する法線ベクトル描画手段と、該法線ベ
クトル描画手段による描画が前記セグメントの終点まで
終了したか否かを判定するセグメント終了条件判定手段
を備えていることを特徴とする請求項1または2に記載
の図形描画装置。 - 【請求項4】 前記円弧座標発生手段は、前記始点と終
点間の円弧上の座標を生成する際に、描画する線種に従
って前記円弧上の少なくとも一部の座標のみを生成する
ことを特徴とする請求項1ないし3のいずれか1項に記
載の図形描画装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP07900196A JP3555316B2 (ja) | 1996-04-01 | 1996-04-01 | 図形描画装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP07900196A JP3555316B2 (ja) | 1996-04-01 | 1996-04-01 | 図形描画装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09270018A true JPH09270018A (ja) | 1997-10-14 |
| JP3555316B2 JP3555316B2 (ja) | 2004-08-18 |
Family
ID=13677701
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP07900196A Expired - Fee Related JP3555316B2 (ja) | 1996-04-01 | 1996-04-01 | 図形描画装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3555316B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006331209A (ja) * | 2005-05-27 | 2006-12-07 | Mitsubishi Electric Corp | 図形描画装置及びプログラム |
| JP2010286359A (ja) * | 2009-06-11 | 2010-12-24 | Furuno Electric Co Ltd | 信号処理装置、この信号処理装置を備えるレーダ装置及びその信号処理装置の画素抜け検出方法 |
| US8581948B2 (en) | 2009-05-15 | 2013-11-12 | Ricoh Company, Ltd. | Information processing apparatus, laser radiation device, render information generating method, control system, recording medium, and render information storage device |
| CN113029030A (zh) * | 2021-03-23 | 2021-06-25 | 深圳市梯易易智能科技有限公司 | 一种3d玻璃的曲面成像方法及装置 |
-
1996
- 1996-04-01 JP JP07900196A patent/JP3555316B2/ja not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006331209A (ja) * | 2005-05-27 | 2006-12-07 | Mitsubishi Electric Corp | 図形描画装置及びプログラム |
| US8581948B2 (en) | 2009-05-15 | 2013-11-12 | Ricoh Company, Ltd. | Information processing apparatus, laser radiation device, render information generating method, control system, recording medium, and render information storage device |
| JP2010286359A (ja) * | 2009-06-11 | 2010-12-24 | Furuno Electric Co Ltd | 信号処理装置、この信号処理装置を備えるレーダ装置及びその信号処理装置の画素抜け検出方法 |
| CN113029030A (zh) * | 2021-03-23 | 2021-06-25 | 深圳市梯易易智能科技有限公司 | 一种3d玻璃的曲面成像方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3555316B2 (ja) | 2004-08-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3576611B2 (ja) | 文字発生装置ならびに方法 | |
| US6201550B1 (en) | Image forming apparatus and method of generating gradation pattern | |
| JP3057935B2 (ja) | 文字出力装置 | |
| JP3238580B2 (ja) | 太め細め文字生成装置 | |
| KR100317549B1 (ko) | 문자채움처리를위해연쇄코드를사용하는비트맵문자변환방법 | |
| JP3555316B2 (ja) | 図形描画装置 | |
| EP0811953B1 (en) | Image processing apparatus and method | |
| JP3498478B2 (ja) | 図形描画装置 | |
| JPH0263854A (ja) | 出力方法 | |
| JP2663857B2 (ja) | 近似曲線生成装置 | |
| US5146551A (en) | System for generating a circular or elliptic arc on a digital display | |
| JPH11175740A (ja) | 太線描画方法および装置 | |
| KR20080009870A (ko) | 비트맵 이미지 회전 장치 및 그 방법 | |
| JP3731221B2 (ja) | 太線描画装置および太線描画方法 | |
| JP3496381B2 (ja) | 線分描画装置 | |
| US20020141651A1 (en) | System, method and computer program product for generic outline font compression | |
| JP5479017B2 (ja) | 画像描画装置、画像描画方法、及びコンピュータプログラム | |
| JP3791203B2 (ja) | 画像処理装置 | |
| JP2856136B2 (ja) | 印刷装置 | |
| JPH07262385A (ja) | アウトラインデータ生成装置 | |
| JP3615375B2 (ja) | 画像処理方法、装置および記憶媒体 | |
| JP3338484B2 (ja) | アウトラインフォント変形装置 | |
| JP2861044B2 (ja) | 図形処理装置 | |
| JP2895529B2 (ja) | 文字発生方法および装置ならびに文書作成装置 | |
| JPH07334695A (ja) | 作図装置および線幅決定方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040413 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040420 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040503 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080521 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |