JPH0793569A - 線描画方法及び装置 - Google Patents

線描画方法及び装置

Info

Publication number
JPH0793569A
JPH0793569A JP5217262A JP21726293A JPH0793569A JP H0793569 A JPH0793569 A JP H0793569A JP 5217262 A JP5217262 A JP 5217262A JP 21726293 A JP21726293 A JP 21726293A JP H0793569 A JPH0793569 A JP H0793569A
Authority
JP
Japan
Prior art keywords
point
current
line
end point
area
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
Application number
JP5217262A
Other languages
English (en)
Other versions
JP2571662B2 (ja
Inventor
Nobuyasu Tanaka
伸宜 田中
Masaya Mori
昌也 森
Kazunori Takayanagi
和則 高柳
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP5217262A priority Critical patent/JP2571662B2/ja
Priority to KR1019940018967A priority patent/KR0147440B1/ko
Priority to EP94305774A priority patent/EP0642101A3/en
Priority to US08/298,528 priority patent/US5502801A/en
Publication of JPH0793569A publication Critical patent/JPH0793569A/ja
Application granted granted Critical
Publication of JP2571662B2 publication Critical patent/JP2571662B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/20Function-generator circuits, e.g. circle generators line or curve smoothing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【目的】 グラフィック・ディスプレイ上で、幅1の直
線及び円弧を高速で描くこと。 【構成】 現在点から、X座標のみを1つ増分した点
と、Y座標のみを1つ増分した点の両方について、幅1
の線を規定する輪郭線f1とf2の間にあるかどうかを
判断する。もし、X座標のみを1つ増分した点が輪郭線
f1とf2の間にあるなら、その点をプロットし、次の
ピクセルとして選択する。そうではなく、もし、Y座標
のみを1つ増分した点が輪郭線f1とf2の間にあるな
ら、その点をプロットし、次のピクセルとして選択す
る。そのどちらも輪郭線f1とf2の間にないなら、X
座標とY座標の両方を1増分した点をプロットし、次の
ピクセルとして選択する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ラスタ・スキャン・
グラフィック・ディスプレイなどの、ピクセルを任意の
座標点で個別にプロット可能なディスプレイに、コンピ
ュータの演算処理によって線を描くための方法及び装置
に関し、特に、1以上の幅をもつ太線を高速に描くため
の方法及び装置に関するものである。
【0002】
【従来の技術】従来より、コンピュータ・ディスプレイ
上で、線を描くための様々な方法が知られている。その
うちの代表的な方法として、ブレゼンハム (Bresenham)
のアルゴリズムとよばれるものがある。この技法は、任
意の勾配の直線、あるいは円弧の描画を、実数(不動小
数点数)を使用することなく、整数の範囲での加算、引
算、およびシフト演算のみで実現し、それゆえに高速で
あり、また、線上の各点の座標を一旦格納するためのテ
ーブルなしいメモリ領域も必要でない、という点で画期
的であった。
【0003】一方、グラフィック・ディスプレイ上の線
の描画において、1ピクセル以上の幅をもつ太線を描き
たいという要望がある。なぜなら、太線は、細線より
も、視覚的に明瞭であり、より好都合には、太線を少し
ずつずらして描画することにより、より太い線を描いた
り、特定の領域を効率的に充填することが可能になるか
らである。
【0004】しかし、上記ブレゼンハム・アルゴリズム
を、太線の描画に適用することは、原理的に不可能であ
る。なぜなら、ブレゼンハム・アルゴリズムは本質的に
幅ゼロの線の描画しかできないからである。さらに述べ
るなら、太い直線について、この分野の当業者の要求す
る基準として、その太い直線の輪郭を引いてみたとき、
その輪郭内に収まるすべてのピクセルを、結果の描画さ
れる太線が含んでいなくてはならない、ということがあ
る。ブレゼンハム・アルゴリズムを重ねて適用しても到
底このような基準を満たすことは不可能であり、輪郭内
に描かれないピクセルの抜けを生じてしまう。
【0005】そこで、従来技術においても、太線の直線
あるいは円弧を効率的に描くために、以下に示すように
さまざまな技法が開示されている。
【0006】先ず、特開昭63−14286号公報は、
円の内側に円の中心をずらしながら同一半径の円弧を描
画させ、これを繰り返すことにより太線円を描くアルゴ
リズムを開示する。
【0007】また、特開昭63−180182号公報
は、輪郭線座標情報と太め図形輪郭線座標情報から、任
意図形の太め輪郭線を描画してから内部を塗りつぶすこ
とにより、高速に太め描画を行うことを可能ならしめる
ことを開示する。
【0008】さらに、特開昭63−282583号公報
は、幅付きラインの中心線と幅情報の他に、1点だけの
外枠の座標情報を追加することにより、幅付きラインの
高速表示を可能にすることを開示する。
【0009】さらに、特開平2−35580号公報は、
線指定データ及び線幅データを記憶し、線の幅がその線
幅データに対応するようにキャラクタ全体の輪郭を移動
させ、アウトライン・データをビット・データに変換す
ることにより、線幅を正規の値にすることを開示する。
【0010】さらに、特開平2−208694号公報
は、太線描画要素データを作成し、太線描画要素データ
をフレームバッファ上でビットマップ・データとして描
画線方向に合成し、一定線幅の太線を描画することによ
り、一定線幅の太さの線を描画可能にする。
【0011】またさらに、特開平4−137187号公
報は、上部ビット範囲と中部ビット範囲と下部ビット範
囲とを求めて複数のビットをまとめて処理することによ
り、描画速度が正確な太さのある線を描くことを可能な
らしめることを開示する。
【0012】しかし、これらの太線描画技法は、浮動小
数点演算や、描画した点の座標データなどをメモリ中の
テーブルに順次格納しておく処理を必要とし、従って膨
大な演算能力を要するので、最近の高性能のプロセッサ
を以てしても描画速度が相当に低速にならざるを得な
い。
【0013】
【発明が解決しようとする課題】この発明の目的は、実
質的に整数演算のみを利用して、高速で太線を描画する
方法及び装置を提供することにある。
【0014】この発明の他の目的は、実質的に整数演算
のみを利用して、高速で、幅1の直線を描画する方法及
び装置を提供することにある。
【0015】この発明のさらに他の目的は、実質的に整
数演算のみを利用して、高速で、幅1の円弧を描画する
方法及び装置を提供することにある。
【0016】この発明のさらに他の目的は、実質的に整
数演算のみを利用して、高速で、幅1の楕円弧を描画す
る方法及び装置を提供することにある。
【0017】
【課題を解決するための手段】上記の目的は、直線の太
線の場合、次のような処理によって達成することができ
る。
【0018】描画しようとする太線の上限のラインと、
描画しようとする太線の下限のラインを画定する段階。
これらは、描画すべき太線の開始点と終了点が所与であ
ることから、これらの開始点と終了点を結ぶ直線の方程
式を求め、太線のY軸方向の幅をWとしたとき、この直
線のY軸切片を、±W/2だけオフセットすることによ
って求めることができる。本発明は、W=1の場合に対
応する。
【0019】次に、開始点から、終了点に近づくように
X軸に沿う座標値を1つだけ変化させた第1のピクセル
と、開始点から、終了点に近づくようにY軸に沿う座標
値を1つだけ変化させた第2のピクセルとに着目し、こ
れら2つのピクセルと、上記上限のラインと、上記下限
のラインとの位置関係を判定する。このとき、次のよう
な場合があり得る。 (a) 第1のピクセルが、太線の範囲内にある場合:この
場合、次のピクセルとして第1のピクセルを選択する。 (b) 第1のピクセルが、太線の範囲内になく、第2のピ
クセルが太線の範囲内にある場合:この場合、次のピク
セルとして第2のピクセルを選択する。 (c) 上記(a)と(b)の両方が不可の場合、X軸とY軸の両
方について座標値をともに1だけ変化させた、斜め方向
の第3のピクセルを次のピクセルとして選択する。 このようにして選択された次のピクセルをプロットし
て、該次のピクセルを基準として上記第1のピクセル及
び第2のピクセルを求め、これについて、上記と同様に
太線の範囲内にあるかどうかの判断を行うことにより、
プロットすべき、該次のピクセルのさらに次のピクセル
を決定する。このような処理を、最終点がプロットされ
るまで、続ける。
【0020】本発明の更なる特徴によれば、ピクセルが
太線の範囲内にあるかどうかの判断も、実質的な整数演
算で実現することができる。
【0021】本発明の更なる特徴によれば、輪郭線が円
弧または楕円の場合にも、上記のピクセル選択技法を適
用することができ、以て、実質的に整数演算により、幅
1の円弧または楕円も、高速に描くことが可能である。
【0022】
【実施例】
1.背景技術 1−1.ブレゼンハムの直線 図1に、ブレゼンハムの直線のプロットを示す。ブレゼ
ンハムの直線描画アルゴリズムは、実質的に整数演算に
よって直線の描画を可能ならしめた点で、画期的なもの
であった。この描画のためのアルゴリズムは、最早周知
であるので、詳細には説明しないが、図1において、X
軸座標が1つずつ増加するようにプロット点が選択され
てゆくものと仮定すると、プロットすべき次の点は、整
数演算される特定のパラメータの値に基づき、X軸座標
のみを1だけ増加させるか、X軸座標とY軸座標の両方
を1だけ増加させるかのどちらかを選択される。
【0023】1−2.幅をもつ直線 ブレゼンハムの直線描画アルゴリズムは、十分に高速で
あり、ラスタ・スキャン・グラフィック・ディスプレイ
において、単に直線を描画するだけの目的なら、十分に
実用的である。しかし、図2に示すような幅1の直線を
描画することは、ブレゼンハムの直線描画アルゴリズム
は、不可能である。このことを、幅をもつ直線の定義に
基づき例証すると、次のとおりである。すなわち、幅を
もつ直線において、描画すべき始点と終点を結び、この
線を中心として、幅W(この場合、W=1)の長方形の
輪郭を定める。すると、幅1の直線は、(a) 始点と終点
をプロットすること、(b) 定められた長方形の輪郭線上
と、輪郭線の内部にあるピクセルを全てプロットするこ
と、という条件を満たすものである。ここで、図2のピ
クセルP1とP2に着目すると、P2は、P1に対して直上
の関係にあることが見て取れる。しかし、図1では、あ
るピクセルの直上のピクセルは、決してプロットされる
ことがない。このことから、ブレゼンハムの直線描画ア
ルゴリズムは、原理的に、幅のある直線の描画に適用で
きないことが理解されよう。
【0024】2.ハードウェア構成 次に、本発明を実施するためのハードウェアの構成の例
を、図3を参照して説明する。図3において、描画用チ
ップ1は、メイン・プロセッサ(図示しない)からの描
画命令を受け取って、実際の描画のためのピクセル・デ
ータを発生するものである。例えば、直線を描くため
に、メイン・プロセッサは、単に、描くのが直線である
という指令と、直線の始点と、直線の終点のデータのみ
を描画用チップ1に渡すと、描画用チップ1は、その始
点と終点を結ぶ各々のピクセルの座標点の値を発生し、
ディスプレイのAPA(全点アドレス可能)メモリの座
標点に対応するピクセルをプロットする。
【0025】描画用チップ1の内部を図式的に示すと、
プロセッサからの命令/データを受け取るインターフェ
ース・ロジック回路1aと、専用CPU1bと、本発明
に係る描画アルゴリズムをハード・ワイヤド・ロジック
で実装したロジック回路1cと、本発明に係る描画アル
ゴリズム以外の描画機能を総称的に含めたロジック回路
1dと、ディスプレイのAPAとの間でデータをやり取
りするためのディスプレイ・バスに対するインターフェ
ース機能を与えるインターフェース・ロジック回路1d
とからなっている。尚、ロジック回路1cとロジック回
路1dとは、実際は個別に分離されて実装されている訳
ではなく、説明の便宜上、図示のブロック図構成として
示されていることを理解されたい。
【0026】V1〜V4は、ディスプレイのAPAメモ
リの異なるプレーン毎に用意されたビデオ・チップであ
り、各々個別のAPAメモリM1〜M4に接続され、描
画用チップ1から受け取ったピクセル・データをAPA
メモリに書き込むのみならず、APAメモリからピクセ
ル・データを読み取ったり、ピクセル・データに対して
演算を施したり、異なるプレーン間でピクセル・データ
を移動したりする機能を有する。
【0027】ロジック回路3は、V1〜V4からの、4
つのプレーンに亘るピクセル・カラー・データをマージ
して、表示のため、ロジック回路4に渡す。ロジック回
路4は、プログラマブル・ロジック・アレイ(PLL)
及びディジタル・アナログ変換機能(DAC)を有し、
ピクセル・カラー・データをアナログ・データとして、
表示のため、ラスタ・スキャン・ディスプレイ5に提供
する。
【0028】尚、図3に示すハードウェア構成は、本発
明を実施するための構成の一例にすぎないので、これ以
上の詳細な説明は省略する。本発明の実施はこのような
構成に限定されるものではないことに留意されたい。す
なわち、発明者による実験によれば、このようなハード
ウェア構成でなく、汎用のプロセッサの上で、ソフトウ
ェア的に本発明を実現しても、実用的には十分な程度の
高速で、幅を有する線を描くことができた。
【0029】3.本発明の原理 次に、図4以下を参照して、本発明の原理を説明する。
図4において、今、右上がりの直線fを引いてみる。す
ると、この直線の方程式は、一般的に、y=(Δy/Δ
x)x+bとあらわされる。この式で、(Δy/Δx)
は、勾配である。この直線上の同一でない任意の2点
(X1,Y1)及び(X2,Y2)(但し、X2 >X1)により、
Δx=X2−X1、Δy=Y2−Y1と想定している。b
は、切片である。この式を変形して、
【0030】
【数1】f(x,y)=y・Δx−x・Δy−b・Δx
【0031】という方程式を作ってみると、ある点(x
0,y0)が直線fに乗っていれば、明らかにf(x0,y
0)=0であり、一方、点(x0,y0)が直線fよりも上
にあれば、f(x0,y0)> 0であり、さらに、点
(x0,y0)が直線fよりも下にあれば、f(x0,y
0)< 0であることが、簡単な計算により確かめられ
る。
【0032】次に、図5において、f1を、幅のある線
の上限の輪郭線の(上記fと同様の)方程式、f2を幅
のある線の下限の輪郭線の方程式である、と仮定する。
すると、あるピクセルを、幅のある線としてプロットす
べきことの必要条件は、f1≦0且つf2≧0であるこ
とが見て取れる。
【0033】次に、図6を参照して、始点(Xs,Ys)
から終点(Xe,Ye)まで、本発明に従い、幅1の線を
直線を引く処理について説明する。図6において、f
は、始点(Xs,Ys)と終点(Xe,Ye)を結ぶ直線の
方程式、f1は上限の輪郭線、f2は下限の輪郭線であ
る。
【0034】先ず、Δx=Xe−Xs、Δy=Ye−Ysと
すると、数1で示したように、f(x,y)=y・Δx
−x・Δy−b・Δxであるが、f(Xs,Ys)=f
(Xe,Ye)=0をbについて解くと、b・Δx=Ys
・Xe−Ye・Xs=Ys・Xe−Ys・Xs+Ys・Xs−Ye
・Xs=Ys・Δx−Xs・Δyよって、
【0035】
【数2】f(x,y)=y・Δx−x・Δy−(Ys・
Δx−Xs・Δy)
【0036】すると、ある正の定数Nによって、f1=
f−N、f2=f+Nとあらわされることになる。f1
とf2をこのような式であらわすとき、fとf1、及び
fとf2のy切片の差は、N/Δxであらわされる。こ
こで、切片が、Δxで割った値であらわされるのは、数
1において、その定数項が、−b・Δxのように、Δx
を掛けたものになっているからである。
【0037】さて、始点(Xs,Ys)と終点(Xe,Y
e)を結ぶ長さLを、
【数3】L=((Xe−Xs)2+(Ye−Ys)21/2
【0038】によって、求める。ここで留意すべきであ
るのは、このLの計算は、浮動小数点演算が必要である
けれども、本発明によれば、これ以降のピクセルの座標
点を求めるための計算は、実質的に整数演算だけで済ん
でしまうことである。
【0039】こうしてLを求めると、直角三角形の相似
に基づき、次のような比例式が成立する。
【0040】
【数4】L:Δx=2N/Δx:W
【0041】この比例式から、N=WL/2という式が
求められる。尚、本発明では、W=1であるとして説明
を行う。よって、N=L/2となる。尚、数3の演算結
果に示されるように、Lは、浮動小数点数であり、従っ
てNも浮動小数点数であるが、後述するように、Nは、
整数値に対して値の大小を比較される値なので、以下で
は、小数点以下は切り捨てて整数値として扱ってよい。
【0042】始点(Xs,Ys)を座標変換により原点
(0,0)にずらすと、上限及び下限のグラフは、図7
に示すように簡略化される。このように簡略化しても一
般性は失わないことは明らかである。
【0043】以上の準備のもとで、本発明に従い、幅1
の直線を描画するために、どのようにしてプロットすべ
きピクセルの座標点を求めるか、について、図8以下を
参照して説明する。
【0044】図8において、P=(x,y)を出発点と
する。すると、本発明の基本的な着想に従うと、P
(x,y)に対して、yを1だけインクリメントした点
A=(x,y+1)と、xを1だけインクリメントした
点B=(x+1,y)の両方について、上限の輪郭線f
1と下限の輪郭線f2の間にあるかどうかが判定され
る。図5によれば、f1とf2の間にある、という条件
は、f1≦0且つf2≧0であるけれども、一方、図6
から明らかなように、出発点は、必ずf1とf2の間に
あるので、A=(x,y+1)については、f1≦0で
あるかどうか、B=(x+1,y)については、f2≧
0であるかどうかについて判定すればよいことが分か
る。このとき、Aが範囲内にある(場合1)、Aが範囲
内になくBが範囲内にある(場合2)、AもBもどちら
も範囲内にない(場合3)、という3つの場合がある。
尚、AとBのどちらが範囲内にあるか判定するのに、先
ずAの方を調べ次にBの方を調べてもよいし、先ずBの
方を調べ次にAの方を調べても、どちらでもよい。とい
うのは、幅1の線においては、AもBも範囲内にある、
ということはありえないからである。
【0045】場合1:図9に、場合1の例を示す。図9
以下では、yを1だけインクリメントした点A=(x,
y+1)を(Xa,Ya)、xを1だけインクリメント
した点B=(x+1,y)を(Xb,Yb)であらわ
す。さらに、判定用のパラメータとして、f1(Xa,
Ya)の値をd1、f2(Xb,Yb)の値をd2とす
る。これらの値は、P=(x,y)を出発点とした時点
で既に計算されている。図9の例では、f1(Xa,Y
a)<0、すなわち点Aがf1よりも下にあるので、点
Aがプロットされるとともに、次のピクセルとして選択
される。
【0046】点Aが新たなピクセルとして選択されたこ
とに応答して、その新たに選択されたピクセルに対し
て、更に次に進むべきピクセルを判定するために、上記
f1(Xa,Ya)及びf2(Xb,Yb)に対応する
値を求める。ところが、点Aは、図8の点Pに対して、
y座標値を1だけインクリメントしたものであるから、
この新たに選択されたピクセルに対応する上記判定用パ
ラメータは、f1(Xa,Ya+1)、及びf2(X
a,Ya+1)となる。しかし、これらの計算は、数1
に戻って計算し直す必要はない。すなわち、数1を参照
すると、yを1だけ増分することは、fの値をΔxだけ
増加させることに等しく、xを1だけ増分することは、
fの値をΔyだけ減少させることに等しい。よって、f
1==f1+Δx、f2=f2+Δx、のように判定用
のパラメータが更新される。
【0047】場合2:図10に、場合2の例を示す。こ
の場合、f1(Xa,Ya)>0なので、点Aは失格で
あり、一方、f2(Xb,Yb)>0であることから、
点Bは合格である。よって、点Bが次のピクセルとして
選択される。ところが、点Bは、図8の点Pに対して、
x座標値を1だけインクリメントしたものであるから、
この新たに選択されたピクセルに対応する上記判定用パ
ラメータは、f1(Xa+1,Ya)、及びf2(Xa
+1,Ya)となる。そして、既に説明したように、f
1(Xa+1,Ya)=f1−Δy、f2(Xa+1,
Ya)=f2−Δy、と計算することができる。
【0048】場合3:図11に、場合3の例を示す。こ
の場合、f1(Xa,Ya)<0なので、点Aは失格で
あり、一方、f2(Xb,Yb)<0であることから、
点Bも失格である。よって、本発明に従えば、x座標と
y座標をともに1だけ増分させた点Cが次の点として選
択されてプロットされ、点Cは、図8の点Pに対して、
x座標値及びy座標値をともに1だけインクリメントし
たものであるから、この新たに選択されたピクセルに対
応する上記判定用パラメータは、f1(Xa+1,Ya
+1)、及びf2(Xa+1,Ya+1)となる。そし
て、既に説明したように、f1(Xa+1,Ya+1)
=f1+Δx−Δy、f2(Xa+1,Ya+1)=f
2+Δx−Δy、と計算することができる。
【0049】図12には、本発明の方法に従い、原点
(0,0)から、幅1の直線を描くようにピクセルを順
次プロットする様子が示されている。このようにしてピ
クセルを順次プロットし、終点である(Xe,Ye)がプロ
ットされると、直線の描画が終了する。
【0050】4.幅1の直線描画動作のフローチャート 以下、上記した本発明に従う幅1の直線描画動作のフロ
ーチャートを示す。当技術分野の当業者なら、このフロ
ーチャートに従い、C、PASCAL、C++、BAS
ICなどの任意のコンピュータ・プログラミング言語に
より、コンピュータ上で、本発明の幅1の直線描画動作
を行うプログラムを容易に実現できるはずである。ある
いは、ハードワイヤード・ロジックで、このフローチャ
ートと等価な論理をLSIに実現することも容易であろ
う。
【0051】図13のフローチャートを参照すると、ス
テップ1302では先ず、Δxに、定数として、終点の
x座標から始点のx座標を引いた値が格納され、さら
に、Δyに、定数として、終点のy座標から始点のy座
標を引いた値が格納される。また、Nという定数に、始
点から終点までの長さLの半分の値が格納される。尚、
このような定数を使用する意味は、図6に関連して説明
済みである。本発明に従えば、浮動小数点演算を要する
のは、この長さLを求める段階だけで、後は、整数演算
のみで処理を勧めることが可能である。
【0052】ステップ1304では、変数xに、始点の
x座標が格納され、変数yに、始点のy座標が格納され
る。これによって、現在の点(x,y)が始点にセット
される。さらに、次の点を決定するための判定用のパラ
メータ変数として、f1に−N+Δx−1が格納され、
f2にN−Δyが格納される。これらの値f1、f2の
意味は、図6に関連して説明したとおりである。
【0053】f1に−N+Δx−1を格納する意味は、
図6を参照して説明される。すなわち、図6によれば、
【数5】f1(x,y)=y・Δx−x・Δy−(Ys
・Δx−Xs・Δy)−N
【0054】であって、f1は、現在の点の直ぐ上のピ
クセルに対応する判定用パラメータであるので、初期的
には、f1(x,y)=f1(Xs,Ys+1)。これを
計算すると、f1=−N+Δx しかし、上記のf1は、これに対して−1という項を余
分に含んでいる。そのような項は、後のステップ131
0のf1>0という比較演算を、f1≧0で代替するた
めに付加される。これは、ある特定のハードワイヤド論
理回路では、f1>0よりもf1≧0の方が高速に処理
できるからである。しかし、一般的には、f1=−N+
Δxとし、ステップ1310の比較演算をf1>0に置
き換えても差し支えないであろう。
【0055】同様に、
【数6】f2(x,y)=y・Δx−x・Δy−(Ys
・Δx−Xs・Δy)+N
【0056】であって、f2は、現在の点の直ぐ右のピ
クセルに対応する判定用パラメータであるので、初期的
には、f2(x,y)=f2(Xs+1,Ys) これを計算すると、f2=N−Δy
【0057】ステップ1306では、現在の点である
(Xs,Ys)のピクセルがプロットされる。次に、ステッ
プ1308では、f2≧0かどうかが判断され、もしそ
うなら、f1の値を調べることなく、図10の場合に対
応することが決定される。というのは、現在の点(x,
y)が、図10のf1とf2の間にあるとき、f2≧
0、すなわち、(x+1,y)の点がf1とf2の間に
あるなら、f1の値によって調べるべき(x,y+1)
の点は、描く線の幅が1であることにより、最早、f1
とf2の間にはあり得ないからである。ステップ130
8が肯定的であると、ステップ1312に進み、図10
に示されているようにf1とf2からそれぞれΔyが引
かれるとともに、x座標が1だけ増分された点が次の点
として選択される。
【0058】ステップ1308でf2≧0が成立しない
と、ステップ1310でf1≧0かどうかが決定され
る。この判断が否定的であると、f1<0、f2<0と
いう条件が成立しているみことになるから、図9の場合
に対応する。このとき、処理は、ステップ1314に進
み、図9に示すように、f1とf2とにそれぞれΔxが
加えられ、y座標が1だけ増分された点が次の点として
選択される。
【0059】ステップ1308の判断が肯定的である
と、処理は、ステップ1316に進む。この場合、f1
≧0且つf2<0が成立しているから、図11の場合に
対応する。このとき、図11に示すように、f1とf2
とにそれぞれΔx−Δyが加えられ、x座標及びy座標
が1だけ増分された点が次の点として選択される。
【0060】ステップ1318では、ステップ131
2、1314または1316で新しく選ばれた点(ピク
セル)がプロットされ、次に、ステップ1320では、
今プロットしたばかりの点が終点であるかどうかが判断
される。そして、もしそうであるなら、処理は終了し、
そうでないなら、ステップ1308の、f2≧0かどう
かの判断に戻る。
【0061】尚、図13のフローチャートは、Xs<Xe
且つYs<Yeという前提の下で記述されているが、本発
明は、このような条件に制約されるものではなく、図1
3のフローチャートを次のように変更することにより、
XsとXe、YsとYeの大小関係に拘らず幅1の直線を描
くように拡張可能である。
【0062】すなわち、先ず、Xの値の絶対値を与える
関数ABS(X)=|X|と、Xの符合を与える関数S
GN(X)を定義する。SGN(X)の値は、X≧0な
ら1、X<0なら−1である。そうして、図13のステ
ップ1302で、ΔX:=ABS(Xe−Xs)、ΔY:
=ABS(Ye−Ys)と変更する。さらに、ステップ1
302で、sx:=SGN(Xe−Xs)、sy:=SG
N(Ye−Ys)を求める。
【0063】次に、ステップ1312、1314及び1
316におけるx:=x+1を、x:=x+sx、y:
=y+1を、y:=y+syと変更する。以上の変更
で、XsとXe、YsとYeの大小関係に拘らず幅1の直線
を描くことができるようになる。
【0064】5.幅1の円弧の描画 円の方程式は、x2+y2=r2である。この円に沿って
幅1の円を描こうとする場合を考える。
【0065】すると、外側の輪郭の方程式は、
【数7】f1(x,y)=x2+y2−(r+0.5)2
なり、内側の輪郭の方程式は、
【数8】f2(x,y)=x2+y2−(r−0.5)2
なる。
【0066】このとき、f1(x,y)≧0は、点
(x,y)が、描こうとする幅1の円の外側の輪郭の外
側にあること(すなわち、ピクセルをプロットしない)
を示し、f1(x,y)<0且つf2(x,y)≧0は、
点(x,y)が、描こうとする幅1の円上に乗っている
こと(すなわち、ピクセルをプロットする)を示し、f
2(x,y)<0は、点(x,y)が、描こうとする幅
1の円の内側の輪郭のに乗っていること(すなわち、ピ
クセルをプロットしない)を示す。
【0067】次に、第1象限において、本発明の技法を
用いて(r,0)の点から反時計回りに、(0,r)の
点まで、4分の1の円弧を描く場合について、図14を
参照して説明する。この場合、明らかに、xの座標値は
単調減少であり、yの座標値は単調増加となる。従っ
て、ピクセルの進み方は、次の3通りが考えられる。
【0068】(i) xの座標値が1つ減少 (ii) yの座標値が1つ増加 (iii) xの座標値が1つ減少し、且つyの座標値が1つ
増加
【0069】この実施例では、処理を簡略化するため
に、(i)と(ii)のどちらかのみを選択し、(iii)の場合
は、考慮しないものとする。しかし、当技術分野の通常
の知識を有する技術者なら、以下の説明から、(iii)の
場合を考慮した処理も、想定することができるはずであ
る。さて、図面を参照して、実際の円弧描画動作につい
て説明すると、1つのピクセルをプロットした後、次の
プロットすべきピクセルを選択する方針は、次のとおり
である。 (a) 現在のピクセルの直上のピクセルは、外側の輪郭線
f1よりも下にあるか。
【0070】もしそうなら、次のピクセルとして直上の
ピクセルを選択し、それをプロットする。 (b) (a)での判定の結果が否定的であるなら、次のピク
セルとして、現在のピクセルの左側のピクセルを選択す
る。しかし、これを直ちにプロットするのではなく、そ
の位置が、内側の輪郭線f2よりも上にあるかどうかを
判定し、もしそうなら、プロットし、そうでないならプ
ロットしない。このような余分な判定を行うのは、図1
4の点P3のような場合があるからである。この場合、
直上のピクセルPxは、外側の輪郭線f1よりも上にあ
るので、直上のピクセルを次のピクセルとして選択する
ことができず、従って左側のピクセルを選択するが、こ
れは、幅1の円弧の内部にない点なので、プロットして
はならないのである。尚、ここでは、現在のピクセルの
直上のピクセルについて先ず判定し、次に現在のピクセ
ルの左側のピクセルについて判定しているが、ピクセル
の左側のピクセルの方を先に判定してもよい。というの
は、幅1の円弧では、現在のピクセルの直上のピクセル
と現在のピクセルの左側のピクセルの両方が範囲内に含
まれることはあり得ないからである。
【0071】図14において、点P0から始まって、こ
のような方針で順次、P1〜P10とピクセルのプロット
が進むことが理解されよう(但し、P3、P6、P8は、f
2の内側に位置するため、実際にはプロットされな
い)。 (c) x座標の値が0に到達し、且つy座標の値がrに到
達した段階で、描画を完了する。
【0072】 6.幅1の円弧描画の処理のフローチャート 説明の便宜上、(x,y)=(0,−r)から、(x,
y)=(r,0)まで、幅1の1/4の円弧を描く場合
を考える。このため、図14を、原点を中心に90゜時
計方向に回転したような図を考慮されたい。すると、P
0の点の座標は、(0,−r)となる。また、x軸座標
とy軸座標は逆になる。これを図15として示す。
【数9】f1(x,y)=x2+y2−(r+0.5)2
【0073】であり、この場合、f1は、開始点の直ぐ
右のピクセルに対する判定パラメータであるので、初期
的には、f1=f1(1,−r)=−r−0.25 しかし、f1を整数として定義するため、これは、−r
で置き換えてよい。というのは、外側の輪郭線に対して
は、輪郭線上の点はプロットしないものとすると、f1
<0が、ピクセルをプロットするための必要条件であ
る。そして、f1よりも0.25大きい値について、0
より小さいという条件が成立しているなら、f1そのも
のについても0より小さいという条件が成立するからで
ある。
【0074】一方、f2は、次の式で与えられている。
【数10】 f2(x,y)=x2+y2−(r−0.5)2
【0075】であり、この場合、f2は、開始点そのも
のに対する判定パラメータであるので、初期的には、f
2=f2(0,−r)=r−0.25しかし、f2を整
数として定義するため、これは、r−1で置き換えてよ
い。というのは、内側の輪郭線に対しては、輪郭線上の
点はプロットするものとすると、f2≧0が、ピクセル
をプロットするための必要条件である。そして、f2よ
りも0.75小さい値について、0以上という条件が成
立しているなら、f2そのものについても0以上という
条件が成立するからである。
【0076】以上のことを考慮して、図16のステップ
1502では、f1の初期値であるf1_initに−
rが格納され、f2の初期値であるf2_initにr
−1が格納される。
【0077】次に、f1とf2の増分について考慮す
る。一般的に、f(x,y)=x2+y2−r2という式
について、xの座標値を1つ増加させることは、xにx
+1を代入することを意味する。すると、簡単な計算に
より、f(x+1,y)=f(x,y)+2x+1 従って、xの座標値が1つ減少することは、fに、2x
+1を加えることを意味する。同様に、f(x,y+
1)=f(x,y)+2y+1 今は、プロット開始点として、(x,y)=(0,−
r)を考えているので、f1及びf2の増分の初期値
は、それぞれ、−2*r+1と、1である。これらの値
が、それぞれ、incy_initと、incx_in
itに格納される。
【0078】ステップ1504では、x及びyに、開始
点の座標がセットされるとともに、x方向のカウンタc
t_xと、y方向のカウンタct_yに、rがセットさ
れる。ct_xは、次に選択されるピクセルの座標がx
方向に1つ変化する度に1だけデクリメントされ、ct
_yは、次に選択されるピクセルの座標がy方向に1つ
変化する度に1だけデクリメントされる。ステップ15
16で、これらのカウンタがともにゼロになったとき
に、描画処理が完了するようになされている。
【0079】ステップ1504ではさらに、f1にf1
_initがセットされ、f2にf2_initがセッ
トされる。これらのf1及びf2は、図13に示した直
線を描くためのフローチャートにおけるf1及びf2に
対応する働きを有する変数である。
【0080】またさらに、ステップ1504では、in
cyにincy_initが格納されるとともに、in
c1xにincx_init+2が格納される。inc
yは、f1、f2の増分の共用である。inc1xは、
f1の増分に使用される。ここで、+2という項が存在
するのは、図15において、f1に対して比較される点
P1は、f2に対して比較すべき点Pzよりも、x座標が
1つ進んでいる。このx座標が1つの先行が、+2であ
る。inc2xには、incx_initが格納され
る。inc2xは、f2の増分に使用される。
【0081】ステップ1506では、f2≧0かどうか
が判断される。もしf2≧0なら、(x,y)で示され
るピクセルを直ちにプロットする。この段階で、f1の
値の判断を待つことなく直ちにプロットしてよい理由
は、後のステップ1510でf1≧0と判断されたと
き、すなわち、x方向に1つ増分した点が円の外側の輪
郭から外に外れていると判断されたとき、ステップ15
14で、x座標を1つ増分した点でなく、y座標を1つ
増分した点が次のピクセルとして選択され、以て、f1
<0の条件を満たすように軌道修正されるからである。
【0082】ステップ1506で、f2≧0の判断が否
定的であるなら、ステップ1509で、(x,y)の点
をオフにする、すなわち、画面の背景色をプロットす
る。あるいは、ステップ1509は特に設けず、単にス
キップしてもよい。f2≧0の判断が否定的になる場合
に該当するのは、図15では、P3、P6及びP8であ
る。
【0083】ステップ1510では、現在のピクセルに
対してx軸座標を1つインクリメントした点(図15に
おいて)が、f1よりも内側にあるかどうかが判断され
る。f1≧0であると、すなわち、現在のピクセルに対
してx軸座標を1つインクリメントした点がf1よりも
外側にあると、ステップ1514に進む。この場合に
は、f1、f2ともincyだけ増分し、incy自体
も2つ増加する。それは、
【数11】 f1(x,y)=x2+y2−(r+0.5)2 f2(x,y)=x2+y2−(r−0.5)2
【0084】において、f1(x,y+1)=f1
(x,y)+2y+1且つf2(x,y+1)=f2
(x,y)+2y+1であり、よって、incy=2y
+1従って、yが1つ増加する毎に、incyも2ずつ
増加するからである。このような像分量自体の増加は、
x軸方向に関連しても同様である。ステップ1514で
はさらに、新しいピクセルを指定するためにyが1だけ
増分され、それに伴って、ct_yが1だけデクリメン
トされる。これは、図15では、例えば、P2からP3に
進む処理に対応する。
【0085】ステップ1510で、f1≧0の判断が否
定的であると、すなわち、f1<0であると判断される
と、図15で、例えば、P1からP2に進むように、次の
ピクセルが選択される。すると、処理はステップ151
2に進み、f1にinc1xが加算されるとともに、f
2にinc2xが加算される。ステップ1514とステ
ップ1512を比較すると、ステップ1514では、f
1とf2が足並みを揃えてincyだけ増分されるのに
対し、ステップ1512では、f1の増分は、f2の増
分よりも2大きい。この理由は、ステップ1504に関
連して説明したように、f1は、f2よりも常にx座標
が1大きい点を参照しているからである。このための処
置が、inc2x:=inc1x、inc1x:=in
c1x+2である。ステップ1510ではさらに、新し
いピクセルを指定するためにxが1だけ増分され、それ
に伴って、ct_xが1だけデクリメントされる。
【0086】ステップ1516では、ct_x及びct
_yがともにゼロに達したかどうかが判断され、もしそ
うなら、処理を終了し、そうでなければ、ステップ15
06の判断ブロックに戻る。
【0087】図16のフローチャートは、図15に示す
ように、x軸及びy軸の両方に沿って座標値が増分する
ように、1/4円弧を描く場合に対応する(すなわち、
第4象限)が、これは、勿論、任意の象限に拡張可能で
ある。例えば、図14に示す第1象限に対応させるな
ら、変更を要するのは、 (i) 開始点を、x:=Xr+r、y:=Yrとする。 (ii) x:=x+1のところを、y:=y−1に置き換
える。 (iii) y:=y+1のところを、x:=x+1に置き換
える。
【0088】第2象限なら、 (i) 開始点を、x:=Xr、y:=Yr+rとする。 (ii) x:=x+1のところを、x:=x−1に置き換
える。 (iii) y:=y+1のところを、y:=y−1に置き換
える。
【0089】第3象限なら、 (i) 開始点を、x:=Xr−r、y:=Yrとする。 (ii) x:=x+1のところを、y:=y−1に置き換
える。 (iii) y:=y+1のところを、x:=x+1に置き換
える。
【0090】何れにしても、f1、f2を変化させ、f
1≧0、f2≧0判断を行う処理は、象限に依存しない
ことが理解されよう。
【0091】さらにまた、部分的な円弧を描くなら、開
始点を指定するとともに、ct_x、ct_yの値を、
rよりも小さい値に設定すればよい。
【0092】7.幅1の楕円弧 幅1の楕円弧の描画は、本質的には、図14におけるf
1及びf2の円方程式を、楕円の方程式に置き換えるだ
けでよい。
【0093】さて、図17を参照すると、第1象限にお
けるx軸との交点が(a,0)であり、y軸との交点が
(0,b)である楕円が示されている。このような楕円
の方程式は、次のとおりである。
【数12】x2/a2+y2/b2=1
【0094】従って、幅1の楕円の線の外側の輪郭の方
程式f1と、内側の輪郭の方程式f2は、図17に示す
とおりになる。先ず、f1において、両辺に(a+0.
5)2(b+0.5)2を掛け、さらに、0.5という項
が整数になるように両辺を16倍し、左辺から右辺を引
くと、f1は、次のように変形される。
【数13】4(2b+1)22+4(2a+1)22
(2a+1)2(2b+1)2
【0095】これを、d1(x,y)とおく。f2に同
様の変形を施すと、
【数14】4(2b−1)22+4(2a−1)22
(2a−1)2(2b−1)2
【0096】これを、d2(x,y)とおく。すると、
図16の幅1の円弧を描くためのフローチャートにおけ
るf1をd1で、f2をd2で置き換えることにより、
図16のフローチャートを、幅1の楕円弧を描くための
フローチャートに拡張することができる。
【0097】そこで、以下、図18及び図19のフロー
チャート、及び図17の楕円の図を参照して、幅1の楕
円弧を描く処理を説明する。図17で、(0,−b)か
ら(0,a)まで1/4の楕円弧を描くものとする。
【0098】ステップ1802では、d1_init=
d1(0,−b)、d2_init=d2(0,−b)
によって、d1及びd2の初期値をそれぞれ求める。
【0099】さらに、
【数15】d1(x+1,y)=d1(x,y)+4
(2b+1)2(2x+1) d1(x,y+1)=d1(x,y)+4(2a+1)
2(2y+1) d2(x+1,y)=d2(x,y)+4(2b−1)
2(2x+1) d2(x,y+1)=d2(x,y)+4(2a−1)
2(2y+1)
【0100】よって、d1のx方向及びy方向の増分関
数を、それぞれ、inc1x(x,y)及びinc1y
(x,y)、d2のx方向及びy方向の増分関数を、そ
れぞれ、inc2x(x,y)及びinc2y(x,
y)、とすると、
【数16】 inc1x(x,y)=4(2b+1)2(2x+1) inc1y(x,y)=4(2a+1)2(2y+1) inc2x(x,y)=4(2b−1)2(2x+1) inc2y(x,y)=4(2a−1)2(2y+1)
【0101】そこで、ステップ1802では、inc1
x_init=inc1x(0,−b)、inc1y_
init=inc1y(0,−b)、inc2x_in
it=inc2x(0,−b)及びinc2y_ini
t=inc2y(0,−b)が計算され、初期値として
値が格納される。
【0102】ステップ1804では、x及びyに、それ
ぞれ、開始点の座標であるXr及びYr−bが格納され
る。ここで、inc1x(x,y)のx座標を1増分し
たときの増加量をd_incl1x、inc1y(x,
y)のy座標を1増分したときの増加量をd_inc1
y、inc2x(x,y)のx座標を1増分したときの
増加量をd_inc2x、inc2y(x,y)のy座
標を1増分したときの増加量をd_inc2yと定義す
ると、d_inc1x、d_inc1y、d_inc2
x及びd_inc2yの各々は、ステップ1804に示
すとおりとなる。
【0103】ステップ1804ではさらに、変数d1
に、d1_initにinc1x_initを加えた値
が格納される。これは、d1(図17ではf1として示
されている)に対して位置を比較される点が、現在の点
(初期的にはP0)に対してx座標を1増分させた点であ
るからである。また、変数d2に、d2_initにi
nc2y_initを加えた値が格納される。これは、
d2(図17ではf2として示されている)に対して位
置を比較される点が、現在の点(初期的にはP0)に対し
てy座標を1増分させた点であるからである。
【0104】またさらに、ステップ1804では、in
c1xに、inc1x_initにd_inc1xを加
えた値が格納される。d_inc1xが追加されるの
は、上記d1について述べたのと同じ理由である。in
c1yには、単に、inc1y_initが格納され
る。inc2xには、単に、inc1y_initが格
納される。inc2yには、inc2y_initにd
_inc2yを加えた値が格納される。d_inc2y
が追加されるのは、上記d2について述べたのと同じ理
由である。
【0105】図19に移行して、ステップ1902で
は、d2≧0かどうかが判断される。d2≧0であると
は、図17において、現在のピクセルから、x座標を1
だけ増分させた点が、内側の輪郭線f2よりも、外側に
あることを意味する。そして、もしそうなら、ステップ
1906で、(x,y)に対応するピクセルがプロット
され、そうでないなら、ステップ1904で、(x,
y)に対応するピクセルが背景色にプロットされるか、
または、単に何もプロットしない。この意味で、ステッ
プ1904は、省略してもよい。
【0106】ステップ1908では、d1≧0かどうか
が判断される。d1≧0であるとは、現在のピクセルか
ら、x座標を1だけ増分させた点が、外側の輪郭線f1
よりも、外側にあることを意味する。もしそうなら、現
在のピクセルから、x座標を1だけ増分させた点は、幅
1の楕円弧の範囲内にないので、次のピクセルとして選
択されるべきでなく、従って、y:=y+1が行われ
て、現在のピクセルから、y座標を1だけ増分させた点
の方が、ピクセルとして選択される。このy座標の増分
に伴い、d1には、inc1yが加算され、d2には、
inc2yが加算され、さらに、次の処理に備えて、増
分量であるinc1y自体がd_inc1yだけ増分さ
れ、inc2y自体が、d_inc2yだけ増分され
る。さらに、y方向の増分カウンタct_yが1つデク
リメントされる。
【0107】ステップ1908でd1≧0の判断が否定
的であると、それは、現在のピクセルから、x座標を1
だけ増分させた点が、外側の輪郭線f1よりも内側にあ
ることを意味し、よって、x:=x+1が行われて、現
在のピクセルから、x座標を1だけ増分させた点を次の
ピクセルとして選択される。このx座標の増分に伴い、
d1には、inc1xが加算され、d2には、inc2
xが加算され、さらに、次の処理に備えて、増分量であ
るinc1x自体がd_inc1xだけ増分され、in
c2x自体が、d_inc2xだけ増分される。さら
に、x方向の増分カウンタct_xが1つデクリメント
される。ステップ1910では、カウンタct_x及び
カウンタct_yがともにゼロかどうかが判断され、も
しそうなら、処理は終了し、そうでないなら、ステップ
1902の判断ステップに戻る。
【0108】尚、図18及び図19のフローチャート
は、第4象限に楕円弧を描く処理に関連して説明した
が、上記円弧の場合に説明したのと同様の変更を加える
ことによって、任意の象限に幅1の楕円弧を描くように
することができる。
【0109】
【発明の効果】以上説明したように、本発明の1つの特
徴によれば、幅1の直線を、実質的に整数演算のみによ
って、ブレゼンハム・アルゴリズムによるのと同等の速
度でプロットすることが可能ならしめられる。幅1の直
線は、ブレゼンハム・アルゴリズムによって描かれた直
線よりも、明瞭で表示品質に優れるので、本発明によっ
て、幅1の直線を、実質的に整数演算のみによって描く
ことができることは、様々なグラフックス・アプリケー
ションにとって、非常に意義が大きいと思われる。
【0110】さらに、従来より、円弧を描くためのブレ
ゼンハム・アルゴリズムは周知で、これによれば、実質
的に整数演算のみによって、円弧を描くことが可能であ
る。しかし、直径を1ずつ異ならせた同心的な複数の円
を描くことによって円の内部を充填しようとすると、ブ
レゼンハム・アルゴリズムで描かれた円弧だと、どうし
ても斑状に、円の内部で埋め尽くせないピクセルが生じ
てしまう。幅1の円弧だと、直径を1ずつ異ならせた同
心的な複数の円によって、円の内部を完全に充填するこ
とが可能である。よって、表示品質上、幅1の円弧はメ
リットが大きいが、従来の方法では、幅1の円弧は、複
雑な平方根計算を含む極めて計算量の多い低速な処理で
描くよりなく、CPUの速度によっては、殆ど許容し難
い低速でしか幅1の円弧を描くことができなかった。と
ころが、本発明の別の特徴によれば、幅1の円弧を、実
質的に整数演算のみによって、高速で描くことが可能な
らしめられる。実際、同一ハードウェア構成で発明者ら
が実験したところ、従来の方法よりも数十倍乃至100
倍程度も、本発明の幅1の円弧描画方法の方が高速であ
った。
【図面の簡単な説明】
【図1】 ブレゼンハム・アルゴリズムによって描かれ
る直線のピクセルをプロットした図である。
【図2】 幅1の直線のピクセルをプロットした図であ
る。
【図3】 本発明を実施するためのハードウェア構成の
ブロック図である。
【図4】 特定の直線に対する、上下の範囲を判定する
処理を示す図である。
【図5】 特定の点が、幅のある直線の上限f1と下限
f2の間にあることを判定する処理を示す図である。
【図6】 幅1の線に対応する、上限f1と下限f2を
決定する処理を示す図である。
【図7】 幅1の線に対応する、上限f1と下限f2を
決定する処理を示す図である。
【図8】 開始点Pに対して、次に進むべき点を決定す
るために、上限f1と下限f2の間にあるかどうかを調
べるべき点A及びBを示す図である。
【図9】 本発明に従い、現在の点(x,y)に対し
て、次の点を選ぶ処理を示す図である。
【図10】 本発明に従い、現在の点(x,y)に対し
て、次の点を選ぶ処理を示す図である。
【図11】 本発明に従い、現在の点(x,y)に対し
て、次の点を選ぶ処理を示す図である。
【図12】 本発明に従い、順次ピクセルをプロットす
る処理を示す図である。
【図13】 本発明に従い、幅1の直線を描く動作の処
理フローチャートである。
【図14】 本発明に従い、幅1の円弧を描く処理を示
す図である。
【図15】 本発明に従い、幅1の円弧を描く処理を示
す図である。
【図16】 本発明に従い、幅1の円弧を描く動作の処
理フローチャートである。
【図17】 本発明に従い、幅1の楕円弧を描く処理を
示す図である。
【図18】 本発明に従い、幅1の楕円弧を描く動作の
処理フローチャートである。
【図19】 本発明に従い、幅1の楕円弧を描く動作の
処理フローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 森 昌也 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 (72)発明者 高柳 和則 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の直線を描画する方法であって、(a) 線を描
    くべき始点(Xe,Ye)と終点(Xs,Ys)を指定する段
    階と、(b) 上記始点(Xe,Ye)と上記終点(Xs,Y
    s)を結ぶ直線の方程式Fに基づき、該直線の方程式F
    に平行であって、描くべき上記幅1の直線の上方の輪郭
    線F1及び下方の輪郭線F2を決定する段階と、(c)
    上記始点(Xe,Ye)を現在の点(X,Y)にセットする
    段階と、(d) 上記ディスプレイ上の上記現在の(X,
    Y)に対応するピクセルをプロットする段階と、(e)
    上記現在の点(X,Y)から、上記終点(Xs,Ys)に近
    づくようにX軸成分のみを1だけ変更した点(X1,Y
    1)と、上記現在の点(X,Y)から、上記終点(Xs,Y
    s)に近づくようにY軸成分のみを1だけ変更した点
    (X2,Y2)の両方の点について、上記輪郭線F1と上
    記輪郭線F2の間の領域内に収まるかどうかを決定し、 もし上記(X1,Y1)が上記領域内に収まるなら、上記
    (X1,Y1)を現在の点(X,Y)にセットして、上記段
    階(d)に戻る段階と、(f) もし上記(X1,Y1)が上記領
    域内に収まらず、且つ上記(X2,Y2)が上記領域内に
    収まるなら、上記(X2,Y2)を現在の点(X,Y)にセ
    ットして、上記段階(d)に戻る段階と、(g) もし、上記
    (X1,Y1)の上記(X2,Y2)のどちらも上記領域内に
    収まらないなら、上記現在の点(X,Y)から、上記終
    点(Xs,Ys)に近づくように、X軸成分とY軸成分の
    両方をともに1だけ変更した点を現在の点(X,Y)にセ
    ットして、上記段階(d)に戻る段階と、(h) 現在の点
    (X,Y)が上記終点(Xs,Ys)に到達するまで、上記
    段階(d)乃至段階(g)を繰り返す段階を有する、線描画
    方法。
  2. 【請求項2】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の直線を描画する方法であって、(a) 線を描
    くべき始点(Xe,Ye)と終点(Xs,Ys)を指定する段
    階と、(b) 上記始点(Xe,Ye)と上記終点(Xs,Y
    s)を結ぶ直線の方程式Fに基づき、該直線の方程式F
    に平行であって、描くべき上記幅1の直線の上方の輪郭
    線F1及び下方の輪郭線F2を決定する段階と、(c)
    上記始点(Xe,Ye)を現在の点(X,Y)にセットする
    段階と、(d) 上記ディスプレイ上の上記現在の(X,
    Y)に対応するピクセルをプロットする段階と、(e)
    上記現在の点(X,Y)から、上記終点(Xs,Ys)に近
    づくようにX軸成分のみを1だけ変更した点(X1,Y
    1)と、上記現在の点(X,Y)から、上記終点(Xs,Y
    s)に近づくようにY軸成分のみを1だけ変更した点
    (X2,Y2)の両方の点について、上記輪郭線F1と上
    記輪郭線F2の間の領域内に収まるかどうかを決定し、 もし上記(X2,Y2)が上記領域内に収まるなら、上記
    (X2,Y2)を現在の点(X,Y)にセットして、上記段
    階(d)に戻る段階と、(f) もし上記(X2,Y2)が上記領
    域内に収まらず、且つ上記(X1,Y1)が上記領域内に
    収まるなら、上記(X1,Y1)を現在の点(X,Y)にセ
    ットして、上記段階(d)に戻る段階と、(g) もし、上記
    (X1,Y1)の上記(X2,Y2)のどちらも上記領域内に
    収まらないなら、上記現在の点(X,Y)から、上記終
    点(Xs,Ys)に近づくように、X軸成分とY軸成分の
    両方をともに1だけ変更した点を現在の点(X,Y)にセ
    ットして、上記段階(d)に戻る段階と、(h) 現在の点
    (X,Y)が上記終点(Xs,Ys)に到達するまで、上記
    段階(d)乃至段階(g)を繰り返す段階を有する、 線描画方法。
  3. 【請求項3】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の円弧を描画する方法であって、(a) 線を描
    くべき始点(Xe,Ye)と終点(Xs,Ys)を指定する段
    階と、(b) 上記始点(Xe,Ye)と上記終点(Xs,Y
    s)を結ぶ円弧の方程式Fを決定する段階と、(c) 上記
    円弧の方程式Fに同心的であって、描くべき上記幅1の
    円弧の上方の輪郭線F1及び下方の輪郭線F2を決定す
    る段階と、(d) 上記始点(Xe,Ye)を現在の点(X,
    Y)にセットする段階と、(e) 上記現在の点が上記輪
    郭線F1と上記輪郭線F2の間の領域内に収まるかどう
    かを決定し、もし収まるなら、上記ディスプレイ上の上
    記現在の(X,Y)に対応するピクセルをプロットする
    段階と、(f) 上記現在の点(X,Y)から、上記終点
    (Xs,Ys)に近づくようにX軸成分のみを1だけ変更
    した点(X1,Y1)と、上記現在の点(X,Y)から、上
    記終点(Xs,Ys)に近づくようにY軸成分のみを1だ
    け変更した点(X2,Y2)の両方の点について、上記輪
    郭線F1と上記輪郭線F2の間の領域内に収まるかどう
    かを決定し、もし上記(X1,Y1)が上記領域内に収ま
    るなら、上記(X1,Y1)を現在の点(X,Y)にセット
    して、上記段階(e)に戻る段階と、(g) もし上記(X1,
    Y1)が上記領域内に収まらず、且つ上記(X2,Y2)が
    上記領域内に収まるなら、上記(X2,Y2)を現在の点
    (X,Y)にセットして、上記段階(e)に戻る段階と、(h)
    もし、上記(X1,Y1)の上記(X2,Y2)のどちらも
    上記領域内に収まらないなら、上記(X1,Y1)点を現
    在の点(X,Y)にセットして、上記段階(e)に戻る段階
    と、(i) 現在の点(X,Y)が上記終点(Xs,Ys)に到
    達するまで、上記段階(e)乃至段階(h)を繰り返す段階
    を有する、 円弧描画方法。
  4. 【請求項4】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の円弧を描画する方法であって、(a) 線を描
    くべき始点(Xe,Ye)と終点(Xs,Ys)を指定する段
    階と、(b) 上記始点(Xe,Ye)と上記終点(Xs,Y
    s)を結ぶ円弧の方程式Fを決定する段階と、(c) 上記
    円弧の方程式Fに同心的であって、描くべき上記幅1の
    円弧の上方の輪郭線F1及び下方の輪郭線F2を決定す
    る段階と、(d) 上記始点(Xe,Ye)を現在の点(X,
    Y)にセットする段階と、(e) 上記現在の点が上記輪
    郭線F1と上記輪郭線F2の間の領域内に収まるかどう
    かを決定し、もし収まるなら、上記ディスプレイ上の上
    記現在の(X,Y)に対応するピクセルをプロットする
    段階と、(f) 上記現在の点(X,Y)から、上記終点
    (Xs,Ys)に近づくようにX軸成分のみを1だけ変更
    した点(X1,Y1)と、上記現在の点(X,Y)から、上
    記終点(Xs,Ys)に近づくようにY軸成分のみを1だ
    け変更した点(X2,Y2)の両方の点について、上記輪
    郭線F1と上記輪郭線F2の間の領域内に収まるかどう
    かを決定し、もし上記(X1,Y1)が上記領域内に収ま
    るなら、上記(X1,Y1)を現在の点(X,Y)にセット
    して、上記段階(e)に戻る段階と、(g) もし上記(X1,
    Y1)が上記領域内に収まらず、且つ上記(X2,Y2)が
    上記領域内に収まるなら、上記(X2,Y2)を現在の点
    (X,Y)にセットして、上記段階(e)に戻る段階と、(h)
    もし上記(X1,Y1)の上記(X2,Y2)のどちらも上
    記領域内に収まらないなら、上記(X2,Y2)点を現在
    の点(X,Y)にセットして、上記段階(e)に戻る段階
    と、(i) 現在の点(X,Y)が上記終点(Xs,Ys)に到
    達するまで、上記段階(e)乃至段階(h)を繰り返す段階
    を有する、 円弧描画方法。
  5. 【請求項5】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の直線を描画する方法であって、(a) 線を描く
    べき始点(Xe,Ye)と終点(Xs,Ys)を、Xe<Xs且
    つYe<Ysであるように指定する段階と、(b) ΔX=X
    e−Xs及び、ΔY=Ye−Ysを計算する段階と、(c) 始
    点(Xe,Ye)と終点(Xs,Ys)の間の長さの半分の値
    Nを計算する段階と、(d) 変数XにXsを格納するとと
    もに、変数YにYsを格納する段階と、(e) 変数f1
    に、−N+ΔX−1を格納するとともに、変数f2に、
    N−ΔYを格納する段階と、(f) 座標点(X,Y)をプ
    ロットする段階と、(g) f2≧0かどうかを決定し、も
    しそうなら、f1からΔYを減算し、f2からΔYを減
    算し、Xを1だけ増分する段階と、(h) f2≧0でない
    なら、f1≧0かどうかを決定し、もしそうでないな
    ら、f1にΔXを加算し、f2にΔXを加算し、Yを1
    だけ増分する段階と、(i) 上記段階(h)でf1≧0であ
    ると決定されたなら、f1にΔX−ΔYを加算し、f2
    にΔX−ΔYを加算し、X及びYをともに1増分する段
    階と、(j) 座標点(X,Y)をプロットする段階と、
    (k) 上記座標点(X,Y)が、上記終点(Xs,Ys)に
    到達するまで、上記段階(g)乃至(j)を繰り返す段階を有
    する、 線描画方法。
  6. 【請求項6】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイと、演算処理手段をもち、該演算処
    理手段の演算出力によって、該ディスプレイに、幅1の
    直線を描画する装置であって、(a) 線を描くべき始点
    (Xe,Ye)と終点(Xs,Ys)の値を、記憶する第1の
    手段(このとき、Xe<Xs且つYe<Ys)と、(b) ΔX
    =Xe−Xs及び、ΔY=Ye−Ysを計算しその結果の値
    を記憶する第2の手段と、(c) 始点(Xe,Ye)と終点
    (Xs,Ys)の間の長さの半分の値Nを計算しその結果
    の値を記憶する第3の手段と、(d) 座標点の値X及びY
    のための格納領域と、変数f1及びf2のための格納領
    域を用意する第4の手段と、(e) 上記f1に、−N+Δ
    X−1を格納するとともに、上記f2に、N−ΔYを格
    納する第5の手段と、(f) 座標点(X,Y)をプロット
    する第6の手段と、(g) f2≧0かどうかを決定し、も
    しそうなら、f1からΔYを減算し、f2からΔYを減
    算し、Xを1だけ増分する第7の手段と、(h) f2≧0
    でないなら、f1≧0かどうかを決定し、もしそうでな
    いなら、f1にΔXを加算し、f2にΔXを加算し、Y
    を1だけ増分する第8の手段と、(i) 上記(h)の手段が
    f1≧0であると決定したことに応答して、f1にΔX
    −ΔYを加算し、f2にΔX−ΔYを加算し、X及びY
    をともに1だけ増分する第9の手段と、(j) 上記座標点
    (X,Y)が、上記終点(Xs,Ys)に等しいことを決
    定する第10の手段と、(k) 上記X及びYに、それぞ
    れ、Xe及びYeを設定し、上記第6の手段によって上記
    ディスプレイの座標点(X,Y)をプロットし、上記第
    7乃至第9の手段によってX及びYの値を更新しつつ、
    上記座標点(X,Y)が、上記終点(Xs,Ys)に到達
    するまで、上記第6の手段によって上記ディスプレイの
    座標点(X,Y)のプロットを続けるように制御する第
    11の手段とを具備する、 線描画装置。
  7. 【請求項7】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の楕円弧を描画する方法であって、(a) 線を
    描くべき始点(Xe,Ye)と終点(Xs,Ys)を指定する
    段階と、(b) 上記始点(Xe,Ye)と上記終点(Xs,Y
    s)を結ぶ楕円弧の方程式Fを決定する段階と、(c) 上
    記楕円弧の方程式Fに同心的であって、描くべき上記幅
    1の楕円弧の上方の輪郭線F1及び下方の輪郭線F2を
    決定する段階と、(d) 上記始点(Xe,Ye)を現在の点
    (X,Y)にセットする段階と、(e) 上記現在の点が上
    記輪郭線F1と上記輪郭線F2の間の領域内に収まるか
    どうかを決定し、もし収まるなら、上記ディスプレイ上
    の上記現在の(X,Y)に対応するピクセルをプロット
    する段階と、(f) 上記現在の点(X,Y)から、上記終
    点(Xs,Ys)に近づくようにX軸成分のみを1だけ変
    更した点(X1,Y1)と、上記現在の点(X,Y)から、
    上記終点(Xs,Ys)に近づくようにY軸成分のみを1
    だけ変更した点(X2,Y2)の両方の点について、上記
    輪郭線F1と上記輪郭線F2の間の領域内に収まるかど
    うかを決定し、もし上記(X1,Y1)が上記領域内に収
    まるなら、上記(X1,Y1)を現在の点(X,Y)にセッ
    トして、上記段階(e)に戻る段階と、(g) もし上記(X
    1,Y1)が上記領域内に収まらず、且つ上記(X2,Y2)
    が上記領域内に収まるなら、上記(X2,Y2)を現在の
    点(X,Y)にセットして、上記段階(e)に戻る段階と、
    (h) もし、上記(X1,Y1)の上記(X2,Y2)のどちら
    も上記領域内に収まらないなら、上記(X1,Y1)点を
    現在の点(X,Y)にセットして、上記段階(e)に戻る段
    階と、(i) 現在の点(X,Y)が上記終点(Xs,Ys)に
    到達するまで、上記段階(e)乃至段階(h)を繰り返す段
    階を有する、 楕円弧描画方法。
  8. 【請求項8】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の楕円弧を描画する方法であって、(a) 線を
    描くべき始点(Xe,Ye)と終点(Xs,Ys)を指定する
    段階と、(b) 上記始点(Xe,Ye)と上記終点(Xs,Y
    s)を結ぶ楕円弧の方程式Fを決定する段階と、(c) 上
    記楕円弧の方程式Fに同心的であって、描くべき上記幅
    1の楕円弧の上方の輪郭線F1及び下方の輪郭線F2を
    決定する段階と、(d) 上記始点(Xe,Ye)を現在の点
    (X,Y)にセットする段階と、(e) 上記現在の点が上
    記輪郭線F1と上記輪郭線F2の間の領域内に収まるか
    どうかを決定し、もし収まるなら、上記ディスプレイ上
    の上記現在の(X,Y)に対応するピクセルをプロット
    する段階と、(f) 上記現在の点(X,Y)から、上記終
    点(Xs,Ys)に近づくようにX軸成分のみを1だけ変
    更した点(X1,Y1)と、上記現在の点(X,Y)から、
    上記終点(Xs,Ys)に近づくようにY軸成分のみを1
    だけ変更した点(X2,Y2)の両方の点について、上記
    輪郭線F1と上記輪郭線F2の間の領域内に収まるかど
    うかを決定し、もし上記(X1,Y1)が上記領域内に収
    まるなら、上記(X1,Y1)を現在の点(X,Y)にセッ
    トして、上記段階(e)に戻る段階と、(g) もし上記(X
    1,Y1)が上記領域内に収まらず、且つ上記(X2,Y2)
    が上記領域内に収まるなら、上記(X2,Y2)を現在の
    点(X,Y)にセットして、上記段階(e)に戻る段階と、
    (h) もし、上記(X1,Y1)の上記(X2,Y2)のどちら
    も上記領域内に収まらないなら、上記(X2,Y2)点を
    現在の点(X,Y)にセットして、上記段階(e)に戻る段
    階と、(i) 現在の点(X,Y)が上記終点(Xs,Ys)に
    到達するまで、上記段階(e)乃至段階(h)を繰り返す段
    階を有する、 楕円弧描画方法。
  9. 【請求項9】ピクセルを任意の座標点で個別にプロット
    可能なディスプレイに、コンピュータの演算処理によっ
    て、幅1の円弧を描画する方法であって、(a) 線を描く
    べき始点(Xe,Ye)と終点(Xs,Ys)を指定する段階
    と、(b) ΔXに、Xe−Xsの絶対値を格納するととも
    に、ΔYに、Ye−Ys絶対値を格納する段階と、(c) X
    e−Xs≧0ならsxに1を格納し、そうでないならsx
    に−1を格納する段階と、(d) Ye−Ys≧0ならsyに
    1を格納し、そうでないならsyに−1を格納する段階
    と、(e) 始点(Xe,Ye)と終点(Xs,Ys)の間の長さ
    の半分の値Nを計算する段階と、(f) 変数XにXsを格
    納するとともに、変数YにYsを格納する段階と、(g)
    変数f1に、−N+ΔX−1を格納するとともに、変数
    f2に、N−ΔYを格納する段階と、(h) 座標点(X,
    Y)をプロットする段階と、(i) f2≧0かどうかを決
    定し、もしそうなら、f1からΔYを減算し、f2から
    ΔYを減算し、Xにsxを加える段階と、(j) f2≧0
    でないなら、f1≧0かどうかを決定し、もしそうでな
    いなら、f1にΔXを加算し、f2にΔXを加算し、Y
    にsy増分する段階と、(k) 上記段階(j)でf1≧0で
    あると決定されたなら、f1にΔX−ΔYを加算し、f
    2にΔX−ΔYを加算し、Xにsxを加えるとともにY
    にsyを加える段階と、(l) 座標点(X,Y)をプロッ
    トする段階と、(m) 上記座標点(X,Y)が、上記終点
    (Xs,Ys)に到達するまで、上記段階(i)乃至(l)を繰
    り返す段階を有する、 線描画方法。
  10. 【請求項10】ピクセルを任意の座標点で個別にプロッ
    ト可能なディスプレイと、演算処理手段をもち、該演算
    処理手段の演算出力によって、該ディスプレイに、幅1
    の直線を描画する装置であって、(a) 線を描くべき始点
    (Xe,Ye)と終点(Xs,Ys)の値を、記憶する第1の
    手段と、(b) Xe−Xsの絶対値をΔXに格納し、Xe−
    Xsの符号をsxに格納し、Ye−Ysの絶対値をΔYに
    格納し、Ye−Ysの符号をsyに格納する第2の手段
    と、(c) 始点(Xe,Ye)と終点(Xs,Ys)の間の長さ
    の半分の値Nを計算しその結果の値を記憶する第3の手
    段と、(d) 座標点の値X及びYのための格納領域と、変
    数f1及びf2のための格納領域を用意する第4の手段
    と、(e) 上記f1に、−N+ΔX−1を格納するととも
    に、上記f2に、N−ΔYを格納する第5の手段と、
    (f) 座標点(X,Y)をプロットする第6の手段と、
    (g) f2≧0かどうかを決定し、もしそうなら、f1か
    らΔYを減算し、f2からΔYを減算し、Xにsxを加
    える第7の手段と、(h) f2≧0でないなら、f1≧0
    かどうかを決定し、もしそうでないなら、f1にΔXを
    加算し、f2にΔXを加算し、Yにsyを加える第8の
    手段と、(i) 上記(h)の手段がf1≧0であると決定し
    たことに応答して、f1にΔX−ΔYを加算し、f2に
    ΔX−ΔYを加算し、Xにsxを加えるとともにYにs
    yを加える第9の手段と、(j) 上記座標点(X,Y)
    が、上記終点(Xs,Ys)に等しいことを決定する第1
    0の手段と、(k) 上記X及びYに、それぞれ、Xe及び
    Yeを設定し、上記第6の手段によって上記ディスプレ
    イの座標点(X,Y)をプロットし、上記第7乃至第9
    の手段によってX及びYの値を更新しつつ、上記座標点
    (X,Y)が、上記終点(Xs,Ys)に到達するまで、
    上記第6の手段によって上記ディスプレイの座標点
    (X,Y)のプロットを続けるように制御する第11の
    手段とを具備する、 線描画装置。
JP5217262A 1993-09-01 1993-09-01 線描画方法及び装置 Expired - Lifetime JP2571662B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5217262A JP2571662B2 (ja) 1993-09-01 1993-09-01 線描画方法及び装置
KR1019940018967A KR0147440B1 (ko) 1993-09-01 1994-08-01 폭 1의 선을 묘화하기 위한 방법 및 장치
EP94305774A EP0642101A3 (en) 1993-09-01 1994-08-03 Procedure for drawing wide lines.
US08/298,528 US5502801A (en) 1993-09-01 1994-08-30 Method and system for drawing narrow lines on a computer display

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5217262A JP2571662B2 (ja) 1993-09-01 1993-09-01 線描画方法及び装置

Publications (2)

Publication Number Publication Date
JPH0793569A true JPH0793569A (ja) 1995-04-07
JP2571662B2 JP2571662B2 (ja) 1997-01-16

Family

ID=16701389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5217262A Expired - Lifetime JP2571662B2 (ja) 1993-09-01 1993-09-01 線描画方法及び装置

Country Status (4)

Country Link
US (1) US5502801A (ja)
EP (1) EP0642101A3 (ja)
JP (1) JP2571662B2 (ja)
KR (1) KR0147440B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041118A (ja) * 2015-08-20 2017-02-23 大日本印刷株式会社 パターン編集プログラム、ショットデータ作成プログラム、パターン編集装置、ショットデータ作成装置、パターン編集方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627957A (en) * 1995-01-31 1997-05-06 Compaq Computer Corporation Run slice line draw engine with enhanced processing capabilites
JPH09120450A (ja) * 1995-10-25 1997-05-06 Ricoh Co Ltd 画像処理装置
KR100435258B1 (ko) * 1997-09-03 2004-07-16 삼성전자주식회사 컴퓨터 그래픽의 3차원 직선 그리는 방법
CN108168456B (zh) * 2017-12-27 2020-06-12 南京鑫业诚智能科技有限公司 一种激光扫描检测中的取点方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620287A (en) * 1983-01-20 1986-10-28 Dicomed Corporation Method and apparatus for representation of a curve of uniform width
NL8502643A (nl) * 1985-09-27 1986-04-01 Oce Nederland Bv Werkwijze voor het genereren van lijnstukken.
US5202960A (en) * 1988-11-02 1993-04-13 Digital Equipment Corp Method and apparatus for plotting polygon edges on a pixelized grid
US5095520A (en) * 1990-06-07 1992-03-10 Ricoh Company, Ltd. Method and apparatus for drawing wide lines in a raster graphics system
US5309553A (en) * 1990-06-15 1994-05-03 Mitsubishi Denki Kabushiki Kaisha Apparatus for and method of generating a straight line of pixels in a discrete coordinate system
US5293472A (en) * 1991-04-22 1994-03-08 International Business Machines Corporation Method of generating lines and curves of user specified thicknesses on a raster device
JPH056431A (ja) * 1991-06-27 1993-01-14 Matsushita Electric Ind Co Ltd 輪郭線特徴点検出装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041118A (ja) * 2015-08-20 2017-02-23 大日本印刷株式会社 パターン編集プログラム、ショットデータ作成プログラム、パターン編集装置、ショットデータ作成装置、パターン編集方法

Also Published As

Publication number Publication date
KR950009408A (ko) 1995-04-21
JP2571662B2 (ja) 1997-01-16
EP0642101A3 (en) 1995-09-27
US5502801A (en) 1996-03-26
KR0147440B1 (ko) 1998-09-15
EP0642101A2 (en) 1995-03-08

Similar Documents

Publication Publication Date Title
US6693637B2 (en) Method and apparatus for determining bins to be updated for polygons, including lines
US5847715A (en) Graphics display system including parallel graphics processors executing Bresenham's algorithm
JPH05307610A (ja) テクスチャマッピング方法およびその装置
EP0834830A2 (en) System and method for perspective transformation
KR20050121263A (ko) 화소용 커버리지 마스크 결정
JP2618951B2 (ja) 三次元図形処理装置
US5581796A (en) Processing method and graphics processor for skip drawing a figure
JPH08297737A (ja) 任意図形クリッピング方法および装置
EP0476532A2 (en) Integrated hardware generator for area fill, conics and vectors in a graphics rendering processor
JPH0793569A (ja) 線描画方法及び装置
EP0528524A2 (en) Method and apparatus for scaling line patterns
US5416897A (en) Video graphics controller with selectable pattern features for line draws
JP2634851B2 (ja) 画像処理装置
US6711603B1 (en) Fractional, arithmetic unit, fractional arithmetic method, set-up engine for handling graphic images and computer-readable medium
US20030122850A1 (en) Method and apparatus for determining bins to be updated for polygons, including triangles
JP3060761B2 (ja) 描画装置
US5815163A (en) Method and apparatus to draw line slices during calculation
EP0623232B1 (en) Video graphics controller with improved calculation capabilities
JPH0350686A (ja) 図形処理方式
JP2836617B2 (ja) レンダリングプロセッサ
JPS63208898A (ja) 文字処理装置
JP2782904B2 (ja) 多角形塗りつぶし方式
JP3517982B2 (ja) 図形描画装置
JPH01241681A (ja) 画像処理装置
JPH06348832A (ja) 画像データの位置変換方法