JPH0776988B2 - 直線描画装置 - Google Patents

直線描画装置

Info

Publication number
JPH0776988B2
JPH0776988B2 JP20956487A JP20956487A JPH0776988B2 JP H0776988 B2 JPH0776988 B2 JP H0776988B2 JP 20956487 A JP20956487 A JP 20956487A JP 20956487 A JP20956487 A JP 20956487A JP H0776988 B2 JPH0776988 B2 JP H0776988B2
Authority
JP
Japan
Prior art keywords
segment
weight
value
straight line
difference value
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 - Lifetime
Application number
JP20956487A
Other languages
English (en)
Other versions
JPS6453275A (en
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 JP20956487A priority Critical patent/JPH0776988B2/ja
Publication of JPS6453275A publication Critical patent/JPS6453275A/ja
Publication of JPH0776988B2 publication Critical patent/JPH0776988B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】 〔概要〕 指定された2つの座標間に直線を描くための直線描画装
置に関し, ビットマップメモリのアドレッシング方向に対して45度
以下となる直線を表す画像データを極めて短時間に生成
可能とすることを目的とし, 直交座標系上で指定される始点と終点との間を階段状に
連結するセグメントにより直線近似し, このセグメントの情報をビットマップメモリ手段に格納
する直線描画装置において,始点と終点との間の座標の
差分値を算出し格納する差分値格納手段と,セグメント
のビットの重みの初期値を算出する重み初期値算出手段
と,この重み初期値算出手段により算出される重みの初
期値に上記差分値格納手段に格納されるセグメント方向
と直交する座標の差分値の整数倍を加算する加算手段
と,この加算手段の算出する加算値を上記差分値格納手
段に格納されるセグメント方向の座標の差分値と比較す
ることでセグメントの長さを特定するコンパレータ手段
と,上記加算手段と上記コンパレータ手段の出力からセ
グメントのビットの重みの最大値を検出する重み最大値
検出手段と,上記コンパータ手段がセグメントの長さを
特定したときにこの特定されたセグメントに連結する次
段のセグメントを指定するインクリメント手段とを備
え,上記加算手段と上記コンパレータ手段は,上記ビッ
トマップメモリ手段のアドレスアクセスのビット数に対
応して設けられるとともに,上記重み初期値算出手段
は,上記差分格納手段に格納される差分値と上記重み最
大値検出手段により検出される重みの最大値を用いてセ
グメントの重みの初期値を設定してなるように構成す
る。
〔産業上の利用分野〕
本発明は,指定された2つの座標間に直線を描くための
直線描画装置に関し,特にCRTやドットプリンタ等の画
素又はドットにより規定されてなる出力装置に直線状の
パターンを描画するための画像データを生成し,ビット
マップメモリに格納する直線描画装置に関する。
CRTやドットプリンタのような画素又はドットにより規
定されてなる出力装置に,直線状のパターンを描画する
ことが一般的に行われている。この直線状のパターンを
描画するための画像データは,直線をもっとも適切に表
すようにと画素やドットが選択されることで実現される
ものであるが,この選択にはそれなりの処理時間を要し
てしまうというのが現状である。
これからシステムの効率を高めるために,少しでも早く
直線状のパターンを描画するための画像データが生成で
きるようにと直線描画装置が構成されていく必要があ
る。
〔従来の技術〕
指定された2点間を直線で結ぶために選択されるドット
の画像データの一例を第5図に示す。この図において,x
軸方向は,画像データを格納するビットマップメモリの
アドレッシング方向に対応するものである。このように
x軸に対して45度以下となる直線は,x軸方向でのドット
の連続的なつながりであるところのセグメントをy軸方
向に階段状に連結していくことで実現されることにな
る。
このような45度以下の直線を描くための従来の直線描画
装置のシステム構成図を第6図に,またこのシステム構
成の直線描画装置が実行するデータ処理の流れを第7図
に示す。この第6図に示すように,ハードウェアで構成
されるベクトルジェネレータは,システムバスを介して
入力される直線の始点の座標(×0,y0)と,始点と終
点の座標の差分値(Δx,Δy)を用いて第7図に示され
るデータ処理に従って直線を表す画像データを生成し,
ビットマップメモリであるフレームメモリに格納するも
のである。
次に第7図のデータ処理について説明する。最初にステ
ップ1で,AとBを求め1ドットをライトする。ここでA
とBは, で定義されるものである。従って第5図の例でみるなら
ば,Δx=14,Δy=4であることから,A=7,B=11とな
る。次にステップ2で,BとΔxの大きさを比較する。B
がΔxより小さいならば,ステップ3に進みxの座標値
を1ドットインクリメントするとともに,BをB+Δyに
書き換えて1ドットをライトする。一方,BがΔxより大
きいならば,ステップ4に進みxの座標値とyの座標値
を1ドットインクリメントするとともに,BをB−Δx+
Δyに書き換えて1ドットをライトする。ステップ5
で,x=Δx+1に達したことが確認されるまで,このよ
うにΔyを加算しながらステップ3とステップ4の処理
を繰り返し,1ドットずつライトしていく処理を実行して
画像データを生成する。
このデータ処理の意味するところは,第8図に示すよう
に,x軸方向でのドットの連続的なつながりであるところ
のセグメントの長さlが, で指定されるべく重み値BをΔyずつ加算し,この加算
値がΔxを越えるときにセグメントの長さを特定すると
ともに次段のセグメントの重みの初期値を(B−Δx)
の重みの初期値に戻す処理を行うものである。これによ
りセグメントの長さlが上記のように定まり,直線がこ
れらのセグメントの連結により適切に表されることにな
る。
〔発明が解決しようとする問題点〕
従って,従来の直線描画装置においては,直線を表すこ
とになるドットを1ドットずつ指定していくように構成
されているため,直線に表す画像データの生成に長時間
を要してしまうという問題点が生じていた。
本発明はかかる事情に鑑みてなされたものであって,ビ
ットマップメモリのアドレッシング方向に対して45度以
下となる直線を表す画像データの生成を,極めて短時間
に実現できることになる直線描画装置の提供を目的す
る。
〔問題点を解決するための手段〕
第1図は本発明の原理説明図である。ここで本発明にお
いては,直線は,始点と終点との間を階段状に連結する
セグメントによって表されるものである。
図中,10は差分値格納手段であり,直線の始点と終点と
の間の座標の差分値を算出し格納するもの,20は重み初
期値算出手段であり,セグメントのビットの重みの初期
値を算出するもの,30は加算手段であり,直線を表すセ
グメントの画像データが格納されることになるビットマ
ップメモリ手段のアドレスアクセスのビット数に対応し
て設けられ,重み初期値算出手段20により算出される重
みの初期値に差分値格納手段10に格納されるセグメント
方向と直交する座標の差分値の整数倍の並列的に加算し
ていくもの,40はコンパレータ手段であり,加算手段30
の各々に対応して設けられ,加算手段30の算出する加算
値を差分値格納手段10に格納されるセグメント方向の座
標の差分値と比較することでセグメントの長さを特定す
るもの,50は重み最大値検出手段であり,コンパレータ
手段40により長さの特定されたセグメントのビットの重
みの最大値を検出するもの,60はインクリメント手段で
あり,コンパレータ手段40によりセグメントの長さが特
定されたときにこの特定されたセグメントに連結する次
段のセグメントを指定するもの,70はビットマップメモ
リ手段であり,コンパレータ手段40により求められた直
線を表すセグメントの画像データを格納するものであ
る。
ここで,重み初期値算出手段20は,差分値格納手段10に
格納される差分値と重み最大値検出手段50により検出さ
れる重みの最大値を用いてセグメントの重みの初期値を
設定する。
〔作用〕
本発明によれば,加算手段30とコンパレータ手段40がビ
ットマップメモリ手段70のアドレスアクセスのビット数
に対応して設けられて並列的にデータ処理が実行される
よう構成されるので,一回のアドレスアクセスで一度に
アドレスアクセスのビット数分の描画が実現できる。従
って,セグメントの長さがビットマップメモリ手段70の
アドレスアクセスのビット数より小さいものであれば,1
回のアドレッシングにより該当するセグメントの長さを
特定でき描画できることになる。
これによりビットマップメモリ手段70のアドレッシング
方向に対して45度以下となる直線の描画が極めて高速に
実現可能となる。
〔実施例〕
第2図に,本発明の直線描画装置を実現するためのベク
トルジェネレータの回路構成図を示す。
図中,1はレジスタ群,2はシステムバス制御部,3はシーケ
ンス制御部,4はレングス制御部,5は加算比較部,6はマス
ク制御部,7はイメージバス制御部である。
直線描画のコマンドが発行されると,シーケンス制御部
3は,レジスタ群1に格納される始点座標(x0,y0)と
始点と終点との間の座標の差分値(Δx,Δy)を読み込
み,レングス制御部4,加算比較部5及びマスク制御部6
を制御して,始点と終点との間を結ぶ直線を表すセグメ
ントの画像を生成し,イメージバス制御部7を介して生
成された画像データを図示しないビットマップメモリに
格納する処理を実行する。
本発明に係わる直線描画装置のベクトルジェネレータ
が,従来の直線描画装置のベクトルジェネレータと構成
上大きく異なる点は,本発明ではベクトルジェネレータ
の加算比較部5がビットマップメモリのアドレスアクセ
スのビット数と同じ数だけ設けられている点である。こ
れに対して,従来のベクトルジェネレータの加算比較部
5は1つしか設けられておらず,この1つの加算比較部
5をシーケンシャルで用いるよう構成されていた。この
加算比較部5は,階段状に連結されることで直線を表す
ことになる各セグメントの長さと座標情報を特定する機
能を有するものである。
次に,シーケンス制御部3が,このように構成される加
算比較部5を用いてどのようにして直線を表す画像デー
タを生成するのかについて,シーケンス制御部3が実行
する第3図に示すデータ処理の流れに従って詳細に説明
する。
最初に,シーケンス制御部3は直線描画コマンドがかか
るとステップ10で,AとBiを求める。ここでAとBiは, で定義されるものである。Iはビットマップメモリのア
ドレスアクセスのビット数に対応するものであり,例え
ば16ビットでアドレッシングされるものであるならばI
=16となる。従って第5図の例でみるならば,Δx=1
4,Δy=4であることから,ステップ10で A=7,B1=11,B2=15,B3=19,……,B16=71 が求まる。この加算処理は,ベクトルジェネレータの加
算比較部5によって並列的に処理されることで実現され
る。
この加算処理が実行された後,ステップ10では,続け
て, Bn<Δx の判断が実行され,この条件を充足するドット数nが求
まると,(n+1)のドットをライトする処理を実行す
る。第5図の例でみるならば,Δx=14であることから
2ドットがライトされる。すなわち,従来の直線描画装
置の描画の動作を説明した第8図で説明するならば,始
点を含む左端のセグメントの2ドットがステップ10で直
ちにライトされることになる。
次に,ステップ20で,xの座標値を(n+1)ドットイン
クリメントし,yの座標値を1ドットインクリメントす
る。このインクリメント処理により,ステップ10で長さ
の特定されたセグメントに連結する次段のセグメントの
始端ビットにポインタが移動することになる。すなわ
ち,第8図で説明するならば,左端から2番目のセグメ
ントの最も左端のビットであるところの始端ビットにポ
インタが移動する。
次に,ステップ30で,x=Δx+1に達したかが判断され
る。すなわち,直線の終点までポインタが達したかが判
断される。ポインタが終点まで達していないならば,ス
テップ40に進み,Bを(B−Δx)に初期化して, Bi=(B−Δx)+i×Δy 1≦i≦I を求める処理を実行する。ここで,Bは前段のセグメント
の最も右端のビットであるところの終端ビットのBnの値
を示すものであり,そのセグメントに属するビットの重
みの最大値を表すものである。従って第8図の例でみる
ならば,左端から2番目のセグメントに対してはBn=15
であることから,ステップ40で, B1=5,B2=9,B3=13,B4=17,……,B16=65 が求めることになる。
この加算処理が実行された後,ステップ40では続けて, Bn<Δx の判断が実行され,この条件を充足するドット数nが求
まると,(n+1)のドットをライトする処理を実行す
る。第8図の左端から2番目のセグメントの例でみるな
らず,Δx=14であることから4ドットがライトされ
る。すなわち,第7図に示した従来の直線描画装置のデ
ータ処理によるならば4回のサイクルを実行することに
よって描かれていたものが,本発明によれば1回のサイ
クルで実現できることになる。
次にステップ50で,ステップ40の処理によりx=Δx+
1に達したかが判断され,ポインタが終点まで達してい
ないならばステップ20に戻り,ステップ30の判断を介し
てステップ40の処理が繰り返されることになる。このス
テップ40の処理が繰り返されることで,始点と終点を結
ぶセグメントの長さと座標情報が定まり従来技術と同じ
パターンの直線の画像データが生成される。
すなわち,本発明においては,第4図に示すように,ベ
クトルジェネレータの加算比較部5がビットマップメモ
リのアドレスアクセスのビット数に対応して設けられ,
セグメントの長さを特定するための重み値Biが並列的に
発生するよう構成されるとともに,セグメントの長さを
特定するための比較も一度に実行されるよう構成される
ものである。ここで,ステップ10とステップ40での処理
は,Biの被加算値であるところの重みの初期値がステッ
プ10ではAであるのに対してステップ40では(B−Δ
x)であるという点を除けば基本的な違いはないので,
第4図に示すように初期値発生回路を備え,ステップ10
のときにはAを発生させ,ステップ40のときには(B−
Δx)を発生させれば,ステップ10とステップ40は同じ
ハードウェア構成で処理できることになる。
なお,ステップ30とステップ50の判断は,第2図に示し
たベクトルジェネレータのレングス制御部4が実行し,
ステップ10とステップ40での(n+1)部分だけドット
のライトの処理は,ベクトルジェネレータのマスク制御
部6が実行することになる。
〔発明の効果〕
以上説明したように,本発明によれば,ビットマップメ
モリのアドレッシング方向に対して並列処理を実行して
セグメントの長さを特定するよう構成するものであるこ
とから,ビットマップメモリのアドレッシング方向に対
して45度以下となる直線を表す画像データの生成を極め
て短時間に実現できることになる。
特にこの効果は,45度以下の小さな角度を有する直線の
画像データを生成するときに大きなものとなってくる。
【図面の簡単な説明】
第1図は本発明の原理を説明する原理説明図, 第2図は本発明のベクトルジェネレータの回路構成図, 第3図は本発明の直線描画装置が実行するデータ処理を
説明する説明図, 第4図は本発明のベクトルジェネレータの加算比較部の
構成図, 第5図は直線の画像データの説明図, 第6図は従来の直線描画装置のシステム構成図, 第7図は従来の直線描画装置が実行するデータ処理を説
明する説明図, 第8図は従来の直線描画装置が実行する動作を説明する
ための動作説明図である。 第1図において,10は差分値格納手段,20は重み初期値算
出手段,30は加算手段,40はコンパレータ手段,50は重み
最大値検出手段,60はインクリメント手段,70はビットマ
ップメモリ手段である。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】直交座標系上で指定される始点と終点との
    間を階段状に連結するセグメントにより直線近似し, このセグメントの情報をビットマップメモリ手段(70)
    に格納する直線描画装置において, 始点と終点との間の座標の差分値を算出し格納する差分
    値格納手段(10)と, セグメントのビットの重みの初期値を算出する重み初期
    値算出手段(20)と, この重み初期値算出手段(20)により算出される重みの
    初期値に上記差分値格納手段(10)に格納されるセグメ
    ント方向と直交する座標の差分値の整数倍を加算する加
    算手段(30)と, この加算手段(30)の算出する加算値を上記差分値格納
    手段(10)に格納されるセグメント方向の座標の差分値
    と比較することでセグメントの長さを特定するコンパレ
    ータ手段(40)と, 上記加算手段(30)と上記コンパレータ手段(40)の出
    力からセグメントのビットの重みの最大値を検出する重
    み最大値検出手段(50)と, 上記コンパレータ手段(40)がセグメントの長さを特定
    したときにこの特定されたセグメントに連結する次段の
    セグメントを指定するインクリメント手段(60)とを備
    え, 上記加算手段(30)と上記コンパレータ手段(40)は,
    上記ビットマップメモリ手段(70)のアドレスアクセス
    のビット数に対応して設けられるとともに, 上記重み初期値算出手段(20)は,上記差分値格納手段
    (10)に格納される差分値と上記重み最大値検出手段
    (50)により検出される重みの最大値を用いてセグメン
    トの重みの初期値を設定してなることを 特徴とする直線描画装置。
JP20956487A 1987-08-24 1987-08-24 直線描画装置 Expired - Lifetime JPH0776988B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20956487A JPH0776988B2 (ja) 1987-08-24 1987-08-24 直線描画装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20956487A JPH0776988B2 (ja) 1987-08-24 1987-08-24 直線描画装置

Publications (2)

Publication Number Publication Date
JPS6453275A JPS6453275A (en) 1989-03-01
JPH0776988B2 true JPH0776988B2 (ja) 1995-08-16

Family

ID=16574919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20956487A Expired - Lifetime JPH0776988B2 (ja) 1987-08-24 1987-08-24 直線描画装置

Country Status (1)

Country Link
JP (1) JPH0776988B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04289983A (ja) * 1991-03-19 1992-10-14 Japan Radio Co Ltd ディジタル線分発生回路

Also Published As

Publication number Publication date
JPS6453275A (en) 1989-03-01

Similar Documents

Publication Publication Date Title
US3936664A (en) Method and apparatus for generating character patterns
US4998211A (en) Method of and apparatus for generating a filled pattern defined by contour vectors
JP2634851B2 (ja) 画像処理装置
EP0356262A2 (en) Image processing apparatus
US5872574A (en) Image processing apparatus and method
JPH0776988B2 (ja) 直線描画装置
JPH05120441A (ja) ベクトル画像描画装置
US6504543B1 (en) Polygon drawing method and polygon drawing apparatus
US5680153A (en) Image Processing apparatus
JP2768331B2 (ja) 曲線の直線近似装置
JP2910101B2 (ja) ベクトル・フォント・データの構成点補正装置
JP2591021B2 (ja) 文字パターン発生方式
EP0357076A2 (en) Inclined rectangular pattern generating system
JP2833921B2 (ja) ベクトルフォント変形処理方式
US5619342A (en) Method for determinig a destination pixel location from an arbitrary source pixel location during scaling of a bit map image
JP3114289B2 (ja) 文字パターン発生装置
EP0544269B1 (en) Character generation device and method therefor
JPH06274637A (ja) 画像描画装置
JPH0652305A (ja) データの圧縮装置
JPH10198333A (ja) アウトライン文字描画装置
JP2606176B2 (ja) 図形処理装置
JP2989604B2 (ja) パターン復元方式
JPH04175989A (ja) ベクトルフォント描画装置
JPH07334695A (ja) 作図装置および線幅決定方法
JPS5840749B2 (ja) パタ−ン発生装置