JP2724712B2 - 太線描画方法 - Google Patents

太線描画方法

Info

Publication number
JP2724712B2
JP2724712B2 JP32611587A JP32611587A JP2724712B2 JP 2724712 B2 JP2724712 B2 JP 2724712B2 JP 32611587 A JP32611587 A JP 32611587A JP 32611587 A JP32611587 A JP 32611587A JP 2724712 B2 JP2724712 B2 JP 2724712B2
Authority
JP
Japan
Prior art keywords
thick line
dda
width direction
path
point
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.)
Expired - Fee Related
Application number
JP32611587A
Other languages
English (en)
Other versions
JPH01166177A (ja
Inventor
正紀 加藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32611587A priority Critical patent/JP2724712B2/ja
Publication of JPH01166177A publication Critical patent/JPH01166177A/ja
Application granted granted Critical
Publication of JP2724712B2 publication Critical patent/JP2724712B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】 〔概要〕 CAD等でフレームメモリを有するラスタスキャンディ
スプレイに、線分を補間して太線を描画する際に使用さ
れるDDAを応用した太線描画方法に関し、 一度DDA回路を起動するだけでCAD等に必要とされる太
線を描画することができ、また、そのための特別な前処
理や後処理を行う必要がなく、太線描画を高速に処理す
ることができ、また、太線の幅に制限がなく、より一般
的な長方形の面塗りを高速化することを目的とし、 フレームメモリを有するラスタスキャンディスプレイ
に対し、DDA回路により点補間を行いつつ太線を描く太
線描画方法において、太線の長さ方向とそれに直交する
幅方向に対し、DDA回路による点補間処理を太線の幅情
報により交互に切替え、点補間経路を幅方向に往復させ
ながら順次長さ方向に進めることを特徴とする太線描画
方法を提供するものである。 また、前記太線の長さ方向および前記幅方向の2方向
に対するそれぞれのDDA誤差項を演算し、点補間経路の
方向に応じて前記DDA誤差項の演算内容を切替えて点補
間処理を行うことを特徴とする太線描画方法を提供する
ものである。 また、前記太線の幅方向の点補間経路の往路もしくは
復路で前記太線内の隙間を充填する点を追加することを
特徴とする太線描画方法を提供するものである。 〔産業上の利用分野〕 この発明は、CAD等でフレームメモリを有するラスタ
スキャンディスプレイに、線分を補間して太線を描画す
る際に使用されるDDAを応用した太線描画方法に関する
ものである。 〔従来の技術〕 フレームメモリを有するラスタスキャンディスプレイ
に線分を補間して太線を描画する際には、通常はDDA
(ディジタル微分解析器)が用いられる。そこで、まず
BresenhamのDDAアルゴリズムを説明する。 第6図は、DDAの原理を説明するための座標図であ
る。第6図において、描画すべき線分は始点(xs.ys)
から終点(xe.ye)に引かれる。ここで、座標上の移動
量を dx=xe−xs dy=ye−ys とし、両絶対値を比較して、|dx|>|dy|であればx軸を
主軸、y軸を副軸とする。また、真の線分と実際に補間
される離散点との距離を副軸方向で測って、これを誤差
項と呼び、errで表示することにする。 このアルゴリズムは、第7図のフローチャートに示す
ように、各繰り返し毎に主軸の座標値を増加させ、誤差
項errの正負に従って、次のステップでのerrの値を求め
ながら、副軸の座標値を増加させるかどうかを判定し
て、点列を描画して行くものである。errは、本来の距
離に|dx|の2倍を乗じることで整数化し、計算を容易に
してある。ここで“主軸の座標値を増加させる”とは、
dx>0のときにx←x+1、そうでないときはx←x−
1とすることを意味し、副軸についても同様である。こ
れにより、傾きの絶対値が0から1までの線分を引くこ
とができる。傾きの絶対値が1を越える、即ち|dx|<|d
y|のきはy軸を主軸として、X座標とy座標とを入替え
て考えればよい。 第8図は、このアルゴリズムにおける副軸の座標値を
増加させるかどうかの判定を、ハードウェアで実現した
従来のDDA回路の一例を示す構成図である。図中81は誤
差項を格納するレジスタ、82は誤差項が負の場合の増分
を格納するレジスタ、83は誤差項が負でない場合の増分
を格納するレジスタ、84は加算器、85は誤差項の加算結
果の符号により次のサイクルでの加算器84への入力を選
択するマルチプレクサである。出力SAINCは、各サイク
ル毎に、図示しないフレームメモリアクセス回路に対し
て、“1"のときは副軸の座標値を増加させ、“0"のとき
はそのままにすることを指示する。フレームメモリアク
セス回路は、各サイクル毎に主軸の座標値を増加させな
がら、その指示に従って副軸の座標値を制御し、各点を
描画する。 〔発明が解決しようとする問題点〕 さて、CAD等において端点を方形に処理した太線を描
画したり、ある角度に回転させた長方形を面塗りしたり
する場合が発生するが、従来は、これらを、前記DDA回
路を複数回起動することにより実施していた。即ち第9
図(a)に示すように複数の線分を1ドットずつずらせ
て引いたり、同図(b)に示すように一般多角形の面塗
りと同じ方法で、スキャンライン毎にスキャンラインと
辺の交点をDDAアルゴリズムで求めて、得られた始点と
終点をもとにスキャンライン方向に多数の線分を描画し
たりしていた。しかし。図(a)に示す方法において隙
間ができないように塗り潰すためには、各線分毎に誤差
項の初期値を変えてやる必要があり、図(b)に示す方
法においては、スキャンラインがどの辺と交点をもつか
を予め求めなければならず、また、複数回のDDA起動に
ともなうオーバヘッドと併せて、処理速度を低下させて
いた。 この発明は、このような問題点に鑑みて創案されたも
ので、一度DDAを起動するだけでCAD等に必要とされる太
線を描画することができ、また、そのための特別な前処
理や後処理を行う必要がなく、太線描画を高速に処理す
ることができ、また、太線の幅に制限がなく、より一般
的な長方形の面塗りを高速化するDDAを応用した太線描
画方法を提供することを目的とする。 〔問題を解決するための手段〕 この発明において、前記の問題点を解決するための手
段は、第1図に実施例を兼ねて基本的原理を示すよう
に、フレームメモリを有するラスタスキャンディスプレ
イに対し、DDA回路により点補間を行いつつ太線を描く
太線描画方法において、太線の長さ方向とそれに直交す
る幅方向に対し、DDA回路による点補間処理を太線の幅
情報により交互に切替え、点補間経路を幅方向に往復さ
せながら順次長さ方向に進めることを特徴とする太線描
画方法としたものである。 また、前記太線の長さ方向および前記幅方向の2方向
に対するそれぞれのDDA誤差項を演算し、点補間経路の
方向に応じて前記DDA誤差項の演算内容を切替えて点補
間処理を行うことを特徴とする太線描画方法としたもの
である。 また、前記太線の幅方向の点補間経路の往路もしくは
復路で前記太線内の隙間を充填する点を追加することを
特徴とする太線描画方法としたものである。 〔作用〕 この発明は、端点を方形に処理した太線またはある角
度に回転させた面塗り長方形(以後、これらを総称して
単に太線と呼ぶ)を、1回の起動で描画するDDAを応用
した太線描画方法である。 この発明の基本原理はBresenhamのDDAアルゴリズムを
基に、DDAで長さ方向の各点を求めたとき、その各点毎
にさらに垂直な幅方向にDDAで線分を引いて、結果的に
太線を生成することである。このとき、次のことを基本
条件とする。 点描画位置は、各ステップ毎にx座標、y座標とも最
大±1移動であること。 同じ座標点で2度以上打たないこと。 太線内に隙間がないこと。 そして、太線内に隙間がないことを確実にするため
に、長さ方向における副軸が増加するときは幅方向の点
補間経路の往路もしくは復路で隙間を充填する点を追加
すると好適である。 〔実施例〕 以下、図面を参照して、この発明の実施例を詳細に説
明する。 この発明の実施例は、主として第2図に示すような太
線を描画することを想定し、同図に示すように、太線の
寸法が最大になる方向を長さ方向と呼称し、これに直交
する方向を幅方向と呼称する。説明の都合上、長さ方向
の主軸はx軸とし、図中のldx、ldy、wdyを定める。 第1図は、この発明の基本原理を具体的な実施例によ
り示す説明図である。既に述べた前提に基づいて、同図
に示す矢印の経路に沿って点列を描画することにする。 まず、長さ方向用の誤差項lerrと幅方向用の誤差項we
rrとを用意し、図中bの経路はlerrの符号に従い、aま
たはa′の経路はwerrの符号に従って決定する。長さ方
向と幅方向は直交しているため、誤差項の初期値、誤差
項が負のときの増分および非負のときの増分は、双方の
誤差項について等しく、それぞれ、 lerr=werr=2×|ldy|−|ldx| derr1=2×|ldy| derr2=2×(|ldy|−|ldx|) となる。但し、werrの初期値については、若干変える必
要があり、これは後で述べる。 前記〔作用〕欄で述べたの条件を満たすために、幅
方向の線分は往復しながら描画する。即ち経路aでは、
幅方向における主軸増加方向が長さ方向での副軸増加方
向に等しく、幅方向における幅軸増加方向が長さ方向で
の主軸減少方向に等しい。経路a′ではこれと増減が反
対になる。前者を正順、後者を逆順であると表すことに
する。 次に、前記の条件を満たすために、幅方向で逆順に
点列を発生させるとき、正順の場合と全く逆に同一の経
路をたどる必要がある。これは例えば第1図の経路11を
決定したとき、そこでの誤差項の更新を、 誤差項が負のとき werr←derr2−werr 誤差項が非負のとき werr←derr1−werr とすればよく、経路12を決定するときにこの演算結果を
用いれば、以後逆をたどることができる。経路13、14に
ついても同じく適用できる。但し、誤差項が0となると
ころだけは、正順と逆順とで描画点が一致しない。これ
を避けるには、誤差項が常に奇数であるように、前記誤
差項の初期値の最下位ビットをあらかじめ1にしておけ
ばよい。 なお、このようにしても、正順時の点列の発生には影
響しない。 さらに、前記の条件を満たし、隙間を完全に埋める
には、第1図に示すcまたはc′のような経路が必要に
なる。これは、BresenhamのDDAアルゴリズムで本来得ら
れる第1図に示すdまたはd′の経路に対して、1ステ
ップで2点を描画するという例外処理で得られる。この
例外処理は、下記の如く行う。 正順の場合は、まず、幅方向について第1図に示す経
路14の如く副軸の座標値のみを増加して1点を描画し、
続いて経路15の如く主軸の座標値を増加してもう1点を
描画する。 逆順の場合は、まず、幅方向について第1図に示す経
路16の如く主軸の座標値のみを増加して1点を描画し、
続いて経路17の如く副軸の座標値を増加してもう1点を
描画する。ということであり、長さ方向のDDAでlerr≧
0により長さ方向における副軸を増加させた時の、幅方
向のDDAでwerr≧0により幅方向における副軸を増加さ
せる必要が生じたときに行う。 以上の方法により、太線描画のハードウェアを構成で
きる。第3図はこの発明によるDDA装置の構成図であ
る。同図において、DDA装置は、DDA回路18とフレームメ
モリアクセス回路19と、フレームメモリ20とを備え、DD
A回路18からフレームメモリアクセス回路19へは4つの
制御信号LDIR,SAINC,WREV,EXPTを出力する。これらの信
号のうち、LDIRは1のとき長さ方向のDDAを実行中、0
のとき幅方向のDDAを実行中であることを意味し、,SAIN
Cは1のとき長さまたは幅方向の副軸の座標値を増加さ
せ、0のときそのままにすることを意味し、WREVは1の
とき幅方向のDDAが逆順、0のとき正順であることを意
味し、EXPTは1のとき例外処理が必要な幅方向のDDAで
あることを意味する。 これらの信号に従って、フレームメモリアクセス回路
19は、次のように動作するものとする。但し、ここで下
記の主軸および副軸とは、長さ方向において該当するも
のとする。 フレームメモリ20上の現在座標位置に点を描画す
る。 但し、▲▼・SAINC・▲▼・EXPT
=1のときは主軸を減少させた位置にも例外処理として
同時に点を打ち、LDIR・SAINC・WREV・EXPT=1のとき
は副軸を減少させた位置にも例外処理として同時に点を
打つ。 この後、現在の座標位置を次の点描画位置に移動させ
る。 LDIR+▲▼・SAINC・WREV=1のとき主軸
の座標値を増加させる。 ▲▼・SAINC・▲▼=1のとき主
軸の座標値を減少させる。 LDIR・SAINC+▲▼・▲▼=1の
とき副軸の座標値を増加させる。 ▲▼・WREV=1のとき副軸の座標値を減少
させる。 第4図は、この発明の一実施例であるDDA回路の構成
図である。第4図において、DDA回路の基本的な部分
は、従来例と同様に、誤差項を格納するレジスタ(ER
R)21、誤差項が負の場合の増分を格納するレジスタ(D
ERR1)22、誤差項が負でない場合の増分を格納するレジ
スタ(DERR2)23、演算器(ALU)24、その演算器(AL
U)24への入力を選択するマルチプレクサ(MPX)25で構
成されている。 WCINIT26は初期値を定め設定するレジスタで、WCNT27
は2つの状態ZEROまたはMINUSを出力する減算カウンタ
であり、DDA全体を制御する。即ち、内容が正のときは
幅方向のDDA中であることを示し、0のときは幅方向のD
DAの最後のステップであることを示し、負のときは長さ
方向のDDAであることを示す。従って、減算カウンタ(W
CNT)27のMINUS出力が信号LDIRとなる。また、負のと
き、レジスタ(WCINIT)26に予め格納しておいた初期値
を新たに減算カウンタ(WCNT)27にロードする。 レジスタ21〜23は従来と同様で、レジスタ(ERR)21
に格納される値の符号ビットが反転されてSAINCとな
る。マルチプレクサ(MPX)25は演算器(ALU)24の入力
を選択し、レジスタ(ERR)21が負のときはレジスタ(D
EER1)22を、そうでないときはレジスタ(DERR2)23を
選択する。但し、減算カウンタ(WCNT)27が0のときに
限ってはこの選択が逆になる。演算器(ALU)24は減算
カウンタ(WCNT)27のZERO信号に接続された演算指定入
力が、0のときA+Bを演算し、1のときA−Bを演算
して出力する。LERR28は長さ方向用の誤差項を、WERR29
は幅方向用の誤差項を、長さ方向のDDAと幅方向のDDAの
切り替り時に、それぞれ退避させておくレジスタ、30は
前記レジスタ(ERR)21に格納する値を選択するマルチ
プレクサである。これらは、減算カウンタ(WCNT)27が
正のとき演算器(ALU)24の出力をレジスタ(ERR)21に
書込み、0のとき演算器(ALU)24の出力をレジスタ(W
ERR)29に書込み、レジスタ(LERR)28の値をレジスタ
(ERR)21に書込み、負のとき演算器(ALU)24の出力を
レジスタ(LERR)28に書込み、レジスタ(WERR)29の値
をレジスタ(ERR)21に書込むように動作する。 フリップフロップ(FF)31は減算カウンタ(WCNT)27
が負になる度に出力信号WREVを反転する。これは、最初
の幅方向のDDAが正順か逆順かによって0または1に初
期化しておく。信号EXPTは信号LDIRと信号SAINCの論理
積で作られ、次に信号LDIRが0である間、その値が保た
れるように、フリップフロップ(FF)32が制御される。
フリップフロップ(FF)33は、入力の変化が次のサイク
ルで表れるように、同期をとるためのものである。 さらに、図示していないが、信号LDIRをクロックとす
る長さ方向用の減算カウンタLCNTを用意し、本DDA回路
の終了停止を行う。 前記本回路の動作と各レジスタまたはカウンタに設定
すべき初期値を、第5図のフローチャートに示してお
く。 なお、本実施例は、太線でない普通の線分の描画には
対応していないが、その場合、従来のDDAと全く同じ動
作をさせ、普通の線分も描画できるように本構成を変更
するのは容易である。 〔発明の効果〕 以上、説明したとおり、この発明によれば、一度DDA
回路を起動するだけでCAD等に必要とされる太線を描画
するこができ、また、そのための特別な前処理や後処理
を行う必要もないので、太線の描画を高速に処理するこ
とができ、また、太線の幅に制限がないので、より一般
的な長方形の面塗りを高速化可能なDDAを応用した太線
描画方法を提供するこができる。
【図面の簡単な説明】 第1図はこの発明の太線描画方法の原理の説明図、 第2図はこの発明の太線描画方法の座標図、 第3図はこの発明の太線描画方法で用いるDDA装置の構
成図、 第4図はこの発明の太線描画方法を実施する一実施例の
構成図、 第5図はこの発明の太線描画方法を実施する一実施例の
フローチャート、 第6図はDDAの原理の座標図、 第7図はDDAの原理のフローチャート、 第8図は従来例の回路構成図、 第9図は太線描画の説明図である。 11〜17……点補間経路 18……DDA回路 19……フレームメモリアクセス回路 20……フレームメモリ 21〜23、26,28,29……レジスタ 24……演算器 25,30……マルチプレクサ 27……減算カウンタ

Claims (1)

  1. (57)【特許請求の範囲】 1.フレームメモリを有するラスタスキャンディスプレ
    イに対し、DDA回路により点補間を行いつつ太線を描く
    太線描画方法において、 太線の長さ方向とそれに直交する幅方向に対し、DDA回
    路による点補間処理を太線の幅情報により交互に切替
    え、 点補間経路を幅方向に往復させながら順次長さ方向に進
    めることを特徴とする太線描画方法。 2.前記太線の長さ方向および前記幅方向の2方向に対
    するそれぞれのDDA誤差項を演算し、 点補間経路の方向に応じて前記DDA誤差項の演算内容を
    切替えて点補間処理を行うことを特徴とする特許請求の
    範囲第1項に記載の太線描画方法。 3.前記太線の幅方向点補間経路の往路もしくは復路で
    前記太線内の隙間を充填する点を追加することを特徴と
    する特許請求の範囲第1項または第2項に記載の太線描
    画方法。
JP32611587A 1987-12-22 1987-12-22 太線描画方法 Expired - Fee Related JP2724712B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32611587A JP2724712B2 (ja) 1987-12-22 1987-12-22 太線描画方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32611587A JP2724712B2 (ja) 1987-12-22 1987-12-22 太線描画方法

Publications (2)

Publication Number Publication Date
JPH01166177A JPH01166177A (ja) 1989-06-30
JP2724712B2 true JP2724712B2 (ja) 1998-03-09

Family

ID=18184252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32611587A Expired - Fee Related JP2724712B2 (ja) 1987-12-22 1987-12-22 太線描画方法

Country Status (1)

Country Link
JP (1) JP2724712B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2857269B2 (ja) * 1991-12-05 1999-02-17 シャープ株式会社 図形描画装置
US20140125677A1 (en) * 2011-05-30 2014-05-08 Aisin Seiki Kabushiki Kaisha Rendering device, rendering method, and recording medium
CN103646412B (zh) * 2013-12-27 2017-04-05 广东威创视讯科技股份有限公司 宽线描绘方法及装置

Also Published As

Publication number Publication date
JPH01166177A (ja) 1989-06-30

Similar Documents

Publication Publication Date Title
US5363479A (en) System and method for rendering bezier splines
US6295072B1 (en) Method and apparatus for rendering cubic curves
JPH0251786A (ja) 走査変換方法
WO1983002179A1 (en) Method and apparatus for representation of a two dimensional figure
JP2724712B2 (ja) 太線描画方法
US5179647A (en) Method and apparatus for implementing adaptive forward differencing using integer arithmetic
JP2796284B1 (ja) 画像処理装置
JP2634851B2 (ja) 画像処理装置
JP2588257B2 (ja) 輪郭近似方式
JPH07118024B2 (ja) パターンデータ生成方式
Yao et al. Run-length slice algorithms for thescan-conversion of ellipses
JPS6274166A (ja) 走査型デイスプレイ装置における多角形頂点デ−タ追尾装置
JP2836617B2 (ja) レンダリングプロセッサ
JP2729437B2 (ja) 楕円描画装置
JP2715496B2 (ja) 画像塗りつぶし装置
JPH0350686A (ja) 図形処理方式
JPH04205575A (ja) Ddaによる矩形領域塗り潰し方式及び画像処理装置
JPH0241268A (ja) アウトライン文字描画方式
JPH0683972A (ja) 曲線発生装置
JPS636685A (ja) ベクトル描画方式
JPH0754551B2 (ja) 多角形ぬりつぶし装置
JPH0520468A (ja) 画像処理方法及びその装置
Weber et al. An integer arithmetic path expansion algorithm
JPH03245280A (ja) 線分描画方法およびその装置
JPH10149453A (ja) 多角形図形描画装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees