JPH0962837A - 線分拡大描画方法および線分拡大描画装置 - Google Patents

線分拡大描画方法および線分拡大描画装置

Info

Publication number
JPH0962837A
JPH0962837A JP7210891A JP21089195A JPH0962837A JP H0962837 A JPH0962837 A JP H0962837A JP 7210891 A JP7210891 A JP 7210891A JP 21089195 A JP21089195 A JP 21089195A JP H0962837 A JPH0962837 A JP H0962837A
Authority
JP
Japan
Prior art keywords
line segment
continuous
coordinate
area
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
Application number
JP7210891A
Other languages
English (en)
Inventor
Takashi Hosogai
隆 細貝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP7210891A priority Critical patent/JPH0962837A/ja
Publication of JPH0962837A publication Critical patent/JPH0962837A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 2重塗り潰しを排除し,かつ,連続する線分
が上下方向に繰り返された場合であっても,水平セグメ
ントをまとめることにより,個々の線分に対応する方式
に対し,描画速度を向上させる。 【解決手段】 拡大対象の線分で形成される四角形の各
頂点の座標値を求める頂点算出処理S102と,連続す
る四角形間の交点の座標値を求める交点算出処理S10
3と,このステップにより求められた頂点および交点に
より囲まれた連続する多角形を複数領域に分割する領域
分割処理S104と,分割された領域の垂直方向の下位
座標から順に,領域と水平線との交点座標間におけるメ
モリを塗り潰すことにより,メモリ上に連続する線分の
拡大描画を展開するメモリ展開処理S106とを含むも
のである。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は,ベクトルで与えら
れた連続する線分をページメモリ上に拡大展開し,拡大
描画を行う線分拡大描画方法および線分拡大描画装置に
関する。
【0002】
【従来の技術】従来,ベクトルで与えられた連続する線
分をメモリ上に拡大展開する方式としは,特に明示され
たものはないが,この要素となる線分の直線描画方式が
知られている。以下,この各種直線描画方式について説
明する。
【0003】(1)DDA方式/Bresenham方
式 このDDA(Digital Differentia
l Analysis)方式,Bresenham方式
の両方式は座標の計算方法のみが異なる。端点座標をP
s(xs,ys),Pe(xe,ye),線幅をWとす
る。線幅が1のとき,2端点間を補間するドット群を以
下にように逐次描画する。
【0004】すなわち,0≦θ≦π/4の場合,始点か
らX軸方向に1ドットずつ進み,その時点のY座標を計
算する。π/4<θ≦−π/2の場合,始点からY軸方
向に1ドットずつ進み,その時点のX座標を計算する。
−π/2≦θ<0(右下がり)の場合,計算上のYの符
号を逆転させた値とする。これにより,1ドット幅の直
線を描画を行っている。
【0005】また,線幅が2以上の場合,始点,終点を
1ドット分,平行移動し,再度直線描画を行う。始点,
終点の移動は線の太らせ方向で決まる。すなわち,線の
傾きθが水平に近い場合には垂直方向に太らせてY軸方
向に,また,逆の場合には水平方向に太らせてX軸方向
に移動させる。そして,この処理をW回数だけ繰り返し
実行することにより線幅Wの線分を描画する。
【0006】(2)特願平3−1283号に開示されて
いる直線描画方式 線分の両端点と線幅で指定される直線を描画する直線描
画方式において,線分の両端点と線幅から決定される四
角形の4頂点を求める算出手段と,この四角形の頂点を
通る水平線でこの四角形を複数領域に分割する領域分割
手段と,この各領域上にドット群のデジタル直線を発生
させるデジタル直線発生手段と,垂直方向座標の同一座
標位置の2ドット間を結ぶ上記水平線の情報をメモリ上
に展開するメモリ展開手段とを備えており,上記デジタ
ル直線発生手段は,上記水平線の情報に基づいて水平線
だけで,上記四角形内部を満たす指定される線幅の直線
を表示手段に描画するものである。
【0007】上記直線描画方式を図10を用いて説明す
る。端点座標をPs(xs,ys),Pe(xe,y
e),線幅をWとした場合,4頂点,Pa(xa,y
a),Pb(xb,yb),Pc(xc,yc),Pd
(xd,yd)は以下のようにして求められる。すなわ
ち, xa=xs+(W*sinθ)/2,ya=ys−(W
*cosθ)/2 xb=xs−(W*sinθ)/2,yb=ys+(W
*cosθ)/2 xc=xe+(W*sinθ)/2,yc=ye−(W
*cosθ)/2 xd=xe−(W*sinθ)/2,yb=ye+(W
*cosθ)/2 但し,sinθ,cosθは,数1により与えられる。
である。
【0008】
【数1】
【0009】次に,上記4頂点が形成する四角形を3領
域に分割する。例えば,図10では三角形PaPbP
f,四辺形PbPfPcPg,三角形PgPcPdであ
る。次いで,Y座標が最も小さい点Paを起点とし,P
aからPb(左辺),PaからPc(右辺)を補間する
ドット群を生成する。Y座標をカウントアップしながら
該当する左辺から右辺への水平セグメントを描画する。
【0010】その後,領域1について終了すると,以
下,領域2についても同様の動作を実行する。さらに領
域3のそれぞれの左辺,右辺を算出し,水平セグメント
を描画する。
【0011】(3)特願平2−126377号に開示さ
れている太線描画方式 太線を描画する太線描画方式において,始点座標および
終点座標の傾きdに対応する端点処理係数を予め格納し
た端点処理係数テーブルと,この端点処理係数テーブル
を参照し,指示された始点座標および終点座標の傾きd
に対応する端点処理係数をそれぞれ求め,描画しようと
する幅wの太線の端点座標P,Q,Rを求める端点処理
部とを備えており,この端点処理部で求めた端点座標
P,Rを結ぶ線分PRの描画を端点座標Qまで切り返し
実行することにより,太線を描画する。なお,この場
合,上記(1)の方式に基づいて,始点・終了座標のs
inθ,cosθ等の三角関数を含む演算をテーブルを
用いることにより処理を高速に実行している。
【0012】
【発明が解決しようとする課題】しかしながら,上記に
示されるような従来の描画方式にあっては,以下に示す
ような問題点があった。
【0013】まず,(1)のDDA/Bresenha
m方式の場合にあっては,1ドット幅ずつで直線描画を
行っているため,描画処理速度が遅くなる。
【0014】また,(2)の直線描画方式や(3)の太
線描画方式の場合にあっては,分割した領域をドット群
で塗り潰すため,処理速度は向上するが,この方式で連
続する線分を描画した場合に,傾きが異なる2線分間で
拡大描画を行うと,1つの線分の頂点を通る水平線で分
割した領域を分割するため,片側部分で線分の途切れが
生じ,不自然さを与える共に,もう片側では描画の重な
りが生じ,無駄な手順が含まれる。
【0015】さらに,単一線分の拡大描画を続けて行う
と,線分に対応して水平線セグメントを設定するが,連
続する線分を拡大描画する場合には,同一Y座標に複数
の線分が存在することにより,同一Y座標に対して複数
回の水平セグメントを設定することになるため,処理速
度が低下する。
【0016】本発明は,上記に鑑みてなされたものであ
って,連続する線分の両端点が与えられたものを拡大描
画する場合に,2重塗り潰しを排除し,かつ,その描画
処理速度を向上させ,さらに連続する線分が上下方向に
繰り返された場合であっても,水平セグメントをまとめ
ることにより,描画速度を向上させることを目的とす
る。
【0017】
【課題を解決するための手段】上記の目的を達成するた
めに,請求項1に係る線分拡大描画方法にあっては,両
端点が与えられた連続する線分を拡大展開して拡大描画
を行う線分拡大描画方法において,拡大対象の線分で形
成される四角形の各頂点の座標値を求める頂点算出ステ
ップと,連続する前記四角形間の交点の座標値を求める
交点算出ステップと,前記ステップにより求められた頂
点および交点により囲まれた連続する多角形を複数領域
に分割する領域分割ステップと,前記分割された領域の
垂直方向の下位座標から順に,前記領域と水平線との交
点座標間におけるメモリを塗り潰すことにより,メモリ
上に連続する線分の拡大描画を展開するメモリ展開ステ
ップとを含むものである。
【0018】また,請求項2に係る線分拡大描画方法に
あっては,両端点が与えられた連続する線分をページメ
モリに拡大展開して拡大描画を行う線分拡大描画方法に
おいて,拡大対象の線分で形成される四角形の各頂点の
座標値を求める頂点算出ステップと,連続する前記四角
形間の交点の座標値を求める交点算出ステップと,前記
頂点および交点で囲まれた連続する多角形を複数領域に
分割する領域分割ステップと,全ての線分を展開し,各
線分の拡大塗り潰し領域テーブルを生成し,該テーブル
をまとめ,前記分割された領域の垂直方向の下位座標か
ら順に,連続する線分の拡大塗り潰し領域テーブルを生
成する水平セグメント展開ステップと,前記連続する線
分の拡大塗り潰し領域テーブルを用いて,開始および終
点のY座標をインクリメントし,対応する開始および終
点のX座標を算出し,その間の対応メモリを塗り潰すメ
モリ展開ステップとを含むものである。
【0019】すなわち,上記各ステップに基づいて,連
続する線分を拡大描画することにより,単なる直線描画
方法を組み合わせてものに比べ,連続する部分が滑らか
になると共に,二重塗り潰しといった無駄な処理が排除
されるので,描画速度が向上する。また,連続する線分
が上下方向に繰り返されている場合は,水平セグメント
をまとめることにより,個々の線分に対応する方法に比
べ,描画速度が向上する。
【0020】また,請求項3に係る線分拡大描画装置に
あっては,両端点が与えられた連続する線分を拡大展開
して拡大描画を行う線分拡大描画装置において,拡大対
象の線分で形成される四角形の各頂点の座標値を求める
頂点算出手段と,連続する前記四角形間の交点の座標値
を求める交点算出手段と,前記頂点算出手段および交点
算出手段により求められた頂点および交点により囲まれ
た連続する多角形を複数領域に分割する領域分割手段
と,前記領域分割手段により分割された領域の垂直方向
の下位座標から順に,前記領域と水平線との交点座標間
におけるメモリを塗り潰すことにより,メモリ上に連続
する線分の拡大描画を展開するメモリ展開手段とを具備
するものである。
【0021】また,請求項4に係る線分拡大描画装置に
あっては,描画対象の直線の始点と終点とを入力する機
能,および該始点と終点を結ぶ直線が表示される表示機
能を有した入力・表示手段と,前記入力・表示手段の表
示結果を記録紙に出力する画像出力手段とを備えた線分
拡大描画装置において,拡大対象の線分で形成される四
角形の各頂点の座標値を求める頂点算出手段と,連続す
る前記四角形間の交点の座標値を求める交点算出手段
と,前記頂点および交点で囲まれた連続する多角形を複
数領域に分割する領域分割手段と,全ての線分を展開
し,各線分の拡大塗り潰し領域テーブルを生成し,該テ
ーブルをまとめ,前記分割された領域の垂直方向の下位
座標から順に,連続する線分の拡大塗り潰し領域テーブ
ルを生成する水平セグメント展開手段と,前記連続する
線分の拡大塗り潰し領域テーブルを用いて,開始および
終点のY座標をインクリメントし,対応する開始および
終点のX座標を算出し,その間の対応メモリを塗り潰す
メモリ展開手段とを備え,前記連続する線分の拡大描画
を実行し,前記入力・表示手段および(または)前記画
像出力手段に拡大線画を出力するものである。
【0022】すなわち,上記各手段に基づいて,連続す
る線分を拡大描画し,入力・表示手段および(あるい
は)画像出力手段に拡大線画を出力することにより,単
なる直線描画方法を組み合わせて装置に比べ,連続する
部分が滑らかになると共に,二重塗り潰しといった無駄
な処理が排除されるので,描画速度が向上する。また,
連続する線分が上下方向に繰り返されている場合は,水
平セグメントをまとめることにより,個々の線分に対応
する方法に比べ,描画速度が向上する。
【0023】
【発明の実施の形態】以下,本発明に係る線分拡大描画
方法および線分拡大描画装置の一実施例を添付図面を参
照して説明する。
【0024】〔実施例〕 (実施例の構成)図2は,本実施例に係るシステム構成
を示すブロック図である。図において,このシステム
は,大きくは,コントローラ200,画像出力手段とし
てのスキャナ210,プリンタ220,入力・表示手段
としての液晶表示タブレット(液晶デジタイザ)23
0,およびスタイラスペン240により構成されてい
る。
【0025】コントローラ200は,システムバス20
1と,該システムバス201に繋がれた各種の機能を備
えた以下のボードにより構成されている。すなわち,他
のボードをシステムバス201を介して統括的に制御す
るCPUボード(CPUB)202,それぞれ1ページ
分の画像バッファメモリであるページメモリボードPM
−A203およびPM−B204,スキャナ210およ
びプリンタ220とのインターフェイス制御を行うため
のスキャナ・プリンタ・インターフェイスボード(SP
−I/F)205,2つの画像合成や指定メモリ位置の
塗り潰し等の画像処理を高速に実行する画像処理手段と
してのイメージプロセッサ(IMP)・ボード(IMP
B)206,VRAMの画像データを液晶表示タブレッ
ト230に表示するLCDCB207が設けられてい
る。
【0026】(実施例の動作)次に,以上のように構成
されたシステムの基本的な動作を説明する。LCDCB
207は,VRAMの画像データを液晶表示タブレット
230に表示する。液晶表示タブレット230の表面に
は,スタイラスペン240の入力を認識できるタブレッ
トが設けられている。LCDCB207は,スタイラス
ペン240で入力された座標値をCPUB202に伝え
る。
【0027】また,CPUB202は,液晶表示タブレ
ット230の表示画面に応じて入力座標値を画像加工指
示,あるいは手書き入力座標として取り扱う。手書き入
力の場合,その座標値に基づいてLCDCB207のV
RAMに対応する線分を描画し,液晶表示タブレット2
30に表示すると共に,CPUB202のワークキング
用RAMにその座標値を格納する。
【0028】イメージプロセッサ・ボードIMPB20
6は,第1の動作として,ページメモリボードPM−A
203から画像データを読み出し,該画像データをPM
−B204に転送し書き込む。このとき,IMPB20
6は,PM−A203の画像データを拡大/縮小,回転
/反転等の編集加工を行ってPM−B204に書き込
む。
【0029】また,イメージプロセッサ・ボードIMP
B206は,第2の動作として,PM−A203または
PM−B204から画像データを読み出し,LCDCB
207に画像データを転送する。このとき,PM−A2
03またはPM−B204の画像データを縮小し,LC
DCB207のVRAMに書き込む。
【0030】また,イメージプロセッサ・ボードIMP
B206は,第3の動作として,CPUB202内のワ
ークキング用RAMに格納されている座標値より,拡大
描画のための頂点算出,交点算出,領域分割および水平
セグメント展開を行い,IMPB206を経由してPM
−B204に連続する線分の拡大描画を実行する。
【0031】したがって,上記動作により,スキャナ2
10から読み込んだ画像データを液晶表示タブレット2
30で確認しながら加工し,さらにスタイラスペン24
0を用いて手書き入力することにより,液晶表示タブレ
ット230の画面上でその結果を確認し,プリンタ22
0に出力することができる。
【0032】次に,本発明に対応する手書き入力部分の
動作について説明する。ここでは,与えられた連続する
線分座標からページメモリPM−B204上に拡大描画
するものである。この連続する線分の拡大描画の一連の
処理動作を図1のフローチャートに示す。
【0033】図1において,まず,液晶表示タブレット
230とスタイラスペン240により入力された一連の
座標をスタックエリアから呼び出し,線分座標の入力処
理を実行する(S101)。
【0034】次に,拡大される各線分の四つの頂点を求
める頂点算出処理(S102),連続する四角形間の交
点を求める交点算出処理(S103),上記算出した頂
点および交点を通る水平線で,これら頂点および交点に
囲まれた連続する多角形を複数領域に分割する領域分割
処理(S104)の各処理を順に実行する。
【0035】次いで,これらの処理が,全ての線分を展
開して実行されたか否かを判断する(S105)。すな
わち,スタイラスペン240より入力された一連の座標
の終了までの線分の拡大領域の算出を行ったかを確認
し,上記各処理を全ての線分について実行する。その
後,水平セグメントの展開処理(S106),さらに,
メモリへの展開処理(S107)の各処理を実行する。
【0036】以下,これら処理を詳細に説明する。 (1)頂点算出処理(ステップS102) ここで,図3に示す座標入力において,図4に示すよう
な拡大描画を実行する場合を例にとって説明する。図4
において,拡大された座標系で図3の入力座標に対応す
る点列をP1,P2,・・・,Pnとする。また,各線
分が幅を持ち長方形QiRiSiTi(i=1,2,・
・・,n)になるものとする。
【0037】元の座標系を(Xi,Yi),拡大される
座標系を(xi,yi)とすると,拡大された線分の対
応点,頂点は下記に示す関数により表すことができる。
すなわち, Pi(xip,yip)=fp(Xi,Yi) Qi(xiq,yiq)=fq(Xi,Yi,Xi+
1,Yi+1) Ri(xir,yir)=fr(Xi,Yi,Xi+
1,Yi+1) Si(xis,yis)=fs(Xi,Yi,Xi+
1,Yi+1) Ti(xit,yit)=ft(Xi,Yi,Xi+
1,Yi+1) である。
【0038】ここで,この座標変換の単純な例として, Pi(xip,yip)=fp(Xi,Yi)=(N*
Xi,N*Yi)(Nは整数) とし, tanθ1=(Y2−Y1)/(X2−X1) tanθ2=(Y3−Y2)/(X3−X2)(θ2≠
θ1,θ2≠θ1+π)・・・・・ tanθi=(Yi+1−Yi)/(Xi+1−Xi) とおいた場合,上記頂点は次式により表される。
【0039】すなわち, Qi(xiq,yiq)=(N*(Xi+(1/2)*
sinθi),N*(Yi−1/2cosθi)) Ri(xir,yir)=(N*(Xi−(1/2)*
sinθi),N*(Yi+1/2cosθi)) Si(xis,yis)=(N*(Xi+1+(1/
2)*sinθi),N*(Yi+1−1/2cosθ
i)) Ti(xit,yit)=(N*(Xi+1−(1/
2)*sinθi),N*(Yi+1+(1/2)*c
osθi)) である。
【0040】図5は,sinθiおよびcosθiの算
出を示すフローチャートである。まず,dYi=Yi+
1−Yi,dXi=YX+1−Xiとし(S501),
dXi=0であるか否かを判断する(S502)。
【0041】ここで,dXi=0であると判断した場
合,さらに,dYi>0であるか否かを判断する(S5
03)。dYi>0ではないと判断した場合,cosθ
i=0,sinθi=−1とする(S504)。一方,
ステップS503において,dYi>0であると判断し
た場合,cosθi=0,sinθi=1とする(S5
05)。
【0042】一方,ステップS502において,dXi
=0ではないと判断した場合,さらに,|dXi|>|
dYi|であるか否かを判断する(S506)。
【0043】ここで,|dXi|>|dYi|ではない
と判断した場合,Ii=|dXi|*1000/|dY
i|とし(S507),図6に示すテーブルを参照し,
SIN=Bi,COS=Aiとし(S508),ステッ
プS511に進む。ステップS506において,|dX
i|>|dYi|であると判断した場合,Ii=|dY
i|*1000/|dXi|とし(S509),図6に
示すテーブルを参照し,SIN=Ai,COS=Biと
する(S510)。
【0044】さて,上記処理を実行すると,次に,dY
i>0であるか否かを判断する(S511)。ここで,
dYi>0ではないと判断した場合,sinθi=−S
IN/1000とし(S512),ステップS514に
進む。一方,dYi>0であると判断した場合,sin
θi=SIN/1000とし(S513),ステップS
514に進む。
【0045】次に,dXi>0であるか否かを判断する
(S514)。ここで,dXi>0ではないと判断した
場合,cosθi=−COS/1000とする(S51
5)。一方,dXi>0であると判断した場合,cos
θi=COS/1000とする(S516)。
【0046】換言すれば,ステップS507のIiはc
osθi,ステップS509のIiはtanθiの絶対
値の1000倍の値であり,ステップS508,S51
0のテーブルとして,図6に示すsinθ,cosθの
算出用テーブルを用いる。
【0047】このIiの値に対するcosθi,sin
θiの値を求める3*1000のマトリックスで,Ai
はtanθiに対するsinθi,cosθiに対する
cosθiの1000倍の値で,Biはtanθiに対
するcosθi,cotθiに対するsinθiの10
00倍の値である。
【0048】したがって,液晶表示タブレット130の
ドットサイズを,例えば,640ドット*480ドット
とした場合,この程度の精度のsinθ,cosθの算
出用テーブルで十分である。
【0049】次に,図7に示すフローチャートを用い,
頂点算出について説明する。まず,上記したように,s
inθ1,cosθ1を算出する(S701)。そし
て,Qi,Ri,Si,Ti,Pi,Pi+1を算出す
る(S702)。
【0050】例えば,fp(Xi,Yi)=(N*X
i,N*Yi)とすると,Qi(xiq,yiq)は, xiq=N*(2000*Xi+or−SIN)/20
00 yiq=N*(2000*Yi+or−COS)/20
00 により算出される。
【0051】算出された頂点は,図8(a)に示すよう
な第i線分頂点,交点算出テーブルの頂点座標にその値
を設定する(座標番号3,4,5,6が対応)。このと
き,拡大開始対応点,拡大終了対応点(座標番号1,2
が対応)にも値を設定する。なお,図8(a)におい
て,(xui−1,yui−1)は,7番または8番の
何れか該当しない方に(0,0)を設定し,(xui,
yui)は,9番または10番の何れか該当しない方に
(0,0)を設定する。
【0052】なお,図8において,第i線分の塗り潰し
多角形は,以下の4つである。すなわち, RiPiU’i−1U’iPi+1Ri+1Ti, RiPiU’i−1SiQi+1Pi+1Ui, Ui−1PiQiU’iPi+1Ri+1Ti, Ui−1PiQiSiQi+1Pi+1Ui である。
【0053】(2)交点算出処理(ステップS103) 拡大された隣接する2線分,すなわち,長方形QiRi
SiTiと長方形Qi+1Ri+1Si+1Ti+1の
交点Ui(i=1,2,・・・,n−1)は下記に示す
関数で表すことができる。すなわち, Ui=(xiu,yiu)=fu(Xi,Yi,Xi+
1,Yi+1,Xi+2,Yi+2) である。
【0054】いま,この座標変換の単純な例として, Pi(xip,yip)=fp(Xi,Yi)=(N*
Xi,N*Yi)(Nは整数) とし, tanθi=(Yi+1−Yi)/(Xi+1−Xi) とおいた場合, Ui(xiu,yiu)=fu(Xi,Yi,Xi+
1,Yi+1,Xi+2,Yi+2)=( N*Xi+
1+(N/2)*(cosθi−cosθi+1+ta
nθi*sinθi−tanθi+1*sinθi+
1)/(tanθi−tanθi+1),N*Y+1+
(N/2)*(tanθi+1*cosθi−tanθ
i*cosθi+1+tanθi*tanθi+1*
(sinθi−sinθi+1))/(tanθi−t
anθi+1) ) と表される。
【0055】次に,図9に示すフローチャートを用い,
交点算出について説明する。まず,前述したように,s
inθ1,cosθ1を算出する(S901)。次い
で,sinθi+1,cosθi+1を算出する(S9
02)。そして,上記の式を用いて交点Uiを算出する
(S903)。
【0056】上記算出された交点Uiは,図8に示すよ
うな第i線分頂点・交点算出テーブルの交点座標に,そ
の値を設定する(座標番号7または8,9または10が
対応)。
【0057】(3)領域分割処理(ステップS104) 図10,11,12を用いて領域分割処理を説明する。
図10は,単一の線分で,長方形PaPbPcPdが該
当する拡大線分の塗り潰し領域である。頂点Pa,P
b,Pc,Pdと水平方向で長方形と交わる点をPf,
Pgとすると,領域分割は三角形PaPbPf(領域
1),四辺形PbPfPcPg(領域2),三角形Pg
PcPd(領域3)となる。長方形がx軸,あるいはy
軸に平行な場合は,長方形PaPbPcPdが1つの領
域となる。
【0058】また,図11に示す拡大線分の場合には,
拡大された線分の長方形のうち3頂点Pa,Pb,Pd
と次拡大線分の開始点Pe,次拡大線分の長方形との交
点Pcおよび交点Pcの反対側の頂点Piとの六角形P
aPcPePiPdPbが該当する拡大線分の塗り潰し
領域となる。これをx軸に平行な線分で領域分割を行
う。
【0059】すなわち,この場合,三角形PaPbPf
(領域1),四辺形PbPfPcPg(領域2),四辺
形PgPcPePh(領域3),四辺形PhPePjP
d(領域4),三角形PdPjPi(領域5)の各領域
に分割する。
【0060】また,線分がx軸,y軸に平行な場合の領
域は3分割に,また,線分PdPiがx軸に平行な場合
には4分割に領域が分割される。また,拡大2線分の交
わりによっては,図12に示すような領域分割がある。
【0061】すなわち,三角形PaPbPf(領域
1),四辺形PbPfPcPg(領域2),四辺形Pg
PcPePh(領域3),三角形Ph(Pe)PjPd
(領域4),三角形PePiPj(領域5)である。そ
の他,隣接する2線分の傾きのあらゆる場合を想定して
も,上記図11,図12に示すような領域分割の類型と
なる。
【0062】図13は,領域分割処理を示すフローチャ
ートである。まず,第i線分に塗り潰し,多角形の頂点
のy座標を昇順に塗り潰し領域テーブルの開始y座標,
終了y座標を設定する(S1301)。
【0063】この処理は,第i線分の塗り潰し多角形P
iUi−1UiPi+1Ri+1TiRiについての処
理であり,第1線分の塗り潰し多角形R1Q1U1P2
R2T1である。ただし,図4に示したタイプの連続す
る線分の場合である。
【0064】上記処理後,同テーブルの該y座標間の開
始x座標,終了y座標のy関数を設定する(S130
2)。例えば,直線RiQi上のx座標は, (xri−xqi)/(yri−yqi)*(y−yr
i)+xri のyの関数で表される。
【0065】この連続する拡大線分の領域分割例を図1
4に示す。また,この例における拡大線分の塗り潰し領
域を図15(1)〜(3)のテーブルに示す。y座標の
昇順に,上記領域分割の方式に基づいて,開始y座標,
終了y座標をテーブルに設定する。このときの開始およ
び終了x座標をyの値の関数(一次関数)でテーブルに
設定し,yの値に応じて算出できるようにする。
【0066】(4)水平セグメント展開処理(ステップ
S106) ここでは,全ての線分を展開して,各線分の拡大塗り潰
しテーブル(Ti)を生成し,これらをまとめてy座標
の昇順に連続する線分の拡大塗り潰し領域テーブル(T
a)を生成する。
【0067】図16は,水平セグメント展開処理を示す
フローチャートである。図において,まず,各Tiテー
ブルの中から最小のY座標y1を獲得する(S160
1)。続いて,上記と同様にして,次最小開始または終
了Y座標y2を獲得する(S1602)。次に,y2が
開始座標であるか否かを判断する(S1603)。
【0068】ここで,y2が開始座標ではないと判断し
た場合には,さらに,y2はy1の終了Y座標であるか
否かを判断する(S1604)。y2がy1の終了Y座
標であると判断した場合,Taテーブルにy1,y2お
よび開始,終了X座標を記入する(S1605)。
【0069】次いで,(y1,y2)間の他線分の塗り
潰しチェック処理(図17参照)を実行する(S160
6)。このステップS1606を実行した後,開始Y座
標にy2があるか否かを判断する(S1607)。ここ
で,開始Y座標にy2があると判断した場合には,y1
=y2とし(S1608),ステップS1602に戻
る。
【0070】一方,ステップS1603において,y2
が開始座標であると判断した場合,さらに,y1=y2
であるか否かを判断する(S1609)。ここで,y1
=y2であると判断した場合,y1の線分の終了X座標
とy2の線分の開始X座標とが一致,またはy1の線分
の開始X座標とy2の線分の終了X座標とが一致してい
るか否かを判断する(S1610)。
【0071】このステップS1610において,一致し
たと判断した場合,Tiテーブル上でy1の線分とy2
の線分とをまとめて,単一の領域として再記入し(S1
611),ステップS1602に戻る。また,ステップ
S1610において,不一致であると判断した場合,ス
テップS1602に戻る。
【0072】上記ステップS1604において,y2は
y1の終了Y座標ではないと判断した場合,あるいは上
記ステップS1609において,y1=y2ではないと
判断した場合,次に述べるステップS1612を実行す
る。
【0073】すなわち,Taテーブルにy1,y2およ
びy1を通る線分開始,終了X座標を記入し(S161
2),(y1,y2)間の他線分の塗り潰しチェック処
理(図17参照)を実行し(S1613),さらにy1
=y2とし(S1614),ステップS1602に戻
る。
【0074】次に,上記ステップS1606およびステ
ップS1613に対応する塗り潰しチェック処理につい
て,図17に示すフローチャートを用いて説明する。な
お,Taは連続する線分の拡大塗り潰し領域テーブル,
Tiは第i線分の拡大塗り潰し領域テーブル,ysij
はTiテーブルのj番目(高々7)の開始Y座標,ye
ijはTiテーブルのj番目の終了Y座標をそれぞれ示
している。
【0075】図17において,まず,y2<yeij,
かつ,y1<ysijであるか否かを判断する(S17
01)。ここで,y2<yeij,かつ,y1<ysi
jであると判断した場合,Taテーブルに,開始Y座標
y1,終了Y座標y2,Tiテーブルのj番目の開始X
座標,終了X座標の値を記入する(S1702)。
【0076】図18に,TiテーブルおよびTaテーブ
ルの構成を示す。Taテーブルの2行目は同一開始,終
了Y座標に複数の開始,終了X座標が対応していること
を示している。また,Tiテーブルにおける,xsi
j,xeijはyの一次関数であり,jの値は高々7で
ある。
【0077】また,Taテーブルにおいて,nは同一開
始,終了Y座標間にあるX方向の塗り潰し領域の数,m
はY方向で識別される塗り潰し領域の境界数であり,n
の数は少なくとも1で同一Y区間を横切る線分の数と共
に増加する。
【0078】また,例として,図14に示すような連続
する線分の拡大に対応するTiテーブルは,図15
(1)(2)(3)に示すものとなる。また,これらか
ら得られる連続する線分の拡大塗り潰し領域のTaテー
ブルは,図15(4)に示すものとなる。
【0079】(5)メモリ展開処理(ステップS10
7) ここでは,Taテーブルを用いて,開始Y座標,終了Y
座標間をYの値を1つづつ増加させることにより,対応
する開始X座標,終了X座標を算出し,その間の対応メ
モリを塗り潰す。
【0080】図19は,メモリ展開処理を示すフローチ
ャートである。図において,Taテーブルより最初の開
始Y座標ys,終了Y座標yeを獲得し,ワーク変数と
してyにysを代入する(S1901)。
【0081】続いて,対応する開始X座標fs(Y),
終了X座標fe(Y)を獲得する(S1902)。な
お,fs(Y),fe(Y)はYの一次関数である。同
一開始,終了Y座標(ys,ye)間に複数のfs
(Y),fe(Y)が存在する場合,一組の開始,終了
X座標間を塗り潰した後,順次これらを獲得する。
【0082】次いで,カレントy座標での開始X座標x
s,終了X座標xeを算出する(S1903)。さら
に,カレントy座標での水平セグメント(xs,xe)
間の対応メモリを塗り潰す(S1904)。その後,次
なる開始,終了X座標があるか否かを判断する(S19
05)。
【0083】ここで,次なる開始,終了X座標があると
判断した場合,ステップS1902に戻り,次なる開
始,終了X座標がないと判断した場合,さらにy>ye
であるか否かを判断する(S1906)。
【0084】ステップS1906において,y>yeで
はないと判断した場合,y=y+1とする(S190
7)。すなわち,カレントy座標での全ての水平セグメ
ントの塗り潰しを終了し,かつ,終了Y座標yeを越え
ない場合,カレントy座標を1つ増加させ,次ラインに
おける水平セグメントの塗り潰しを行う。
【0085】一方,ステップS1906において,y>
yeであると判断した場合,さらに,次なる開始,終了
Y座標があるか否かを判断する(S1908)。ここ
で,次なる開始,終了Y座標があると判断した場合,
(ys,ye)を獲得し,カレントy座標をysに設定
し,水平セグメントの塗り潰しを行う(S1909)。
【0086】
【発明の効果】以上説明したように,本発明に係る線分
拡大描画方法(請求項1,2)によれば,拡大対象の線
分で形成される四角形の各頂点の座標値を求め,連続す
る四角形の交点の座標値を求め,頂点および交点で囲ま
れた連続する多角形を複数領域に分割し,全ての線分を
展開し,各線分の拡大塗り潰し領域テーブルを生成し,
該テーブルをまとめ前記分割された領域の垂直方向の下
位座標から順に,連続する線分の拡大塗り潰し領域テー
ブルを生成し,連続する線分の拡大塗り潰し領域テーブ
ルを用いて,開始および終点のY座標をインクリメント
し,対応する開始および終点のX座標を算出し,その間
の対応メモリを塗り潰すため,2重塗り潰しを行うこと
なく,その描画処理速度を向上させることができ,さら
に連続する線分が上下方向に繰り返された場合であって
も,水平セグメントをまとめることにより個々の線分に
対応する方式に対し描画速度を向上させることができ
る。
【0087】また,本発明に係る線分拡大描画装置(請
求項3,4)によれば,頂点算出手段と,交点算出手段
と,領域分割手段と,水平セグメント展開手段と,メモ
リ展開手段と,により連続する線分の拡大描画を実行
し,入力・表示手段および(あるいは)画像出力手段に
拡大線画を出力するため,単なる直線描画方法を組み合
わせた装置に比べ,連続する部分が滑らかになると共
に,二重塗り潰しといった無駄な処理が排除されるの
で,描画速度を向上させることができる。また,連続す
る線分が上下方向に繰り返されている場合は,水平セグ
メントをまとめることにより個々の線分に対応する方法
に比べ描画速度を向上させることができる。
【図面の簡単な説明】
【図1】本実施例に係る連続する線分の拡大描画の処理
動作を示すフローチャートである。
【図2】本実施例に係るシステム構成を示すブロック図
である。
【図3】本実施例に係る入力座標例を示す説明図であ
る。
【図4】図3に対応する拡大描画例を示す説明図であ
る。
【図5】本実施例に係るsinθiおよびcosθiの
算出を示すフローチャートである。
【図6】本実施例に係るsinθおよびcosθの算出
用テーブルを示す説明図である。
【図7】本実施例に係る頂点算出処理を示すフローチャ
ートである。
【図8】本実施例に係る頂点,交点算出テーブルおよび
拡大線分の頂点,交点と番号の対応を示す説明図であ
る。
【図9】本実施例に係る交点算出処理を示すフローチャ
ートである。
【図10】本実施例に係る単一線分を示す説明図であ
る。
【図11】本実施例に係る連続する2つの線分を示す説
明図である。
【図12】本実施例に係る領域分割状態を示す説明図で
ある。
【図13】本実施例に係る領域分割処理を示すフローチ
ャートである。
【図14】本実施例に係る連続する拡大線分の領域分割
例を示す説明図である。
【図15】本実施例に係る各拡大線分の塗り潰し領域を
示すテーブルである。
【図16】本実施例に係る水平セグメント展開処理を示
すフローチャートである。
【図17】本実施例に係る(y1,y2)間における他
線分の塗り潰しチェック処理を示すフローチャートであ
る。
【図18】本実施例に係るTiテーブルおよびTaテー
ブルを示す説明図である。
【図19】本実施例に係るメモリ展開処理を示すフロー
チャートである。
【符号の説明】
200 コントローラ 202 CP
UB 204 PM−B 206 IM
PB 220 プリンタ 230 液晶
表示タブレット 240 スタイラスペン

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 両端点が与えられた連続する線分を拡大
    展開して拡大描画を行う線分拡大描画方法において,拡
    大対象の線分で形成される四角形の各頂点の座標値を求
    める頂点算出ステップと,連続する前記四角形間の交点
    の座標値を求める交点算出ステップと,前記ステップに
    より求められた頂点および交点により囲まれた連続する
    多角形を複数領域に分割する領域分割ステップと,前記
    分割された領域の垂直方向の下位座標から順に,前記領
    域と水平線との交点座標間におけるメモリを塗り潰すこ
    とにより,メモリ上に連続する線分の拡大描画を展開す
    るメモリ展開ステップとを含むことを特徴とする線分拡
    大描画方法。
  2. 【請求項2】 両端点が与えられた連続する線分をペー
    ジメモリに拡大展開して拡大描画を行う線分拡大描画方
    法において,拡大対象の線分で形成される四角形の各頂
    点の座標値を求める頂点算出ステップと,連続する前記
    四角形間の交点の座標値を求める交点算出ステップと,
    前記頂点および交点で囲まれた連続する多角形を複数領
    域に分割する領域分割ステップと,全ての線分を展開
    し,各線分の拡大塗り潰し領域テーブルを生成し,該テ
    ーブルをまとめ,前記分割された領域の垂直方向の下位
    座標から順に,連続する線分の拡大塗り潰し領域テーブ
    ルを生成する水平セグメント展開ステップと,前記連続
    する線分の拡大塗り潰し領域テーブルを用いて,開始お
    よび終点のY座標をインクリメントし,対応する開始お
    よび終点のX座標を算出し,その間の対応メモリを塗り
    潰すメモリ展開ステップとを含むことを特徴とする線分
    拡大描画方法。
  3. 【請求項3】 両端点が与えられた連続する線分を拡大
    展開して拡大描画を行う線分拡大描画装置において,拡
    大対象の線分で形成される四角形の各頂点の座標値を求
    める頂点算出手段と,連続する前記四角形間の交点の座
    標値を求める交点算出手段と,前記頂点算出手段および
    交点算出手段により求められた頂点および交点により囲
    まれた連続する多角形を複数領域に分割する領域分割手
    段と,前記領域分割手段により分割された領域の垂直方
    向の下位座標から順に,前記領域と水平線との交点座標
    間におけるメモリを塗り潰すことにより,メモリ上に連
    続する線分の拡大描画を展開するメモリ展開手段とを具
    備することを特徴とする線分拡大描画装置。
  4. 【請求項4】 描画対象の直線の始点と終点とを入力す
    る機能,および該始点と終点を結ぶ直線が表示される表
    示機能を有した入力・表示手段と,前記入力・表示手段
    の表示結果を記録紙に出力する画像出力手段とを備えた
    線分拡大描画装置において,拡大対象の線分で形成され
    る四角形の各頂点の座標値を求める頂点算出手段と,連
    続する前記四角形間の交点の座標値を求める交点算出手
    段と,前記頂点および交点で囲まれた連続する多角形を
    複数領域に分割する領域分割手段と,全ての線分を展開
    し,各線分の拡大塗り潰し領域テーブルを生成し,該テ
    ーブルをまとめ,前記分割された領域の垂直方向の下位
    座標から順に,連続する線分の拡大塗り潰し領域テーブ
    ルを生成する水平セグメント展開手段と,前記連続する
    線分の拡大塗り潰し領域テーブルを用いて,開始および
    終点のY座標をインクリメントし,対応する開始および
    終点のX座標を算出し,その間の対応メモリを塗り潰す
    メモリ展開手段とを備え,前記連続する線分の拡大描画
    を実行し,前記入力・表示手段および(または)前記画
    像出力手段に拡大線画を出力することを特徴とする線分
    拡大描画装置。
JP7210891A 1995-08-18 1995-08-18 線分拡大描画方法および線分拡大描画装置 Pending JPH0962837A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7210891A JPH0962837A (ja) 1995-08-18 1995-08-18 線分拡大描画方法および線分拡大描画装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7210891A JPH0962837A (ja) 1995-08-18 1995-08-18 線分拡大描画方法および線分拡大描画装置

Publications (1)

Publication Number Publication Date
JPH0962837A true JPH0962837A (ja) 1997-03-07

Family

ID=16596806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7210891A Pending JPH0962837A (ja) 1995-08-18 1995-08-18 線分拡大描画方法および線分拡大描画装置

Country Status (1)

Country Link
JP (1) JPH0962837A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299285A (ja) * 2006-05-01 2007-11-15 Ricoh Co Ltd 手書き文字描画方法およびその方法をコンピュータに実行させるプログラム
WO2011135761A1 (ja) * 2010-04-30 2011-11-03 パナソニック株式会社 撮像装置、画像処理装置、および画像処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299285A (ja) * 2006-05-01 2007-11-15 Ricoh Co Ltd 手書き文字描画方法およびその方法をコンピュータに実行させるプログラム
WO2011135761A1 (ja) * 2010-04-30 2011-11-03 パナソニック株式会社 撮像装置、画像処理装置、および画像処理方法
US8553097B2 (en) 2010-04-30 2013-10-08 Panasonic Corporation Reducing blur based on a kernel estimation of an imaging device

Similar Documents

Publication Publication Date Title
JP2920387B2 (ja) デジタル書体の視覚的劣化を最少にする方法および装置
US20020076121A1 (en) Image transform method for obtaining expanded image data, image processing apparatus and image display device therefor
JP3705826B2 (ja) 仮想3次元ウインドウ表示制御方法
JP2512080B2 (ja) マルチウインドウ機能を有するデイスプレイ装置
JPH0962837A (ja) 線分拡大描画方法および線分拡大描画装置
US7714861B1 (en) Method of producing electronically readable documents with updatable pie charts
JP4760550B2 (ja) 画像変換装置及び画像変換プログラム
JP2625600B2 (ja) 図形移動変形方法及び装置
Frisch et al. Deformation of finite element meshes using directly manipulated free-form deformation
JP3267364B2 (ja) 図形処理装置及び方法
JP3147391B2 (ja) 3次元境界適合メッシュ分割における曲面の設定方法及びその装置
JP2642374B2 (ja) 図形クリツピング方法
JP2949594B2 (ja) 動画表示装置
JPH07234868A (ja) 文書作成装置
JP3254328B2 (ja) 楕円データ処理装置
JPH1186008A (ja) 描画処理方法および描画処理装置
JP3451293B2 (ja) 図形変形装置
JPH05257632A (ja) マルチウィンドウ表示処理方式
JP2714114B2 (ja) グラフィック処理方法及びグラフィックシステム
JP2780496B2 (ja) 描画装置のクリッピング処理方式
JPH10240961A (ja) 直線魚眼拡大表示方法
JPS62205482A (ja) Crtデイスプレイ装置のセグメント発生回路
JP2001006004A (ja) 3次元モデル生成方法および装置
JP4278428B2 (ja) 表示装置
JPH04361376A (ja) 物体モデル編集装置