JPH0727357B2 - グラフイツク装置における直線描画方式 - Google Patents
グラフイツク装置における直線描画方式Info
- Publication number
- JPH0727357B2 JPH0727357B2 JP60128149A JP12814985A JPH0727357B2 JP H0727357 B2 JPH0727357 B2 JP H0727357B2 JP 60128149 A JP60128149 A JP 60128149A JP 12814985 A JP12814985 A JP 12814985A JP H0727357 B2 JPH0727357 B2 JP H0727357B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- straight line
- points
- line
- coordinate
- 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
Links
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明はグラフィック装置における直線描画方式に関
し、更に詳しくは、直線の両端が直線の方向に対し垂直
に終端し、かつ一様な線幅を有する直線を描画するため
の直線描画方式に関するものである。
し、更に詳しくは、直線の両端が直線の方向に対し垂直
に終端し、かつ一様な線幅を有する直線を描画するため
の直線描画方式に関するものである。
ピクセルを表示の最小単位とするグラフィック装置にお
いて、従来、線幅を持った直線を描画するための方式の
一つに、直線の描画位置を指定する2つの指定点に対
し、x軸またはy軸方向に平行に1ピクセルずつずらし
て指定線幅の本数だけ多重に線を引く方式があった。こ
の方式によって、線幅が3ピクセル相当、線種が破線で
ある直線を表示した例を第11図(a)に示す。第11図
(a)において、丸印は表示上のピクセルを表わし、特
に斜線を施したものは実際の描画点を表わす。尚、この
ことは以下に示す第11図(b),(c)においても同様
とする。
いて、従来、線幅を持った直線を描画するための方式の
一つに、直線の描画位置を指定する2つの指定点に対
し、x軸またはy軸方向に平行に1ピクセルずつずらし
て指定線幅の本数だけ多重に線を引く方式があった。こ
の方式によって、線幅が3ピクセル相当、線種が破線で
ある直線を表示した例を第11図(a)に示す。第11図
(a)において、丸印は表示上のピクセルを表わし、特
に斜線を施したものは実際の描画点を表わす。尚、この
ことは以下に示す第11図(b),(c)においても同様
とする。
第11図(a)を見れば明らかな通り、この方式では、
(1)直線の両端が直線の方向に対し、垂直に終端しな
い、(2)ラインスタイル(線パターン)が直線の垂直
方向に揃わない、などの点で問題があった。
(1)直線の両端が直線の方向に対し、垂直に終端しな
い、(2)ラインスタイル(線パターン)が直線の垂直
方向に揃わない、などの点で問題があった。
そこで、この様な第11図(a)に示した方式を改良する
ものとして、特開昭59−136784号公報に記載されている
様な直線描画方式が提案された。この方式では、平行な
多重線を順次描画する際、直線の描画位置を指定する2
つの指定点56,57の座標値より直線の角度を求め、これ
に応じて、ラインスタイル実現のための線パターン配列
の開始位置をずらすようなハードウェアを構成すること
により、直線の方向に対し垂直な方向にラインスタイル
の切れ目を揃えるようにしている。この方式による表示
例を第11図(b)に示す。この方式では、第11図(b)
に示す様に、第11図(a)で述べた問題のうち、ライン
スタイルに関する問題については改善されているが、そ
れ以外の問題については改善がなされておらず、また、
実施するに当り、特殊なハードウェアを付加せねばなら
ないという点も問題であった。
ものとして、特開昭59−136784号公報に記載されている
様な直線描画方式が提案された。この方式では、平行な
多重線を順次描画する際、直線の描画位置を指定する2
つの指定点56,57の座標値より直線の角度を求め、これ
に応じて、ラインスタイル実現のための線パターン配列
の開始位置をずらすようなハードウェアを構成すること
により、直線の方向に対し垂直な方向にラインスタイル
の切れ目を揃えるようにしている。この方式による表示
例を第11図(b)に示す。この方式では、第11図(b)
に示す様に、第11図(a)で述べた問題のうち、ライン
スタイルに関する問題については改善されているが、そ
れ以外の問題については改善がなされておらず、また、
実施するに当り、特殊なハードウェアを付加せねばなら
ないという点も問題であった。
また、この他の別の方式として、直線の両端において直
線の方向に対し垂直な方向に点列をそれぞれ求め、それ
ら両端の点列間を点同士それぞれ直線で結ぶという方式
がある。この方式によって、線幅が3ピクセルに相当す
る直線を表示した例を第11図(c)に示す。第11図
(c)において、点列64は、点64−a,64−b,64−cから
成り、点列55は、点65−a,65−b,65−cから成ってお
り、共に直線の両端における点列を示している。これら
の両端の点列64,65は、予め与えられている2つの指定
点56,57の座標と線幅とから幾何学的計算によって、先
ず直線の四隅の点64−a,64−c,65−a,65−cの座標値を
それぞれ求め、次にそれらを用いて、点64−aと点64−
cとの間を結ぶ直線と、点65−aと点65−cとの間を結
ぶ直線とを各々構成する点列をそれぞれ求めることによ
り得る。
線の方向に対し垂直な方向に点列をそれぞれ求め、それ
ら両端の点列間を点同士それぞれ直線で結ぶという方式
がある。この方式によって、線幅が3ピクセルに相当す
る直線を表示した例を第11図(c)に示す。第11図
(c)において、点列64は、点64−a,64−b,64−cから
成り、点列55は、点65−a,65−b,65−cから成ってお
り、共に直線の両端における点列を示している。これら
の両端の点列64,65は、予め与えられている2つの指定
点56,57の座標と線幅とから幾何学的計算によって、先
ず直線の四隅の点64−a,64−c,65−a,65−cの座標値を
それぞれ求め、次にそれらを用いて、点64−aと点64−
cとの間を結ぶ直線と、点65−aと点65−cとの間を結
ぶ直線とを各々構成する点列をそれぞれ求めることによ
り得る。
第12図は、上記した直線の四隅を求める方法を更に詳細
に説明するための説明図であり、第12図において、2つ
の指定点55,56の座標値をそれぞれ(x0,y0),(x1,y
1)とし、直線の長さをl、直線の方向に対する垂直方
向の線幅をdとする。
に説明するための説明図であり、第12図において、2つ
の指定点55,56の座標値をそれぞれ(x0,y0),(x1,y
1)とし、直線の長さをl、直線の方向に対する垂直方
向の線幅をdとする。
例えば、求める四隅の点のうち1つの点90の座標は、破
線で示した2つの3角形の相似関係より、 と求まる。四隅の他の点91,92,93についても、点90に関
する指定点55からの偏差と、指定点55,56の座標値から
求めることができる。
線で示した2つの3角形の相似関係より、 と求まる。四隅の他の点91,92,93についても、点90に関
する指定点55からの偏差と、指定点55,56の座標値から
求めることができる。
この方式では、第11図(a),(b)にそれぞれ示した
方式に比べ、直線の両端やラインスタイルの切れ目が、
直線の方向に対し垂直な方向に揃うという点で改善され
ている。
方式に比べ、直線の両端やラインスタイルの切れ目が、
直線の方向に対し垂直な方向に揃うという点で改善され
ている。
しかし、新たに、次のような2つの問題が生じている。
1つは、直線の内部に塗りつぶしの抜けが生じるという
問題である。つまり、この方式では、第11図(c)に示
す様に直線の方向に対し垂直な方向に求めた両端の点列
64,点列65の中で、xおよびy座標値が同時に変化する
箇所、すなわち点64−aと64−bの間、点65−bと点65
−cの間、が存在し、このため、両端の点列間を結ぶ直
線を形成する点列を描画したときに、破線の丸印で示し
たような描画されない点53を生ずるのである。
1つは、直線の内部に塗りつぶしの抜けが生じるという
問題である。つまり、この方式では、第11図(c)に示
す様に直線の方向に対し垂直な方向に求めた両端の点列
64,点列65の中で、xおよびy座標値が同時に変化する
箇所、すなわち点64−aと64−bの間、点65−bと点65
−cの間、が存在し、このため、両端の点列間を結ぶ直
線を形成する点列を描画したときに、破線の丸印で示し
たような描画されない点53を生ずるのである。
又、もう一つの問題点は、指定された直線を描画するた
めに多くの処理時間がかかることである。この理由は、
直線の四隅の点を求めるのに複雑な計算が必要であるこ
とや、直線の両端の点列間に多重に平行線を描画する塗
りつぶし方式を用いているためである。
めに多くの処理時間がかかることである。この理由は、
直線の四隅の点を求めるのに複雑な計算が必要であるこ
とや、直線の両端の点列間に多重に平行線を描画する塗
りつぶし方式を用いているためである。
本発明の目的は、上記した従来技術の問題点を解決し、
グラフィック装置において、指定された線幅を有し、か
つ直線の方向に対し垂直な方向に直線の両端および指定
されたラインスタイルの切れ目が揃い、しかも、直線の
内部に塗りつぶしの抜けが生じていない直線を、高速に
描画する直線描画方式を提供することにある。
グラフィック装置において、指定された線幅を有し、か
つ直線の方向に対し垂直な方向に直線の両端および指定
されたラインスタイルの切れ目が揃い、しかも、直線の
内部に塗りつぶしの抜けが生じていない直線を、高速に
描画する直線描画方式を提供することにある。
上記した目的を達成するために、本発明では、所定の線
幅を有した直線を描画する際、処理装置は、主メモリに
格納されたプログラムに従い、指定された第1及び第2
の指定点を結ぶ直線の方向に対して垂直な方向に、該第
1の指定点を含み、指定された線幅に相当する長さの直
線を構成する点列の各点座標を求め、さらに、それらの
各点について、その中に含まれる第1の基準点に対する
相対的な位置座標を求めて前記主メモリに記憶した後、
第1の指定点に対する第1の基準点の位置関係と同等の
位置関係を前記第2の指定点に対して持つ第2の基準点
の座標を求め、前記第1及び第2の基準点間を結ぶ直線
を構成する点列の各点座標を求めると共に、その点座標
を一点求める毎に、併せて前記主メモリに記憶した相対
的な位置座標を参照しながらその点に対する該位置座標
の各々に基づく各相対位置に存在する点の点座標をそれ
ぞれ求め、また、それら点のうち隣接する2つの点のx
座標値及びy座標値が異なる場合は、その2つの点のう
ち、一方の点とx座標値を同じくし、他方の点とy座標
値を同じくする点も併せて求め、求めた各点座標の座標
位置と対応する表示メモリ内のメモリ位置に各々所定の
点情報を格納し、その後、ディスプレイ制御装置が格納
した前記点情報を読出してラスタディスプレイの画面上
に表示することにより、該ラスタディスプレイの画面上
に所定の線幅を有した直線を表示するようにした。ま
た、本発明では、直線の描画位置を指定する2つの指定
点の間を結ぶ線の両側に均等な幅を有する直線を描画す
る場合においては、前記処理装置が、前記2つの指定点
のうちの一方の点の座標位置から、直線の方向に対し垂
直方向に指定した線幅の半分の距離に相当する個数だけ
順次点列を求めて、到達した点を第1の基準点とし、該
基準点から折返し前記指定点の方向に、指定した線幅の
距離に相当する個数だけ、順次点列を求め、求めたその
点列を第1の点列とすることにより、第1の点列を得る
ようにしたものである。
幅を有した直線を描画する際、処理装置は、主メモリに
格納されたプログラムに従い、指定された第1及び第2
の指定点を結ぶ直線の方向に対して垂直な方向に、該第
1の指定点を含み、指定された線幅に相当する長さの直
線を構成する点列の各点座標を求め、さらに、それらの
各点について、その中に含まれる第1の基準点に対する
相対的な位置座標を求めて前記主メモリに記憶した後、
第1の指定点に対する第1の基準点の位置関係と同等の
位置関係を前記第2の指定点に対して持つ第2の基準点
の座標を求め、前記第1及び第2の基準点間を結ぶ直線
を構成する点列の各点座標を求めると共に、その点座標
を一点求める毎に、併せて前記主メモリに記憶した相対
的な位置座標を参照しながらその点に対する該位置座標
の各々に基づく各相対位置に存在する点の点座標をそれ
ぞれ求め、また、それら点のうち隣接する2つの点のx
座標値及びy座標値が異なる場合は、その2つの点のう
ち、一方の点とx座標値を同じくし、他方の点とy座標
値を同じくする点も併せて求め、求めた各点座標の座標
位置と対応する表示メモリ内のメモリ位置に各々所定の
点情報を格納し、その後、ディスプレイ制御装置が格納
した前記点情報を読出してラスタディスプレイの画面上
に表示することにより、該ラスタディスプレイの画面上
に所定の線幅を有した直線を表示するようにした。ま
た、本発明では、直線の描画位置を指定する2つの指定
点の間を結ぶ線の両側に均等な幅を有する直線を描画す
る場合においては、前記処理装置が、前記2つの指定点
のうちの一方の点の座標位置から、直線の方向に対し垂
直方向に指定した線幅の半分の距離に相当する個数だけ
順次点列を求めて、到達した点を第1の基準点とし、該
基準点から折返し前記指定点の方向に、指定した線幅の
距離に相当する個数だけ、順次点列を求め、求めたその
点列を第1の点列とすることにより、第1の点列を得る
ようにしたものである。
以下に本発明の一実施例を図を用いて説明する。
第2図は本発明を実施するために用いるグラフィック装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
第2図において、10は主メモリ(以下、MMと略す)、11
は外部ファイルの制御装置(以下、EFIと略す)、12は
外部ファイル(以下、EFと略す)、13は演算装置処理
(以下、CPUと略す)、14はキーボードの制御装置(以
下、KBIと略す)、15はキーボード(以下、KBと略
す)、16はプリンタの制御装置(以下PRIと略す)、17
はプリンタ(以下、PRと略す)、20はグラフィック処理
ユニット(以下、GPUと略す)、22はラスタディスプレ
イ(以下、Dと略す)、であり、これらは共通バス21に
て互いに接続されている。
は外部ファイルの制御装置(以下、EFIと略す)、12は
外部ファイル(以下、EFと略す)、13は演算装置処理
(以下、CPUと略す)、14はキーボードの制御装置(以
下、KBIと略す)、15はキーボード(以下、KBと略
す)、16はプリンタの制御装置(以下PRIと略す)、17
はプリンタ(以下、PRと略す)、20はグラフィック処理
ユニット(以下、GPUと略す)、22はラスタディスプレ
イ(以下、Dと略す)、であり、これらは共通バス21に
て互いに接続されている。
第3図は、第2図で示したGPU20の構成を詳細に示した
ブロック図である。
ブロック図である。
第3図において、23はセグメントメモリ(以下、SMと略
す)、24はグラフィック処理装置(以下、GPと略す)、
25は表示メモリ(以下、FMと略す)、26はディスプレイ
制御装置(以下、DCと略す)、であり、これらは内部バ
ス27にて互いに接続されている。
す)、24はグラフィック処理装置(以下、GPと略す)、
25は表示メモリ(以下、FMと略す)、26はディスプレイ
制御装置(以下、DCと略す)、であり、これらは内部バ
ス27にて互いに接続されている。
なお、SM23はMM10で代用することができ、また、GP24は
CPU13にその機能を持たせることもできる。
CPU13にその機能を持たせることもできる。
第2図に示すグラフィック装置において、D22へ図形を
描画するための動作について第3図を共に参照しながら
説明する。
描画するための動作について第3図を共に参照しながら
説明する。
D22へ図形を描画するためのプログラム及び図形データ
(一般には図形描画命令列)はMM10に格納されており、
CPU13はプログラムをMM10より読出して実行する。D22へ
の図形の表示を行なうには、CPU13はまず、該図形デー
タをMM10からGPU20内のSM23に転送する命令を該プログ
ラムより読出し、実行する。次いで、CPU13は、GPU20内
のGP24に図形描画の実行要求を行なう命令を、MM10より
取出し実行する。
(一般には図形描画命令列)はMM10に格納されており、
CPU13はプログラムをMM10より読出して実行する。D22へ
の図形の表示を行なうには、CPU13はまず、該図形デー
タをMM10からGPU20内のSM23に転送する命令を該プログ
ラムより読出し、実行する。次いで、CPU13は、GPU20内
のGP24に図形描画の実行要求を行なう命令を、MM10より
取出し実行する。
実行要求を受けたGPU20内のGP24はSM23から該当する図
形データを取出してピクセルデータに変換し、D22上の
ピクセルに対応したFM25上の領域に格納する。DC26は一
定周期でFM25を巡回的に読出しながら、読出した属性に
従って対応するピクセルを表示する。このことにより、
D22は常にFM25に格納されたデータを反映した表示が成
される。
形データを取出してピクセルデータに変換し、D22上の
ピクセルに対応したFM25上の領域に格納する。DC26は一
定周期でFM25を巡回的に読出しながら、読出した属性に
従って対応するピクセルを表示する。このことにより、
D22は常にFM25に格納されたデータを反映した表示が成
される。
第4図は本発明の直線描画方式による画面出力例を示す
模式図である。
模式図である。
第4図において、丸印は表示上のピクセルを表わし、特
に斜線を施したものは実際の描画点を表わす。また、点
55および56は直線の両端の指定点であり、本図は点55お
よび56を結ぶ直線を中心に両側に均等な幅を持つ直線33
(破線)を描いた例である。
に斜線を施したものは実際の描画点を表わす。また、点
55および56は直線の両端の指定点であり、本図は点55お
よび56を結ぶ直線を中心に両側に均等な幅を持つ直線33
(破線)を描いた例である。
第4図に示す様に、本実施例によって描画される直線は
その両端が直線の方向に対し垂直に終端し、ラインスタ
イルも直線の方向に対し垂直な方向にパターンの切れ目
が揃うよう描画される。
その両端が直線の方向に対し垂直に終端し、ラインスタ
イルも直線の方向に対し垂直な方向にパターンの切れ目
が揃うよう描画される。
では、第2図に示したグラフィック装置において、第4
図に示した様な直線を描画するための動作について説明
する。
図に示した様な直線を描画するための動作について説明
する。
尚、以下の説明では、ラスタ・ディスプレイの走査方向
をx軸、x軸と垂直方向をy軸とし、描画する直線の傾
斜角をx軸正方向を0°として反時計廻りに45°までの
範囲に限定して説明する。他の角度についても、x軸と
y軸の交換、第8図で後述するデジタル微分解析法(以
下、DDAと呼称する)におけるx軸方向またはy軸方向
の増分の符号の変更によって、以下と同様に取扱うこと
ができる。
をx軸、x軸と垂直方向をy軸とし、描画する直線の傾
斜角をx軸正方向を0°として反時計廻りに45°までの
範囲に限定して説明する。他の角度についても、x軸と
y軸の交換、第8図で後述するデジタル微分解析法(以
下、DDAと呼称する)におけるx軸方向またはy軸方向
の増分の符号の変更によって、以下と同様に取扱うこと
ができる。
第5図は、指定された線幅dと直線の傾斜角θとに対す
る補正線幅d′の関係を示すための説明図である。
る補正線幅d′の関係を示すための説明図である。
第2図及び第3図において前述した如く、CPU13がGPU20
内のGP24に対し、図形描画の実行要求として直線描画の
実行要求を出したとすると、その実行要求を受けたGP24
は、第4図に示した様な幅を持った直線を描画するため
に、次の様な処理を順に行う。
内のGP24に対し、図形描画の実行要求として直線描画の
実行要求を出したとすると、その実行要求を受けたGP24
は、第4図に示した様な幅を持った直線を描画するため
に、次の様な処理を順に行う。
指定線幅dに対して、直線の傾きによって変化する
直線描画のための補正線幅d′(第5図参照)を求め
る。
直線描画のための補正線幅d′(第5図参照)を求め
る。
直線の一端において、指定点55を中心として、直線
の方向に対し垂直な方向に、線幅d分の点列(y軸方向
の増分が補正線幅d′と等しくなる点列)を求め、その
点列中の一点を基準点としてその基準点に対する他の各
点の相対的な位置座標をSM23に記憶する。
の方向に対し垂直な方向に、線幅d分の点列(y軸方向
の増分が補正線幅d′と等しくなる点列)を求め、その
点列中の一点を基準点としてその基準点に対する他の各
点の相対的な位置座標をSM23に記憶する。
SM23に記憶された相対的な位置座標を参照しなが
ら、直線の一端から他端に向かって、順次、直線の方向
に対し垂直方向に連らなる点列の点座標を、直線の内部
に隙間ができないようにして求め、求めた点座標に対応
するFM25のメモリ位置に点情報(ピクセルデータ)を格
納する。
ら、直線の一端から他端に向かって、順次、直線の方向
に対し垂直方向に連らなる点列の点座標を、直線の内部
に隙間ができないようにして求め、求めた点座標に対応
するFM25のメモリ位置に点情報(ピクセルデータ)を格
納する。
FM25に点情報を格納する際、その点情報は、ライン
スタイルを実現する為に、SM23に格納された線のパター
ン列を巡回的に参照することによって得る。
スタイルを実現する為に、SM23に格納された線のパター
ン列を巡回的に参照することによって得る。
以上がGP24の処理動作の概略であるが、これらについて
以下ひとつづつ順をおって詳細に説明する。
以下ひとつづつ順をおって詳細に説明する。
先ず、の処理動作について説明する前に、幅を有した
直線を描画するために必要なテーブルについて説明して
おく。
直線を描画するために必要なテーブルについて説明して
おく。
第6図は、本発明において直線描画のために必要なテー
ブルを示す模式図である。第6図に示す各テーブルは通
常SM23上に存在している。
ブルを示す模式図である。第6図に示す各テーブルは通
常SM23上に存在している。
第6図(a)に示すテーブルは、直線の属性テーブルで
ある。
ある。
第6図(a)において、エリア40,41はそれぞれ指定点5
5のx座標、y座標を格納しており、エリア42,43はそれ
ぞれ指定点56のx座標、y座標を格納している。又、エ
リア44は第5図に示す指定線幅dを、エリア45は直線描
画に用いる補正線幅d′をそれぞれ格納している。エリ
ア46はラインスタイル実現のための線パターンを格納し
ている。線パターンはビット列として表され、φ…描画
しない、1…描画する、の2状態を持ったビットを、ラ
インスタイルの一周期のピクセル個数分だけ用意してい
る。
5のx座標、y座標を格納しており、エリア42,43はそれ
ぞれ指定点56のx座標、y座標を格納している。又、エ
リア44は第5図に示す指定線幅dを、エリア45は直線描
画に用いる補正線幅d′をそれぞれ格納している。エリ
ア46はラインスタイル実現のための線パターンを格納し
ている。線パターンはビット列として表され、φ…描画
しない、1…描画する、の2状態を持ったビットを、ラ
インスタイルの一周期のピクセル個数分だけ用意してい
る。
第6図(b)に示すテーブルは直線描画のためのワーク
・テーブルである。
・テーブルである。
第6図(b)において、エリア47,48はそれぞれ後述の
如くして求められる第7図に示す基準点57のx座標、y
座標を格納するものであり、エリア49,50も同様にそれ
ぞれ、第7図に示す基準点58のx座標、y座標を格納す
るものである。又、オフセット配列51は、後述の如くGP
24は指定点を中心とする、描画すべき直線の方向に対し
垂直な、補正線幅分の長さをy軸方向に対して有する直
線を形成する点列の座標値を、基準点からのx座標,y座
標の偏差として求めた後、求めたy座標の偏差の小さい
点から順に、その点のx座標の偏差値を格納して行くも
のである。オフセット配列51の大きさは指定線幅dの指
定可能な最大値で決まる。
如くして求められる第7図に示す基準点57のx座標、y
座標を格納するものであり、エリア49,50も同様にそれ
ぞれ、第7図に示す基準点58のx座標、y座標を格納す
るものである。又、オフセット配列51は、後述の如くGP
24は指定点を中心とする、描画すべき直線の方向に対し
垂直な、補正線幅分の長さをy軸方向に対して有する直
線を形成する点列の座標値を、基準点からのx座標,y座
標の偏差として求めた後、求めたy座標の偏差の小さい
点から順に、その点のx座標の偏差値を格納して行くも
のである。オフセット配列51の大きさは指定線幅dの指
定可能な最大値で決まる。
第6図(c)に示すテーブルは線幅補正テーブルであ
り、直線の傾きと指定線幅dとから補正線d′を求める
ためのものである。第5図からわかる通り、dとd′の
関係は d′=dcosθ ……式(2) であり、直線の傾き を式(2)に代入すると、 と表わされる。実際必要なd′の値は整数値であるの
で、 の値に最も近い整数値をd′とする。そこで、式(3)
を用いて、指定可能な線幅dのそれぞれについて、補正
線幅d′の各整数値を取り得るための直線の傾きの各最
大値をそれぞれ求め、それらを格納したものが第6図
(c)に示す線幅補正テーブルである。
り、直線の傾きと指定線幅dとから補正線d′を求める
ためのものである。第5図からわかる通り、dとd′の
関係は d′=dcosθ ……式(2) であり、直線の傾き を式(2)に代入すると、 と表わされる。実際必要なd′の値は整数値であるの
で、 の値に最も近い整数値をd′とする。そこで、式(3)
を用いて、指定可能な線幅dのそれぞれについて、補正
線幅d′の各整数値を取り得るための直線の傾きの各最
大値をそれぞれ求め、それらを格納したものが第6図
(c)に示す線幅補正テーブルである。
第6図(c)において、上端に並んだ各数字は線幅dの
値をそれぞれ示し、左端に並んだ文字は補正線幅d′の
値(dには、上記した線幅dの値が代入される。)をそ
れぞれ示し、又、各ブロック内の小数点の付いた数字は
直線の傾きの値を示している。
値をそれぞれ示し、左端に並んだ文字は補正線幅d′の
値(dには、上記した線幅dの値が代入される。)をそ
れぞれ示し、又、各ブロック内の小数点の付いた数字は
直線の傾きの値を示している。
即ち、この線幅補正テーブルでは、或る指定線幅dに相
当する列において先頭ブロックからi行目のブロック内
の内容は、補正線幅d′をd−i+1とする直線の傾き
の最大値を格納している。なお、直線の角度が0°から
45°の範囲で、補正線幅d′が最大となるのは、式
(2)より角度45°すなわち傾き1のときである。よっ
て、各線幅dに対応する傾きのテーブルの最後の値は1,
000となる。
当する列において先頭ブロックからi行目のブロック内
の内容は、補正線幅d′をd−i+1とする直線の傾き
の最大値を格納している。なお、直線の角度が0°から
45°の範囲で、補正線幅d′が最大となるのは、式
(2)より角度45°すなわち傾き1のときである。よっ
て、各線幅dに対応する傾きのテーブルの最後の値は1,
000となる。
以上が、直線描画のために必要なテーブルである。
では、これらのテーブルを用いて行なわれるGP24の処理
動作について説明する。
動作について説明する。
前述したの処理動作では、先ず、GP24は、SM23内の属
性テーブル(第6図(a)参照)に格納されている2つ
の指定点55,56の座標値から直線の傾きを導びき出す。
次に、この直線の傾きの値と、属性テーブルに格納され
た指定線幅dの値とからSM23内の線幅補正テーブル(第
6図(c)参照)を用いて、補正線幅d′の値を次の様
にして求める。即ち、求めた直線の傾きの値が、指定線
幅dに相当する列の先頭からi−1行目の値より大き
く、i行目の値より小さいなら、補正線幅d′は、d′
=d−i+1の式に従って計算することにより、求める
ことができる。例えば、今、求めた直線の傾きの値が
“0.800"で、指定線幅dが“9"であったとすると、第6
図(c)において指定線幅“9"に相当する列は右端の1
列であり、その列の中で、直線の傾きの値“0.800"は、
先頭から2行目の値“0.633"より大きく、3行目の値
“0.958"より小さいので、iは“3"と求まり、従って、
式:d′=d−i+1にそれぞれ代入して計算すると、補
正線幅d′は“7"と求まる。
性テーブル(第6図(a)参照)に格納されている2つ
の指定点55,56の座標値から直線の傾きを導びき出す。
次に、この直線の傾きの値と、属性テーブルに格納され
た指定線幅dの値とからSM23内の線幅補正テーブル(第
6図(c)参照)を用いて、補正線幅d′の値を次の様
にして求める。即ち、求めた直線の傾きの値が、指定線
幅dに相当する列の先頭からi−1行目の値より大き
く、i行目の値より小さいなら、補正線幅d′は、d′
=d−i+1の式に従って計算することにより、求める
ことができる。例えば、今、求めた直線の傾きの値が
“0.800"で、指定線幅dが“9"であったとすると、第6
図(c)において指定線幅“9"に相当する列は右端の1
列であり、その列の中で、直線の傾きの値“0.800"は、
先頭から2行目の値“0.633"より大きく、3行目の値
“0.958"より小さいので、iは“3"と求まり、従って、
式:d′=d−i+1にそれぞれ代入して計算すると、補
正線幅d′は“7"と求まる。
次に第7図を用いて、前述したの処理動作について説
明する。
明する。
第7図は、直線の端の点列を求める動作を説明するため
の説明図である。
の説明図である。
まず、GP24は、指定点55から直線の方向に対し垂直な方
向に連なり、y軸方向の増分が〔d′/2〕(記号〔〕は
整数化することを意味する)、すなわち補正線幅d′の
半分を整数化した長さとなる点列をDDA処理により求め
る。第7図において、破線矢印で示す丸印は、このDDA
処理で求めた通過ピクセルである。次に、GP24は、この
様にして到達した点を基準点57とし、基準点57より指定
点55に向ってy軸方向の増分が補正線幅d′分の長さと
なる点列をDDA処理により、第7図において実線矢印で
示すように順次求めて行き、指定点55を中心に持つ点列
を得る。第7図において、正方形で囲んだピクセルは求
まった端の点列である。
向に連なり、y軸方向の増分が〔d′/2〕(記号〔〕は
整数化することを意味する)、すなわち補正線幅d′の
半分を整数化した長さとなる点列をDDA処理により求め
る。第7図において、破線矢印で示す丸印は、このDDA
処理で求めた通過ピクセルである。次に、GP24は、この
様にして到達した点を基準点57とし、基準点57より指定
点55に向ってy軸方向の増分が補正線幅d′分の長さと
なる点列をDDA処理により、第7図において実線矢印で
示すように順次求めて行き、指定点55を中心に持つ点列
を得る。第7図において、正方形で囲んだピクセルは求
まった端の点列である。
次に、GP24は、求めた点列を、基準点57から偏差として
SM23に記憶する。具体的には、直線が0°〜45°の傾き
なら、求めた点列のy座標はすべての点で1ずつ異るの
で、GP24は、基準点57からのy座標値の偏差の絶対値
を、SM23内のワーク・テーブル(第6図(b)参照)に
おけるオフセット配列51のインデックス(index)とし
て、基準点57からのx座標値の偏差を、オフセット配列
51のインデックスが示す箇所に格納する。第7図に示す
直線の例では、オフセット配列51には先頭から順に、
φ,1,1,2,2,3,3,4,4と言った具合に格納される。
SM23に記憶する。具体的には、直線が0°〜45°の傾き
なら、求めた点列のy座標はすべての点で1ずつ異るの
で、GP24は、基準点57からのy座標値の偏差の絶対値
を、SM23内のワーク・テーブル(第6図(b)参照)に
おけるオフセット配列51のインデックス(index)とし
て、基準点57からのx座標値の偏差を、オフセット配列
51のインデックスが示す箇所に格納する。第7図に示す
直線の例では、オフセット配列51には先頭から順に、
φ,1,1,2,2,3,3,4,4と言った具合に格納される。
次に、の処理動作について説明するわけであるが、そ
の前に、本実施例で用いられるDDA処理について説明し
ておく。
の前に、本実施例で用いられるDDA処理について説明し
ておく。
第8図(a)〜(c)は、通常の直線描画に用いる単方
向DDA方式を説明するための説明図である。第8図にお
いて、丸印はピクセルを表わし、破線63は理想の直線を
表わす。単方向DDAは、第8図(a),(b)に示す様
に、理想の直線からピクセルの中心までの変位をΔyと
すると、ある点から次の点を求めるとき、Δyが負なら
ばx座標とともにy座標を1増加させた点60を次の点と
し、Δyが正ならばx座標だけ1増加した点61を次の点
とする方式である。この方式により描画した直線は第8
図(c)のようになる。
向DDA方式を説明するための説明図である。第8図にお
いて、丸印はピクセルを表わし、破線63は理想の直線を
表わす。単方向DDAは、第8図(a),(b)に示す様
に、理想の直線からピクセルの中心までの変位をΔyと
すると、ある点から次の点を求めるとき、Δyが負なら
ばx座標とともにy座標を1増加させた点60を次の点と
し、Δyが正ならばx座標だけ1増加した点61を次の点
とする方式である。この方式により描画した直線は第8
図(c)のようになる。
第8図(d)〜(f)は、前述のDDAを、幅を持った直
線内部にできる規則的な抜けをすべて塗りつぶすことが
できるように変更を加えた、変形DDAを説明するための
説明図である。変形DDAは、ある点から次の点を求める
ときに、第8図(d)に示す様に、Δyが負ならばx座
標,y座標ともに1増加した点60を次点として描画し、そ
れと同時に、y座標だけ1増加した点62も併せて描画す
るという点で単方向DDAとは異なっている。この方式に
より描画した直線は第8図(f)のようになる。
線内部にできる規則的な抜けをすべて塗りつぶすことが
できるように変更を加えた、変形DDAを説明するための
説明図である。変形DDAは、ある点から次の点を求める
ときに、第8図(d)に示す様に、Δyが負ならばx座
標,y座標ともに1増加した点60を次点として描画し、そ
れと同時に、y座標だけ1増加した点62も併せて描画す
るという点で単方向DDAとは異なっている。この方式に
より描画した直線は第8図(f)のようになる。
以上が、DDA処理についての説明である。
次に、第9図を用いて、前述したの処理動作について
説明する。
説明する。
第9図は、直線の内部の点列を求める動作を説明するた
めの説明図である。
めの説明図である。
GP24は、基準点57からもう一方の基準点58(基準点58の
求め方は後述する。)へ単方向DDA処理を行ない、基準
点57と58の間を結ぶ直線上の途中の点(xn,yn)70を順
次求める。このとき、GP24は、第9図に示す様に点
(xn,yn)を一点求める毎に、オフセット配列51内の有
効なd′個の要素について、先頭から後尾に至るまで順
次、各要素のインデックス値をynから引き、該インデッ
クスに格納されたオフセット値をxnに加えることによ
り、点(xn,yn)70に対する点列の各座標値71を求め、
それら座標値70,71に対応するFM25内のメモリ位置に点
情報を格納する。又、この際、変形DDA方式を用いて第
8図(d)に示したピクセル62のような点についても併
せて点情報を書き込むことにより、直線内部のすき間を
なくす。
求め方は後述する。)へ単方向DDA処理を行ない、基準
点57と58の間を結ぶ直線上の途中の点(xn,yn)70を順
次求める。このとき、GP24は、第9図に示す様に点
(xn,yn)を一点求める毎に、オフセット配列51内の有
効なd′個の要素について、先頭から後尾に至るまで順
次、各要素のインデックス値をynから引き、該インデッ
クスに格納されたオフセット値をxnに加えることによ
り、点(xn,yn)70に対する点列の各座標値71を求め、
それら座標値70,71に対応するFM25内のメモリ位置に点
情報を格納する。又、この際、変形DDA方式を用いて第
8図(d)に示したピクセル62のような点についても併
せて点情報を書き込むことにより、直線内部のすき間を
なくす。
次に、第10図を用いて、前述したの処理動作について
説明する。
説明する。
第10図はラインスタイルを実現するための処理動作を説
明するための説明図である。
明するための説明図である。
尚、予めSM23内の属性テーブル(第6図(a)参照)に
は、第10図に示す様な線パータン列46が格納されている
ものとし、この配列のインデックスを示すポインタも用
意されているものとする。
は、第10図に示す様な線パータン列46が格納されている
ものとし、この配列のインデックスを示すポインタも用
意されているものとする。
そこで、GP24は、第9図にて述べた様に、基準点57から
58へ単方向DDA方式により、点(xn,yn)70を求めてゆ
くとき、第10図に示す配列46のポインタの内容を1ずつ
増加させながら、そのポインタの示す配列の内容を取出
し、その内容に従い、座標値(xn,yn)70の点、および
座標値(xn,yn)70からオフセット値を参照して求めた
座標値71を持つ点列、を描画するかどうかを決め、それ
に対応する様、点情報をFM25内に書き込む。即ち、その
内容がφであれば、前述した様に、描画しないというこ
となので、その意味に対応した点情報がFM25内に格納さ
れ、又、1であれば、描画するという意味に対応した点
情報が格納される。なお、配列46のポインタは配列の最
後を差し示したあとは、巡回的に配列の先頭を差し示す
ようにする。
58へ単方向DDA方式により、点(xn,yn)70を求めてゆ
くとき、第10図に示す配列46のポインタの内容を1ずつ
増加させながら、そのポインタの示す配列の内容を取出
し、その内容に従い、座標値(xn,yn)70の点、および
座標値(xn,yn)70からオフセット値を参照して求めた
座標値71を持つ点列、を描画するかどうかを決め、それ
に対応する様、点情報をFM25内に書き込む。即ち、その
内容がφであれば、前述した様に、描画しないというこ
となので、その意味に対応した点情報がFM25内に格納さ
れ、又、1であれば、描画するという意味に対応した点
情報が格納される。なお、配列46のポインタは配列の最
後を差し示したあとは、巡回的に配列の先頭を差し示す
ようにする。
以上が、GP24による処理動作の説明である。次に、この
様な処理動作について、第1図に示すフローチャートを
用い、その処理手順に沿って更に説明する。
様な処理動作について、第1図に示すフローチャートを
用い、その処理手順に沿って更に説明する。
上記した様な処理動作を実現する為のプログラムは、通
常SM23上に格納されており、GP24がそのプログラムを解
釈し、実行することにより、所定の線幅を有した直線は
描画される。
常SM23上に格納されており、GP24がそのプログラムを解
釈し、実行することにより、所定の線幅を有した直線は
描画される。
第1図(a)はGP24の処理手順を示すフローチャートで
ある。
ある。
GP24による処理手順の概略は、第1図(a)に示す如く
になっている。即ち、まず、線幅dが2以上の場合には
サブルーチンconpensate−winth130を呼び、補正線幅
d′を求める(ブロック103)。次にサブルーチンfind
−edge140を呼び、オフセット配列51を求める(ブロッ
ク104)。そして、最後にサブルーチンdraw−line150を
呼び、実際に直線を描画する(ブロック105)のであ
る。
になっている。即ち、まず、線幅dが2以上の場合には
サブルーチンconpensate−winth130を呼び、補正線幅
d′を求める(ブロック103)。次にサブルーチンfind
−edge140を呼び、オフセット配列51を求める(ブロッ
ク104)。そして、最後にサブルーチンdraw−line150を
呼び、実際に直線を描画する(ブロック105)のであ
る。
第1図(b)はサブルーチンconpensate−width130の詳
細な処理手順を示すフローチャートである。第1図
(b)に示す様に、まず、GP24は、SM23内の属性テーブ
ルに格納された2つの指定点のx座標,y座標の差の比よ
り、直線の傾きを求め(ブロック131)、次いで、SM23
内の線幅補正テーブル(第6図(c)参照)に対し、指
定された線幅dに関する線幅補正テーブルの先頭アドレ
スを求め、これをインデックスのφとする(ブロック13
2)。そしてGP24は、インデックスを1ずつ進めなが
ら、該当するテーブルの内容を順次読出して、求めた直
線の傾きと比較してゆき(ブロック134)、その直線の
傾きより大きくなった時点で、該当テーブルのインデッ
クス値をdから引くことにより補正線幅d′を求める
(ブロック136)。
細な処理手順を示すフローチャートである。第1図
(b)に示す様に、まず、GP24は、SM23内の属性テーブ
ルに格納された2つの指定点のx座標,y座標の差の比よ
り、直線の傾きを求め(ブロック131)、次いで、SM23
内の線幅補正テーブル(第6図(c)参照)に対し、指
定された線幅dに関する線幅補正テーブルの先頭アドレ
スを求め、これをインデックスのφとする(ブロック13
2)。そしてGP24は、インデックスを1ずつ進めなが
ら、該当するテーブルの内容を順次読出して、求めた直
線の傾きと比較してゆき(ブロック134)、その直線の
傾きより大きくなった時点で、該当テーブルのインデッ
クス値をdから引くことにより補正線幅d′を求める
(ブロック136)。
第1図(c)はサブルーチンfind−edge140の詳細な処
理手順を示すフローチャートである。
理手順を示すフローチャートである。
本サブルーチンでは、GP24は、まず第7図で説明したよ
うに、指定点55より直線と垂直方向に、y軸方向の増分
がd′/2となる距離だけDDAによりドット展開を行ない
(ブロック142〜144)、到達した点を基準点57とする
(ブロック145)。次に、GP24は、基準点57から折返し
指定点55の方向に、y軸方向の増分がd′となる距離だ
けDDAによるドット展開を行ないブロック(147〜14
9)、このとき求まった点列のx座標に関して、基準点5
7のx座標からの偏位を、SM23内のワーク・テーブルに
おけるオフセット配列51に格納する(ブロック148)。
次に、GP24は、基準点57に関する指定点55からの偏位を
指定点56に加えることにより、もう一端の基準点58の座
標を求める(ブロック146)。
うに、指定点55より直線と垂直方向に、y軸方向の増分
がd′/2となる距離だけDDAによりドット展開を行ない
(ブロック142〜144)、到達した点を基準点57とする
(ブロック145)。次に、GP24は、基準点57から折返し
指定点55の方向に、y軸方向の増分がd′となる距離だ
けDDAによるドット展開を行ないブロック(147〜14
9)、このとき求まった点列のx座標に関して、基準点5
7のx座標からの偏位を、SM23内のワーク・テーブルに
おけるオフセット配列51に格納する(ブロック148)。
次に、GP24は、基準点57に関する指定点55からの偏位を
指定点56に加えることにより、もう一端の基準点58の座
標を求める(ブロック146)。
第1図(d)はサブルーチンdraw−line150の詳細な処
理手順を示すフローチャートである。
理手順を示すフローチャートである。
尚、この第1図(d)に示すサブルーチンにおいて、
“点を描画する”とは、GP24がその点の座標値に対応す
るFM25内のメモリ位置に、描画を意味する点情報を書き
込むという意味である。
“点を描画する”とは、GP24がその点の座標値に対応す
るFM25内のメモリ位置に、描画を意味する点情報を書き
込むという意味である。
第1図(d)に示す様に、GP24は、基準点57から基準点
58に向ってDDAを行ない点(xn,yn)70を順次求める
(ブロック152)。そして、GP24は、DDAを1ピクセル進
めるごとに、SM24内の属性テーブルに格納された線パタ
ーン列46を巡回的に見て(ブロック153〜155)、該当配
列要素がφなら何も描画せず、1ならば次に示すように
点の描画を行なう。
58に向ってDDAを行ない点(xn,yn)70を順次求める
(ブロック152)。そして、GP24は、DDAを1ピクセル進
めるごとに、SM24内の属性テーブルに格納された線パタ
ーン列46を巡回的に見て(ブロック153〜155)、該当配
列要素がφなら何も描画せず、1ならば次に示すように
点の描画を行なう。
まず、GP24は、第9図において、2重丸で表わされてい
る点(xn,yn)70を描画し、その後、SM24内のワーク・
テーブルに格納されたオフセット配列51の先頭から後尾
に至るまで、インデックス値をynから引き、インデック
スの示する配列51の内容をxnに加えることにより、点71
を順次求め、その点71を描画する(ブロック158〜16
2)。第9図では描画する点列を正方形で表わしてい
る。
る点(xn,yn)70を描画し、その後、SM24内のワーク・
テーブルに格納されたオフセット配列51の先頭から後尾
に至るまで、インデックス値をynから引き、インデック
スの示する配列51の内容をxnに加えることにより、点71
を順次求め、その点71を描画する(ブロック158〜16
2)。第9図では描画する点列を正方形で表わしてい
る。
なお、内部にできる塗りつぶされない点をなくすため、
GP24は、変形DDAに従い、一つ前の点(xn-1,yn-1)に
おける理想の直線からのy座標偏差であるΔyが負なら
ば、第8図(d)に示した様に次の点60と併せて点62の
ような点を描画し、(ブロック160)、Δyが正なら
ば、第8図(e)に示した様に次の点61のみを描画する
(ブロック161)。
GP24は、変形DDAに従い、一つ前の点(xn-1,yn-1)に
おける理想の直線からのy座標偏差であるΔyが負なら
ば、第8図(d)に示した様に次の点60と併せて点62の
ような点を描画し、(ブロック160)、Δyが正なら
ば、第8図(e)に示した様に次の点61のみを描画する
(ブロック161)。
以上が、処理手順に沿ったGP24による処理動作の説明で
ある。
ある。
本実施例によれば、2つの指定点を結ぶ直線を中心とし
て両側に均等な幅を持ち、指定の線幅、指定のラインス
タイルを持つ直線を描画できる。また、本実施例では、
第11図(c)に示した従来方式の様に、直線の両端の点
列を求める際の複雑な計算が必要でなく、また、オフセ
ット配列51を求める時にDDAを行なう他は、任意の線幅
の直線において1回のDDAで描画できるため、第11図
(c)に示した方式のようなDDAを線幅分の回数、繰返
して描画する方法に比べ、高速に描画することができ
る。
て両側に均等な幅を持ち、指定の線幅、指定のラインス
タイルを持つ直線を描画できる。また、本実施例では、
第11図(c)に示した従来方式の様に、直線の両端の点
列を求める際の複雑な計算が必要でなく、また、オフセ
ット配列51を求める時にDDAを行なう他は、任意の線幅
の直線において1回のDDAで描画できるため、第11図
(c)に示した方式のようなDDAを線幅分の回数、繰返
して描画する方法に比べ、高速に描画することができ
る。
なお、両側に均等でないような幅を持った直線を描画す
る場合においても、例えば、2つの指定点の片側だけに
線幅を持つ直線を描画する場合、直線の一端の点列を求
める際に、1方の指定点から単に直線の方向に対し垂直
な方向に連なる点列を求めるようにするだけで、それ以
上後の処理動作は全く変更する必要はない。
る場合においても、例えば、2つの指定点の片側だけに
線幅を持つ直線を描画する場合、直線の一端の点列を求
める際に、1方の指定点から単に直線の方向に対し垂直
な方向に連なる点列を求めるようにするだけで、それ以
上後の処理動作は全く変更する必要はない。
本発明によれば、指定する2点間に線幅を持った直線を
描画する際に、次のような効果がある。
描画する際に、次のような効果がある。
直線の両端やラインスタイルが直線の方向に対し、
垂直な方向に切れ、かつ直線内部に塗りつぶしの抜けが
生じないような直線が描画できる。
垂直な方向に切れ、かつ直線内部に塗りつぶしの抜けが
生じないような直線が描画できる。
任意の幅の直線描画に対し、1度だけ両端を結ぶ直
線の点列を求めるだけなので、多重線による描画方式に
比べ高速に直線が描画できる。
線の点列を求めるだけなので、多重線による描画方式に
比べ高速に直線が描画できる。
前記指定点間を結ぶ直線の両側に、均等な幅を持っ
た直線を描画できる。
た直線を描画できる。
第1図(a)〜(d)は本発明におけるグラフィック処
理装置の処理手順を示すフローチャート、第2図は本発
明を実施するために用いるグラフィック装置の構成を示
すブロック図、第3図は第2図のグラフィック処理ユニ
ットの構成を示すブロック図、第4図は本発明の直線描
画方式による画面出力例を示す模式図、第5図は指定線
幅と補正線幅との関係を示すための説明図、第6図は本
発明において直線描画のために必要なテーブルを示す模
式図、第7図は本発明において直線の端の点列を求める
動作を説明するための説明図、第8図は本発明において
用いられるDAA処理を説明するための説明図、第9図は
本発明において直線の内部の点列を求める動作を説明す
るための説明図、第10図は本発明においてラインスタイ
ルを実現するための処理動作を説明する説明図、第11図
(a)乃至(c)はそれぞれ従来の直線描画方式を説明
するための説明図、第12図は従来の方式において直線の
四隅を求める方法を説明するための説明図、である。 符号説明 22…ラスタディスプレイ 23…セグメントメモリ 24…グラフィック処理装置 25…表示メモリ 26…ディスプレイ制御装置 46…線パターン列、51…オフセット配列 55,56…指定点、57,58…基準点
理装置の処理手順を示すフローチャート、第2図は本発
明を実施するために用いるグラフィック装置の構成を示
すブロック図、第3図は第2図のグラフィック処理ユニ
ットの構成を示すブロック図、第4図は本発明の直線描
画方式による画面出力例を示す模式図、第5図は指定線
幅と補正線幅との関係を示すための説明図、第6図は本
発明において直線描画のために必要なテーブルを示す模
式図、第7図は本発明において直線の端の点列を求める
動作を説明するための説明図、第8図は本発明において
用いられるDAA処理を説明するための説明図、第9図は
本発明において直線の内部の点列を求める動作を説明す
るための説明図、第10図は本発明においてラインスタイ
ルを実現するための処理動作を説明する説明図、第11図
(a)乃至(c)はそれぞれ従来の直線描画方式を説明
するための説明図、第12図は従来の方式において直線の
四隅を求める方法を説明するための説明図、である。 符号説明 22…ラスタディスプレイ 23…セグメントメモリ 24…グラフィック処理装置 25…表示メモリ 26…ディスプレイ制御装置 46…線パターン列、51…オフセット配列 55,56…指定点、57,58…基準点
───────────────────────────────────────────────────── フロントページの続き (72)発明者 池田 尚哉 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立製作所マイクロエレクトロニク ス機器開発研究所内 (72)発明者 横山 佳弘 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立製作所マイクロエレクトロニク ス機器開発研究所内 (56)参考文献 特開 昭57−159389(JP,A) 特開 昭59−29293(JP,A) 特開 昭59−136784(JP,A)
Claims (2)
- 【請求項1】入力装置と、処理装置と、主メモリと、ラ
スタディスプレイと、表示メモリと、ディスプレイ制御
装置とから成り、前記入力装置からの指示により前記処
理装置は前記主メモリ内に格納された所望の図形データ
を取出して処理し、前記ラスタディスプレイの画面上の
画素に対応した前記表示メモリ上の領域に格納した後、
前記ディスプレイ制御装置が前記表示メモリから格納し
たデータを読出して前記ラスタディスプレイの画面上に
映像として表示するグラフィック装置において、前記入
力装置により所定の線幅を有した直線を前記ラスタディ
スプレイ上に表示するよう指示された際、前記処理装置
は、前記主メモリに格納されたプログラムに従い、前記
直線を規定するパラメータを該主メモリから求め、該パ
ラメータから当該直線の一端において該直線の方向に対
し垂直な方向に連なり前記線幅と同等な長さを有する第
1の点列の各点座標を求めて、該第1の点列中の一点を
第1の基準点として該第1の基準点に対する他の各点の
相対的な位置座標を前記メモリに格納した後、前記直線
の他端において前記第1の基準点と対応する第2の基準
点と、該第1の基準点との間を結ぶ線上に連なる第2の
点列の各点座標を求めると共に、その点座標を一点求め
る毎に、併せて前記主メモリに格納した相対的な位置座
標を参照しながらその点に対する各位置座標の各々に基
づく各相対位置に存在する相対点の点座標をそれぞれ求
め、その相対点の点座標を求める際、隣接する2つの相
対点のx座標値及びy座標値のいずれもが異なる場合
は、その2つの相対点のうちの一方の相対点とx座標値
を同じくし、他方の相対点とy座標値を同じくする点ま
たはその2つの相対点のうちの一方の相対点とy座標値
を同じくし、他方の相対点とx座標値を同じくする点を
併せて求め、求めた各点座標の座標位置と対応する前記
表示メモリ内のメモリ位置に各々所定の点情報を格納
し、その後、前記ディスプレイ制御装置が格納した前記
点情報を読出して前記ラスタディスプレイの画面上に表
示することにより、該ラスタディスプレイの画面上に所
定の線幅を有した直線を描画するようにしたことを特徴
とするグラフィック装置における直線描画方式。 - 【請求項2】特許請求の範囲第1項に記載の直線描画方
式において、前記直線を規定するパラメータは該直線の
描画位置を指定する2つの指定点の点座標と該直線の線
幅を指定する値とを含み、前記処理装置が該パラメータ
から前記第1の点列を求める際、該処理装置は、前記2
つの指定点のうち一方の点の座標位置から前記直線の方
向に対し垂直な方向に、指定した線幅の半分の距離に相
当する個数だけ順次点列を求めて、到達した点を前記第
1の基準点とし、該基準点から折返し前記指定点の方向
に、指定した線幅の距離に相当する個数だけ順次点列を
求め、求めた該点列を前記第1の点列としたことを特徴
とするグラフィック装置における直線描画方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60128149A JPH0727357B2 (ja) | 1985-06-14 | 1985-06-14 | グラフイツク装置における直線描画方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60128149A JPH0727357B2 (ja) | 1985-06-14 | 1985-06-14 | グラフイツク装置における直線描画方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61286895A JPS61286895A (ja) | 1986-12-17 |
| JPH0727357B2 true JPH0727357B2 (ja) | 1995-03-29 |
Family
ID=14977597
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60128149A Expired - Lifetime JPH0727357B2 (ja) | 1985-06-14 | 1985-06-14 | グラフイツク装置における直線描画方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0727357B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05233821A (ja) * | 1992-02-24 | 1993-09-10 | Japan Radio Co Ltd | 図形表示装置 |
| CN115909380A (zh) * | 2022-11-28 | 2023-04-04 | 联宝(合肥)电子科技有限公司 | 边框表格内容的提取方法、装置、存储介质及电子设备 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57159389A (en) * | 1981-03-28 | 1982-10-01 | Fujitsu Ltd | Thick line drawing system |
| JPS5929293A (ja) * | 1982-08-11 | 1984-02-16 | 日本電気株式会社 | 幅のあるベクトルの発生方式とその装置 |
| JPS59136784A (ja) * | 1983-01-25 | 1984-08-06 | 日本電気株式会社 | 幅のあるベクトルの発生方式とその装置 |
-
1985
- 1985-06-14 JP JP60128149A patent/JPH0727357B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61286895A (ja) | 1986-12-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4529978A (en) | Method and apparatus for generating graphic and textual images on a raster scan display | |
| CN1014835B (zh) | 产生字形的方法及其系统 | |
| JP2612260B2 (ja) | テクスチヤマツピング装置 | |
| US5461703A (en) | Pixel image edge enhancement method and system | |
| US5489920A (en) | Method for determining the optimum angle for displaying a line on raster output devices | |
| US4972330A (en) | Clipping process and processor | |
| US4967376A (en) | Method for displaying characters and/or figures in a computer graphics and apparatus thereof | |
| JPH0727357B2 (ja) | グラフイツク装置における直線描画方式 | |
| JPH04362793A (ja) | ラスタ装置における描画方法 | |
| JPH0725068A (ja) | 文字生成方法及びその装置 | |
| JPH02270019A (ja) | 高品質文字パターン発生方式 | |
| JP3034140B2 (ja) | 文字生成方法及びその装置 | |
| JPS61249088A (ja) | 図形塗りつぶし方法 | |
| JPH07129149A (ja) | 文字描画装置 | |
| JP2835056B2 (ja) | 高品質文字パターン発生方式 | |
| JP2630843B2 (ja) | 直線描画方法及び装置 | |
| JPH0815796B2 (ja) | 文字フォント生成方法 | |
| JPH0350686A (ja) | 図形処理方式 | |
| US5305431A (en) | Method and system for rendering polygons on a raster display | |
| JP4320604B2 (ja) | 画像処理方法および画像処理装置 | |
| JP3269686B2 (ja) | 画像作成装置 | |
| JPH0752466B2 (ja) | ラスターオペレーション装置およびその方法 | |
| JP2771981B2 (ja) | 高品質文字パターン発生方式 | |
| JPH0896148A (ja) | 図形描画装置 | |
| JP2634906B2 (ja) | 画像処理方法 |