JPH076233A - 曲線を描く装置及び方法 - Google Patents

曲線を描く装置及び方法

Info

Publication number
JPH076233A
JPH076233A JP6097419A JP9741994A JPH076233A JP H076233 A JPH076233 A JP H076233A JP 6097419 A JP6097419 A JP 6097419A JP 9741994 A JP9741994 A JP 9741994A JP H076233 A JPH076233 A JP H076233A
Authority
JP
Japan
Prior art keywords
pixel
line segment
index
central axis
dimension
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
JP6097419A
Other languages
English (en)
Other versions
JP3071357B2 (ja
Inventor
Dean D Ballard
ディー バラード ディーン
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH076233A publication Critical patent/JPH076233A/ja
Application granted granted Critical
Publication of JP3071357B2 publication Critical patent/JP3071357B2/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
    • G06T11/203Drawing of straight lines or curves

Landscapes

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

Abstract

(57)【要約】 【目的】 データ参照用テーブルを使用して曲線をラス
タ化して曲線を描く装置及び方法を提供する。 【構成】 2画素長を超えないほぼ等長の一連の直線線
分で近似するように曲線を細分する。線分が画素の水平
軸を横切れば、参照用テーブルを使用して線分が水平軸
を横切る点からその画素の中心点までの距離を決定す
る。参照用テーブルをアドレスするポインタは、データ
参照用テーブルに必要な乗算を排除するように重み付け
されている3つの索引テーブルのデータ値の合計であ
り、索引テーブルは3つの索引ポインタを使用してアド
レスされる。索引テーブルは画素分解能の縮小も組入れ
てあり、分解能縮小によりもたらされる丸め誤差が最大
になる領域に多くのデータエントリが存在するように非
線形でもある。もし線分が画素の中心の左側で水平軸を
横切っていれば、その画素の論理状態が変化させられ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的には曲線を描く
ための装置及び方法に関し、特定的には曲線をラスタ化
する装置及び方法に関する。
【0002】
【従来の技術】コンピュータシステムは、曲線及び英数
字を表示することができる表示画面もしくは図形プリン
タのような図形表示装置を含むことが多い。図1はグラ
フの形状の曲線2及び一連の英数字3を示し、これらは
典型的なコンピュータ表示画面もしくは図形プリンタ上
に表示させるとができる。図形画像は、表示画面もしく
はプリンタ上に一連の小さいドットとして示される。画
素とは、表示画面もしくはプリンタ上のアドレス可能な
最小要素またはドットを意味している。表示画面もしく
は印刷されたページは、1つの次元内に、典型的には水
平次元内に配列される多くの走査線で作られ、各水平走
査線は1画素の高さである。各水平走査線は一連の画素
からなる。例えば、典型的なレーザプリンタは 300ドッ
ト/インチの分解能を有してい。これは、印刷されたペ
ージがインチ当たり 300本の水平走査線からなり、各水
平走査線がインチ当たり 300個の画素からなっているこ
とを意味する。曲線もしくは英数字は、その曲線及び文
字を近似する画素の群を使用して表示画面もしくはプリ
ンタによって表示される。
【0003】図形表示コンピュータシステムは、一般
に、表示すべき曲線もしくは文字のディジタル表現を記
憶するためのメモリを含んでいる。従来のコンピュータ
システムでは、これらのディジタル値が表示画面もしく
は印刷されるページ上の各画素を表す。図形表示のため
のこの方法は、図形表示の各画素のディジタル値を表す
ためには極めて大きいメモリを必要とする。このような
システムは、先ず曲線を表すディジタル値を生成する時
に遅過ぎ、例えば表示画面上で曲線を回転させたりもし
くは再配置する時のように曲線を処理する時にも遅過ぎ
る。同様に従来のコンピュータシステムはメモリ内の図
形英数字をビット写像として表し、ビット写像内の各ビ
ットを表示画面上の1つの画素に対応させている。個々
の英数字の曲線は、各英数字毎のビット写像データによ
って限定される。これは、ビット写像データを記憶する
ための大容量のメモリを必要とし、英数字を処理するこ
とを困難にしている。これらの問題の故に、多くのコン
ピュータ図形システムは曲線をモデル化するベジェ( Be
zier )スプライン法を使用している。これは英数字を一
連の線、及び TrueType TM文字フォントとして知られる
ベジェスプラインとしてモデル化する方法を含む。
【0004】ベジェ曲線と呼ばれることも多いベジェス
プラインは、曲線及び湾曲面のための数学的構成体であ
る。二次元図形システムのために一般に使用されるベジ
ェ曲線は、図2に示す二次ベジェ曲線4である。二次ベ
ジェ曲線4は、曲線4を限定するために3つの制御点
5、6及び7を必要とする。3つの制御点が指定される
と、ベジェ曲線4が限定される。しかしながら公知のよ
うに、高次ベジェ曲線は二次元、三次元もしくはより高
い次元の高度に複雑な曲線を作ることができる。このよ
うに、複雑なベジェ曲線は少数の点によって表すことが
できる。ベジェ曲線は、ベジェ曲線自体を表示画面上に
表示する場合に、小さい集合のデータ点により1つの曲
線を限定することを可能にするが、曲線を追跡するため
に使用される各画素毎のデータ値を指定しなければなら
ない。曲線上の各及び全データ点の決定は緩速な、計算
的に非効率なプロセスであるから、ベジェ曲線を近似す
ることが極めて有益であることが分かっている。このよ
うにすることの利点は、ベジェ曲線を線分(もしくはラ
インセグメント)の有限集合によって極めて精密に近似
できることにある。ベジェ曲線を適当に近似するために
必要な線分の数は、ベジェ曲線の曲率と表示画面もしく
はプリンタの分解能とを含む幾つかの要因に依存する。
ある曲線を線分の有限集合によって近似することを、
“曲線を描く”と呼ぶ。
【0005】以上の説明は、若干のパラメタは変化する
にしても、他の図形装置並びに表示画面、もしくはプリ
ンタにも等しく適用される。例えば典型的なレーザプリ
ンタ上の画素の大きさは、典型的な表示画面上の画素の
大きさとは異なる。しかしながら、レーザプリンタもし
くは他の何等かの型の図形表示装置上に曲線を描く場合
には、表示画面上にベジェ曲線を描く場合と同じ諸問題
に直面する。ベジェ曲線を描く典型的な方法は、曲がっ
た線を視覚的に表すにはどの画素をターンオンさせ、ど
の画素をターンオフさせるべきかを決定する必要があ
る。ターンオン及びターンオフとは、画素が互いに逆の
2進論理状態を有していることを意味しているだけのこ
とである。特定の表示モード(例えば反転ビデオ)に依
存して、ターンオンした画素が表示画面上に光った領域
を作ったり、もしくは印刷されたページ上に暗い領域を
もたらすことができるのは明白である。本明細書では、
画素のターンオンとは、表示画面もしくは印刷されるペ
ージのその画素の位置に可視ドットを作るプロセスのこ
とを言う。同様に画素のターンオフとは、表示画面もし
くは印刷されるページ上に不可視の特定画素を残すプロ
セスのことを言う。
【0006】従来技術でベジェ曲線を描くためには、先
ず曲線を、曲率及び図形表示装置の分解能に依存する長
さを各々が有する一連の線分に分ける。次に従来技術の
システムは、ベジェ曲線を近似するために使用される線
分を近似するにはどの画素をターンオンさせるべきかを
決定しなければならない。一般的に、線を描く手順は公
知のブレセンハム( Bresenham ) アルゴリズムもしくは
その変形を使用する。曲率の大きいベジェ曲線の部分
は、曲率の小さいベジェ曲線の部分よりも長い線分によ
って近似することができる。しかしながら、可変長の線
分を描くのは、多くの計算を要する緩速な長たらしいプ
ロセスであり得る。従って、長い計算プロセスを必要と
しないでベジェ曲線を描くための装置及び方法に対し強
い要望が存在している。
【0007】
【発明の概要】本発明は、図形表示ユニット上にN+1
制御点によって限定されるN次曲線を描くためのコンピ
ュータシステムで実現される。図形表示ユニットは、第
1の次元内に配列された第1の連の画素と、第2の次元
内に配列された第2の連の画素とを使用して二次元画素
アレイを限定する。図形表示ユニットは、第1の次元内
の画素アレイを走査して曲線を表示し、各画素は第1及
び第2の互いに逆の2進論理状態によって限定される。
コンピュータシステムは、1画素より大きい分解能を有
する選択された測定単位を有する第1及び第2の次元内
の座標系を使用する。コンピュータシステムは、所定数
の画素よりも大きくない長さと、第1及び第2の端点と
を各々が有している複数の線分に曲線を細分するため
に、制御点を使用する線分発生器を備えている。好まし
い実施例では、これらの線分の長さは1もしくは2画素
より長くない。各端点は、第1及び第2の次元内の各点
の位置を表す第1及び第2の座標を有し、これらの座標
は選択された測定単位で表される。画素解析装置は画素
アレイの各第1の画素連内の画素を順次に解析し、線分
の1つが解析中の第1の画素連の第1の中心軸を横切っ
ているか否かを決定する。もし線分が第1の中心軸を横
切っていれば、画素解析装置は第1、第2及び第3の索
引(インデックス)ポインタを生成する。第1の索引ポ
インタは線分の第1の端点から第2の端点までの第1の
次元における距離に対応する。第2のポインタは線分の
第1の端点から第2の端点までの第2の次元における距
離に対応する。第3のポインタは第1の端点から第1の
中心軸までの第2の次元における距離に対応する。第
1、第2及び第3のポインタは選択された単位で表され
る。もし線分の長さが1画素より大きければ、画素解析
装置は線分の何れかが、隣接する第1の画素連の第1の
軸を横切っているか否かをも決定し、もし横切っていれ
ば画素解析装置はその線分を細分して細分された各線分
が1つの第1の中心軸だけを横切るようにする。細分さ
れた各線分は、第1及び第2の次元内の端点の位置を表
す第1及び第2の座標を有する第1及び第2の端点によ
って限定される。
【0008】データ参照用(ルックアップ)テーブル
は、第2の画素連の1つの第2の中心軸から、線分が第
1の中心軸と交差する点までに第1の次元内に存在し得
る距離の範囲に対応し且つ選択された単位で表されてい
る複数の距離値を含む。最終アドレスポインタは、解析
中の第1の画素連内の第1の中心軸と交差する特定の線
分を指し示す。第1、第2及び第3の索引(インデック
ス)テーブルは、この最終アドレスポインタを生成する
ために使用される。各索引テーブルは、第1、第2及び
第3の索引ポインタの存在し得る値の範囲にそれぞれ対
応するように選択された複数の索引テーブル位置を含
む。第1、第2及び第3の索引ポインタはそれぞれ、第
1、第2及び第3の索引テーブル内の特定の索引テーブ
ル位置を指し示す。システムは、第1、第2及び第3の
索引ポインタによって指し示された索引テーブル内の特
定位置からの索引値から最終アドレスポインタを生成す
るアドレス手段をも含む。ラスタライザ( rasterizer )
はデータ参照用テーブルからの距離値を、第1の端点の
第1の次元における座標に加算する。もし距離値と、第
1の端点の第1の次元における座標との合計が第2の中
心軸の値より小さければラスタライザは、その画素の2
進論理状態を変化させる。
【0009】一実施例では、索引テーブルは乗算係数を
含むように事前に重み付けられた索引データ値を含み、
それによって最終アドレスを生成する際の乗算を排除す
る。加算器は、第1、第2及び第3の索引ポインタによ
ってそれぞれ指し示された索引テーブル位置から索引デ
ータ値を受信し、これらの索引データ値を加え合わせて
最終アドレスポインタを生成する。第1、第2及び第3
の索引テーブルは、所定の分解能から、第2の、より低
い分解能へ分解能を低下もしくは縮小させる除算係数を
含む索引値を含むことができる。第1、第2及び第3の
索引テーブル位置は、分解能の低下によって導入される
誤差を補償するために非線形の索引データ値を含むこと
もできる。
【0010】
【実施例】本発明は、曲線を容易に描くための装置及び
方法を提供する。以下に示す諸例はベジェ曲線に関して
いるが、本発明の原理はベジェ曲線に限定されるもので
はなく、どのようなスプラインもしくは曲線にも適用可
能である。ラスタとは、表示領域を均一にカバーする線
の所定のパターンのことである。前述したように、典型
的なラスタは、1画素の高さの一連の水平走査線からな
る。各水平走査線自体は、一連の画素からなる。ラスタ
化( rasterization ) とは、ベジェ曲線を表示画面、プ
リンタ等の上の一連の画素に変換することである。本発
明は、如何なるコンピュータ上にでも容易に実現するこ
とができる。従来システムであろうと、本発明のシステ
ムであろうと、如何なるシステムもどの画素をターンオ
ン及びターンオフさせるかを決定しなければならない。
典型的なラスタは水平方向に走査するから、本発明は各
水平走査線を順次に解析して特定水平走査線内のどの画
素をターンオンさせるか、もしくはターンオフさせるか
を決定する。もしベジェ曲線を近似する線分がある画素
の中心点の左側を通過していれば、その画素は2進論理
状態(即ち、ターンオンもしくはターンオフ)を変化さ
せる。線分近似が画素の中心点の左側を通過して2進論
理状態を変化させられた画素にその水平走査行内で後続
する複数の画素の中の1つの画素の中心点の左側をある
線分近似が通過するまでは、上記後続する複数の画素に
上記画素に割り当てられた2進論理状態と同一の2進論
理状態が割り当てられる。上記1つの画素の中心点の左
側をある線分近似が通過した時点で、上記1つの画素
(及びその後の複数の画素)には全て上記1つの画素と
同一の2進論理状態が割り当てられる。
【0011】例えば、図3の水平走査線24は、始めは
全ての画素がターンオフにされている。画素25aは、
その中心点27の左側をある線分26が通過している。
従って、ラスタ化プロセスは画素25aの論理状態を変
化させ、この例ではそれをターンオンさせる。画素25
a以降の画素25b、25c及び25dも、線分がこれ
らの画素を通過していないのでターンオンにされてい
る。しかしながら、線分28が画素25eの中心点27
の左側を通過しているので、ラスタ化プロセスは画素2
5eの論理状態を変化させ、それをターンオフさせる。
画素25eに後続する画素25f、25g及び25h
も、線分がこれらの画素25f、25g及び25hを通
過していないのでターンオフにされる。このプロセスは
全ての水平走査の行に対して繰り返される。ラスタ化プ
ロセスは、線分が何処で画素を通過しているかを正確に
決定しなければならない。線分が何処で画素を通過して
いるかを正確に決定するために、システムは1画素より
細かい分解能を用いて計算を遂行する。典型的には、計
算は1/64 画素分解能を用いて遂行される。線分26の
端点29a及び29bは、それぞれ1対の座標(x1,y
1 )及び(x2,y2 )によって限定される。画素の中心
点27から線分26までの水平距離をDx と定義する。
【0012】従来技術の若干のシステムは、このDx
データ値を含む参照用テーブルを使用することを試みて
いる。従来技術の参照用テーブルは典型的に、その参照
用テーブルへの索引としてベジェ曲線線分の端点の座標
を使用している。従って従来技術のシステムは、Dx
値を決定するためには4つの分離した索引(即ちx1
1 、x2 及びy2 値)を必要とする。もし従来技術の
システムが 1/64 画素分解能計算を遂行し、4つの索引
を使用するものとすれば、644 の考え得るデータ値が存
在することになる。 1600 万を超えるデータ値を有する
データテーブルは明らかに実用的ではない。これに対し
て、本発明は、従来技術が典型的に使用しているx1
1 、x2 及びy2 値を使用する代わりに、3つの索引
ΔxL 、ΔyL 及びΔsy だけを使用するので、探索プ
ロセスはより扱い易くなる。索引ΔxL 、ΔyL 及びΔ
y に関しては後述する。ベジェ曲線を近似する線分が
全て極めて短いので、この応用ではテーブル探索操作
(ルックアッププロセス)を使用する。本発明の線分は
全て、それらの長さが2画素より大きくないことが保証
されている。これはDx の値を正確に決定するために必
要なデータ値の数を最少にする。更に、ブレセンハム技
術に見られる可変線分長とは異なって、これらの線分は
全て、ほぼ同一の長さである(即ち、2画素長より短
い)。このため参照用テーブルを便利に使用することが
できる。また更に、現在では好ましい実施例の参照用テ
ーブルの分解能は 1/8 に縮小される。従って、本発明
のデータ参照用テーブル内のデータ値の合計数は 1377
である。このデータテーブルの大きさは扱い易いもので
ある。
【0013】図4に示す本発明を実現するコンピュータ
システム2は、キーボード11及び表示画面12を備え
たコンピュータ10を有している。図形画像は表示画面
12上に表示させることはできるが、コンピュータシス
テム2はプリンタ13のような他の図形装置を含むこと
もできる。図形データはキーボード11によって入力さ
れるが、コンピュータシステム2はマウス14もしくは
離散化タブレット15等のような他の位置決め装置を含
むことができる。本発明の原理は、図形画像の表示及び
印刷に関する。図5に示すように、コンピュータ10は
中央プロセッサユニット(CPU)16、メモリ17、
及び情報及び制御信号を伝送するバス18を有してい
る。またコンピュータ10は、コンピュータ10とキー
ボード11とを結合するキーボードインタフェース19
をも有している。他のインタフェースには、コンピュー
タ10と表示画面12とを結合する表示インタフェース
20、コンピュータ10とプリンタ13とを結合するプ
リンタインタフェース21、コンピュータ10とマウス
14とを結合するマウスインタフェース22、及びコン
ピュータ10と離散化タブレット15とを結合するディ
ジタイザインタフェース23が含まれる。これらの各イ
ンタフェース19、20、21、22及び23は、バス
18によってCPU16及びメモリ17に接続されてい
る。各インタフェースは、コンピュータ10と共にそれ
ぞれに結合された装置を適切に動作させるための適切な
データ及び制御信号を供給する。
【0014】ベジェ曲線のためのベジェ制御点は、公知
の多くの方法で決定することができる。例えば、もし表
示すべき図形画像が TrueType TMフォント文字のような
キーボード11を使用してタイプされた英数字であれ
ば、ベジェ制御点は表示すべき特定の文字及びフォント
と、その文字を表示すべき位置とから決定される。代替
として、ベジェ曲線はマウス14、もしくは離散化タブ
レット15を使用して作成することもできる。ベジェ制
御点の実際の生成は公知であるので、説明は省略する。
図6に、本発明のコンピュータシステム2のシステム部
分30を機能ブロック線図で示す。メモリ17(図5)
内に記憶されているベジェ制御点32がシステム部分3
0へ供給される。コンピュータ10内の線分発生器34
はベジェ制御点32を受信して、ベジェ曲線を近似する
一連の線分を生成する。計算の都合上、システム部分3
0は各画素を所定数の副画素に分割する。本発明は各画
素を 64の副画素に分割して 1/64 画素分解能を得てい
るが、後述するように、データ記憶要求を低下させるた
めにこれらの数は 1/8 に丸められる。本発明の好まし
い実施例では、ベジェ曲線は、長さが2画素より長くな
い等長の一連の線分に細分される。しかしながら、線分
発生器34は長さが1画素よりも長くない線分を生成す
ることもできる。2画素長線分は1画素長線分より迅速
にラスタ化されるが、プロセスは後述するような余分な
処理段階を必要とする。他の線分長も使用できることを
理解されたい。例えば、3もしくはそれ以上の画素の長
さの線分を使用することができるが、データ参照用テー
ブルの大きさが増大し、システム部分30は後述する余
分な処理段階を遂行しなければならない。短い線分だけ
を使用することによって、本発明は、特定画素をターン
オンさせるべきか、もしくはさせないべきかを決定する
ためにテーブル探索操作を使用することができる。この
方法は、可変線分長を描くブレセンハム技術を使用する
必要性を排除する。
【0015】画素解析装置36は、水平走査行内の各画
素を順次に解析する。もしある線分がある画素の中心点
を通過している水平軸を横切っていると画素解析装置3
6が判定すると、その特定画素はより詳細に解析しなけ
ればならない。各水平走査行毎の水平軸は、その水平走
査行内の各画素の中心点を通過している仮想水平直線に
よって限定される。より詳細な解析を必要とする画素に
関して画素解析装置36は、その線分の端点と、1つの
端点からその画素の中心点までの垂直距離とを使用し
て、図6に入力線で示されている3つの索引ポインタ3
7、39及び41を決定する。3つの索引ポインタ3
7、39及び41の値を決定するために使用される方法
に関しては後述する。索引ポインタ37、39及び41
はそれぞれ、3つの索引テーブル38、40及び42の
集合内の位置を指し示す。索引テーブル38、40及び
42はコンピュータ10のメモリ17(図5)内に記憶
されている。3つの索引ポインタ37、39及び41に
よって指し示された索引テーブル38、40及び42内
の特定位置に含まれる3つの値は、加算器44によって
加え合わされる。加算器44によって生成された合計
は、データ参照用テーブル46内の1つの位置を指し示
すデータポインタ45になる。データ参照用テーブル4
6もコンピュータ10のメモリ17内に記憶されてい
る。データポインタ45によって指し示されたデータ参
照用テーブル46内の特定の位置に含まれている値は、
その特定画素をターンオンさせるべきか、もしくはター
ンオフさせるべきかを決定するために使用される。
【0016】コンピュータ10内のラスタライザ48
は、画素解析装置36及びデータ参照用テーブル46が
生成するデータを使用して、水平走査行内の画素をター
ンオンさせるために使用される画素制御データを生成す
る。前述したように、もし線分がある画素の中心の左側
において特定水平走査行の水平中心線を横切っていれば
その画素はターンオンされる。線分が別の画素の中心の
左側において水平中心線を横切っているとシステム部分
30が決定するまでは、水平走査行内の後続する1もし
くは複数の画素もターンオンされる。この別の画素及び
その水平走査行内の後続する全ての画素がターンオフさ
れ、このプロセスは各水平走査線毎に繰り返される。シ
ステム部分30は、ある線分がある画素の中心の右側に
おいて水平中心線を横切っていることを検出するような
異なる判定基準も使用できることを理解されたい。画素
制御データは、図形画像を生成する図形表示ユニット5
0によって受信される。前述したように、図形表示ユニ
ット50は、図4に示す表示画面12もしくはプリンタ
13等のような如何なる図形装置であっても差し支えな
い。画素制御データは、特定の図形装置のためのインタ
フェースが要求するフォーマットで図形表示ユニット5
0へ供給される。例えば、もし図形表示ユニット50が
表示画面12であれば、画素制御データは表示インタフ
ェース20によって処理される。同様に、もし図形表示
ユニット50がプリンタ13であれば、画素制御データ
はプリンタインタフェース21によって処理される。
【0017】本発明の方法は、ベジェ曲線を線分発生器
34によって一連の直線線分に細分することを含む。こ
れらの線分は、2画素よりも短い等しい長さである。シ
ステム部分30は、どの線分の長さも2画素より長くな
ることがないように、ベジェ曲線を細分する最少のステ
ップ数を決定しなければならない。図7のベジェ曲線1
16に対してこのプロセスを遂行するための本発明の方
法を図8に流れ図で示す。図7に例示の目的で示されて
いるベジェ曲線は、3つの制御点によって限定される二
次ベジェ曲線である。しかしながら、本発明の装置及び
方法は、如何なる次数のベジェ曲線を描くのにも等しく
有用である。図7に示すように、ベジェ曲線116は、
3つのベジェ制御点118、120及び122によって
限定される。端点とも呼ばれる制御点118は、図形表
示ユニット50(図6)上の位置を限定する座標(x1,
1 )を有している。同様に、ベジェ制御点120及び
122は座標(x2,y2 )及び(x3,y3 )をそれぞれ
有している。プロセスの開始点100においては、ベジ
ェ制御点118、120及び122は既に限定され、メ
モリ17(図6)内に記憶されている。前述したよう
に、システム部分30は 1/8 画素分解能に丸める前に
1/64 画素分解能で計算を遂行する。従って、ベジェ制
御点の座標は 1/64 画素分解能でシステム部分30へ供
給される。
【0018】図8の段階102においては、線分発生器
34(図6)が、垂直及び水平の両方向におけるベジェ
制御点間の距離を決定する。システム部分30は1つの
ベジェ制御点から次のベジェ制御点までの“X”及び
“Y”の変化の絶対値を別々に決定する。次式はこの演
算を遂行する1つの技術を示す。 Δx1 =|x1 −x2 |, Δy1 =|y1 −y2 |, Δx2 =|x2 −x3 |,及び Δy2 =|y2 −y3 |, 図7のベジェ曲線116の場合には、段階102によっ
て次の値が計算される。Δx1 =5、Δy1 = 17 、Δ
2 = 23 、及びΔy2 =6。ベジェ制御点間の距離を
決定するための他の公知の方法も本発明と共に使用でき
ることを理解されたい。より高次のベジェ曲線の場合に
は、より多くの制御点、従ってより多くのΔx及びΔy
値が存在する。N次ベジェ曲線の場合には、N+1制御
点が存在するので、値はΔx1 乃至ΔxN 、及びΔy1
乃至ΔyN になる。段階102においてシステム部分3
0は全ての距離のための値Δx1 乃至ΔxN 、及びΔy
1 乃至ΔyN を決定する。爾後の諸段階は、如何なる次
数のベジェ曲線に対しても同じように遂行される。
【0019】段階104においてシステム部分30は、
上述したようにして決定されたΔxもしくはΔy値の何
れかの最大値を選択する。段階104はベジェ曲線11
6の4つの値の最大値としてΔx2 = 23 を選択するこ
とになる。もし1画素長の線分を望むのであれば、段階
104における最大値に2を乗じて、ステップの最大数
を決定する。もし他の線分長を使用するのであれば、段
階104は相応に調整される。コンピュータにおける計
算は2進数で遂行されるので、システム30は段階10
6において、段階104で選択し値を次に最高の2進数
に切り上げて丸め、爾後の計算がコンピュータによって
より容易に遂行できるようにする。従って、現在では好
ましい実施例に必要とされるステップの最少数は2の累
乗である。この値を切り下げて丸めると、線分が2画素
長よりも大きくなる恐れを生じるので、この値は決して
切り下げられないことに注目されたい。ベジェ曲線11
6の場合、段階106は 23 を次に最高の2の累乗であ
る 32 へ切り上げる。段階108は、必要ステップの最
少数を決定するプロセスを終わらせる。ステップの最少
数が上述したようにして決定されると、ベジェ曲線は順
方向差分( forward differencing )として知られる技
術によって線分に細分される。順方向差分プロセスは公
知であり、従って説明は省略する。ベジェ曲線を、各々
が2画素よりも短い等しい長さの一連の短い線分に細分
した後に、各線分の端点の座標を決定する。
【0020】線分の端点を決定した後に、その線分が通
過している画素をターンオンさせるべきか否かを決定す
る必要がある。画素解析装置(図6)は、ある線分が水
平走査行の水平軸を横切っている画素に出会うまで各水
平走査行を順次に解析する。例えば図9において、ベジ
ェ曲線60及び62は英数字もしくは何等かの図形曲線
のような図形対象64の一部を形成しているものとす
る。図形対象64の上側及び下側の境界をそれぞれ画定
しているベジェ曲線60及び62は、幾つかの水平走査
行66a−jを占めている。図10に拡大して示す図形
対象64の部分68は、5つの水平走査行66a乃至6
6eの部分をカバーしている。図10で斜線を施した部
分は、図形部分68を正確に表示するために理論的に光
らせるべき表示画面12の部分を示している。しかしな
がら、画素の一部分を光らせることはできず、画素全体
を光らせることができるだけである。図11には、それ
ぞれの長さが2画素より短い直線線分70a−d及び7
2a−dを示してある。これらの線分は図10の拡大さ
れた部分68を近似するために線分発生器36(図6)
によって生成される。線分70a−dは部分68の上側
境界60を近似し、線分72a−dは部分68の下側境
界62を近似する。図形表示を正確に近似するために、
システム部分30はベジェ曲線60を近似する線分70
a−dより下の画素と、ベジェ曲線62を近似する線分
72a−dより上の画素とを光らせる。現在では好まし
い実施例では、もし画素の中心点が線分70a−d及び
72a−dによって画定される境界内にあれば、その画
素が光るようにされる。もしある画素が位置している水
平走査行の水平軸をある線分が横切らなければ、その画
素は解析する必要がない。その特定の画素は、その水平
走査行内で線分が水平軸を横切っている他の画素に基づ
いてターンオンもしくはターンオフされる。図11で斜
線を施した領域は、システム部分30によって光らされ
る画素を示している。
【0021】前述したように、水平走査行内のある画素
がターンオンされると、ある画素の中心86の左側にお
いて水平軸を横切る次の線分をシステム部分30が見出
すまでは、その水平走査行内の後続する全ての画素もタ
ーンオンされる。これは、これらの後続画素の中心点が
全て線分によって画定される図形対象の境界内に含まれ
るからである。同様に、もし水平走査行内の複数の画素
がターンオンされ、ある画素の中心点の左側において水
平中心線をある線分が通過しているような画素をシステ
ム部分30が見出すと、その画素及びそれに後続する画
素はターンオフされる。これは、その画素及びそれに後
続する画素の中心点が線分によって画定される図形対象
の境界内に含まれないからである。このように、画素の
中心86の左側において水平軸を横切る線分は画素の論
理状態(即ち、光っているから光らないへ、または光っ
ていないから光るへ)を変化させるのである。例えば、
図11の例では、画素78bが上述した解析に基づいて
ターンオンされる。画素78c−dも、これらの画素の
水平軸76を線分が通過していないので、ターンオンさ
れる。しかし、画素78fとその水平走査行66b内の
後続画素は、線分70dが画83の中心86の左側にお
いて水平軸76を横切っているためにターンオフされ
る。
【0022】同様に、線分72a−dは、図形対象64
の下側境界(図9)を構成しているベジェ曲線62を近
似している。システム部分30は上述した解析と同じ解
析を行う。例えば、水平走査行66eの画素80aは、
図11に示す図形部分68の外(左)側の画素の解析の
結果としてターンオンされている。画素80bは、線分
72bがその水平走査行66eの水平軸76を画素80
bの中心86の左側において横切っているので、ターン
オフされる。これは、画素80bの中心86が線分72
bによって画定される下側境界内に含まれないことを指
示している。後続する画素80c−eは、水平走査行6
6eのこれらの画素内の水平軸76を線分72c及び7
2dが横切っていないので、光らない。水平走査行66
eの画素80fは、線分72dがその水平走査行66e
の水平軸76を画素80fの中心86の左側において横
切っていて、画素80fの中心86が線分72dによっ
て画定される境界内に含まれることを指示しているの
で、光らされる。このプロセスは全ての水平走査行に対
して繰り返される。部分68の水平走査行66c−d内
の全ての画素が図11では光っていることに注目された
い。図9に示してあるように、水平走査行66c−d内
の画素は、部分68の外(左)側の画素の解析によって
光っているのである。しかしながら、上記解析と同一の
解析はラスタの各水平走査行に対して遂行される。
【0023】代替として、システム部分30は、始めに
線分70a−d及び72a−dを解析して、どの線分が
水平走査行66a−eの水平軸を横切っているかを決定
することができる。次いで、システム部分30は、線分
が水平軸を横切っている画素だけを解析することができ
る。この方法は分離した解析を必要とするが、各水平走
査行内の各画素を解析する必要性を排除する。現在では
好ましい実施例ではシステム部分30は、単に、線分の
端点の“Y”座標と、現在解析中の水平走査行の水平軸
76の“Y”座標とを解析することによって、線分が水
平軸を横切っているか否かを決定する。もし線分70a
−dの1つが水平軸を横切っていれば、以下に説明する
ようにその線分の端点の“Y”座標は水平軸の“Y”座
標を包含する。例えば、図12に拡大して示す線分70
bを考える。図12には、図11の画素78a及び78
cも拡大して示されている。線分70bは座標(x1,y
1 )及び(x2,y2 )をそれぞれ有する端点90及び9
2によって限定される。線分70bが水平走査行66b
の水平軸76を横切っているか否かを決定するために、
システム部分30は水平軸76の“Y”座標が端点90
及び92の最も左及び最も右の“Y”座標内にあるか否
かを(即ち、水平軸76の“Y”座標の値が端点90及
び92のy1 及びy2 の“Y”値の間にあるか否かを)
決定する。図12の例では、水平軸76の“Y”座標の
値はy1 よりは大きいが、y2 よりは小さい。従って、
線分70bは水平軸76を横切っていることが分かる。
線分70bが水平軸76を横切っているのであるから、
システム部分30は線分70bが水平軸76を横切る点
を精密に決定しなければならない。即ち、システム部分
30は、画素78bの中心86から、線分70bが水平
軸76を横切る点88までの水平距離Dx を決定しなけ
ればならない。もし線分70bが画素78bの中心86
の左側において、もしくは中心において水平軸76を横
切っていて、中心の右側において横切っているのでなけ
れば、画素78bは光らされる。距離Dx が決定される
と、そのDx は端点90の“X”座標x1 に加算されて
線分70bが水平軸76を横切る点が決定される。もし
得られた和が画素78bの中心86の“X”座標より小
さいか、もしくは等しければ、線分は画素78bの中心
86の左側において水平軸76を横切っているのであ
る。従って、画素78bは光らされる。本発明は、距離
x を決定するための簡単且つ高速の技術を提供する。
【0024】システム部分30は1組の参照用テーブル
を使用して、画素の中心86の左側で線分が特定の水平
走査行の水平軸76を横切っているか否かを決定する。
線分の垂直及び水平方向における長さ、及び1つの端点
から水平軸76までの垂直距離が参照用テーブルに使用
される3つの索引である。システム部分30は、上述し
たようにして線分の垂直方向の長さΔyL と、線分の水
平方向の長さΔxL とを決定する。線分の1つの端点か
ら水平軸までの垂直距離Δsy は、特定水平走査行の水
平軸の“Y”成分から最左端の端点の“Y”成分を減算
することによって容易に決定される。線分が水平軸を横
切る点から画素の中心点までの水平距離Dx は、データ
参照用テーブル46(図5)を使用して決定される。D
x を決定するためにシステム部分30が使用する方法
は、図12に関連して図13及び14の流れ図に示され
ている。図12の端点90及び92の座標は、上述した
線分発生プロセスによってシステム部分30に知らさ
れ、図13の段階200においてシステムに供給され
る。画素解析装置36は画素を詳細に解析して、その画
素の水平軸76を横切る線分を含むか否かを決定する。
判断ブロック202において、線分の“Y”座標が調べ
られ、その線分が水平軸76(その“Y”座標は分かっ
ており、値yscanによって表されている)を横切ってい
るか否かが決定される。もし判断ブロック202の結果
が NO であれば、段階204においてシステムはその水
平走査行内の次の画素へ移動する。もし判断ブロック2
02の結果が YES であれば画素解析装置36は上述し
た画素の詳細な解析を遂行する。
【0025】システム部分30は画素を詳細に解析する
前に判断ブロック206において、その線分が、隣接す
る2つの水平走査行内の水平軸76を横切っているか否
かを決定する。もし判断ブロック206の結果が YES
であれば、段階208において公知の何れかのプロセス
によってその線分は半分に細分される。残りの諸段階は
個々の各線分に対して独立的に遂行される。もし線分の
長さが1画素よりも大きくならないようにシステム部分
30がベジェ曲線を細分していれば、この段階は不要で
あることを理解されたい。図12の例では、線分70b
は2つの水平走査線76を横切ってはいないから、判断
ブロック206の結果は NO である。索引ΔxL 、Δy
L 及びΔsy は、段階210において線分の端点から容
易に計算される。現在では好ましい実施例では、もし必
要ならば、ベジェ曲線の端点を交換してベジェ曲線を逆
さまに描かせることに注目されたい。従って、ΔyL
びΔsy の値は常に正であり、これは索引テーブル40
及び42(図6)の考え得るデータ値の数及びコンピュ
ータ10のメモリ17(図5)に要求される記憶容量を
減少させる。ベジェ曲線を逆さまに描く結果としてΔx
L の値は、線分の勾配に依存して正もしくは負であり得
る。従って、索引テーブル38(図6)内の値ΔxL
ためのデータ値は2倍に多くなる。
【0026】図12の例では、索引ΔxL はx1 からx
2 を減算することによって計算される。同様に、索引Δ
L はy1 からy2 を減算することによって計算され
る。線分の始まり(即ち(x1,y1 ))から、垂直方向
における走査線の中心点までの距離索引Δsy は、y
scanからy1 を減算することによって計算される。解析
中の画素の中心86の座標をxscan及びyscanと呼ぶ。
前述したようにこれらの計算は 1/64 画素分解能で遂行
されるが、これらの値は以下に説明するように 1/8画素
分解能に丸められる。段階212において、システム部
分30は計算された索引ΔxL 、ΔyL 及びΔsy をそ
れぞれ、索引テーブル38、40及び42を指し示すポ
インタとして使用する。索引テーブル38、40及び4
2内に含まれるデータ値は段階212におけるテーブル
探索操作によって決定される。索引ΔxL 、ΔyL 及び
Δsy によってそれぞれ指し示された位置の索引テーブ
ル38、40及び42内に含まれているデータ値は、図
14の段階214において互いに加え合わされる。段階
214で得られた値がデータポインタ45である。デー
タポインタ45は、Dx の値が記憶されているデータ参
照用テーブル46内の位置を指し示す。システム部分3
0は段階216においてテーブル探索プロセスを使用し
てDx の値を決定する。
【0027】図14の段階218において、値Dx が値
1 に加算される。判断ブロック220においてシステ
ム部分30は、Dx とx1 との合計が解析中の画素の中
心86の“X”座標xscanより大きいか否かを決定す
る。もし線分が画素78の中心86の右側において水平
軸76を横切っていれば、判断ブロック220の結果は
NO であり、解析中の画素の論理状態は変わらない。シ
ステム部分30は図13の段階204へ戻されてその水
平走査行内の次の画素を解析する。もし線分が画素の中
心86の左側において水平軸76を横切っていれば、判
断ブロック220の結果は YES であり、その画素の2
進論理状態は段階222において変化させられる。上述
したように2進論理状態の変化はオフからオンへ、もし
くはオンからオフへの何れかであることを理解された
い。前述したように、一旦水平走査行の2進論理状態が
変化すると、別の線分が水平軸を横切るのをシステム部
分30が見出すまで、その新しい2進論理状態に留ま
る。新しい線分を詳細に解析することによって、それら
の画素の2進論理状態を再度変化させるか否かが決定さ
れる。システムは図13の段階204へ戻り、曲線内の
新しい線分を解析する。前述したように、索引ΔxL
ΔyL 及びΔsy は参照用テーブル46内のアドレスを
決定するために使用される。公知のようにコンピュータ
は、コンピュータ10のメモリ17(図5)内の連続す
る位置を占める線形アレイ内にデータを記憶することが
できる。最終アドレスの計算には、典型的には索引の値
を乗算し、加算して最終アドレスを生成する必要があ
る。前述したように、ベジェ曲線は下から上へ描かれる
のでΔyL 及びΔsy は正の数になるが、ΔxL はベジ
ェ曲線を近似する線分の勾配に依存して正にも負にもな
り得る。システム部分30は1/64 画素分解能で計算を
遂行するから、索引ΔyL 及び索引Δsy が存在し得る
範囲は0乃至 63 であり、索引ΔxL の値は+ 63 乃至
− 63 の範囲内にある。最終アドレスは異なる索引に重
み付けし、各索引に重み付けして得られた重要度を加え
合わせることによって計算することができる。索引Δx
L 、ΔyL 及びΔsy について、最終アドレスは次式に
よって計算することができる。
【0028】 アドレス=基底+( 256*ΔxL )+( 16 *ΔyL )+Δsy (1) ここに基底はコンピュータ10のメモリ17内に記憶さ
れているデータテーブルの基底アドレスであり、Δ
L 、ΔyL 及びΔsy はそれぞれ3つの索引テーブル
38、40及び42のための値である。事実上、索引テ
ーブルは基底アドレスにオフセットされている。索引Δ
L の代わりに索引Δsy に 64 を乗ずるというような
他の手法で索引に重み付けできることを理解されたい。
上例に示した最終アドレスの計算には2回の別々の乗算
と、2回の加算が必要である。公知のように、乗算には
時間がかかる。乗算を排除するために、索引テーブル3
8、40及び42(図6)内に含まれるデータ値内に乗
算係数を含ませるべくシステム部分30は3つの索引Δ
L 、ΔyL 及びΔsy に対する索引テーブル38、4
0及び42を事前に重み付けする。各索引テーブルは、
乗算計算を遂行済のデータ値を含む。即ち、索引テーブ
ル38、40及び42内に含まれるデータ値が乗算計算
を含むように事前に重みが付けられているのである。短
いテーブルを探索するルーチンは、上記(1)式に記載
のアドレス公式に示された乗算計算よりは高速とするこ
とができる。
【0029】事前重み付けの概念を示すために、図6の
索引テーブル38、40及び42の一部である表1を考
える。表1は上式(1)によって事前に重み付けしたデ
ータエントリを含む。 表1 事前重み付けした索引テーブル 索引 索引テーブル値 ポインタ値 ΔxL ΔyL Δsy 0 0 0 0 1 256 16 1 2 512 32 2 3 768 48 3 4 1024 64 4 5 1280 80 5 6 1536 96 6 7 1792 112 7 8 2048 128 8 9 2304 144 9 10 2560 160 10 11 2816 176 11 12 3072 192 12 13 3328 208 13 14 3584 224 14 15 3840 240 15 表1に示す例では、もし索引ΔxL 、ΔyL 及びΔsy
の索引ポインタ37、39及び41の値がそれぞれ2、
3及び4であるものとすれば、結果は、256 +192 +4
=452 になる。この結果が、データ参照用テーブル46
内のDx の値を記憶している位置を指し示すのに使用さ
れるデータポインタ45である。乗算計算の代わりに事
前に重み付けした参照用テーブルを使用すると、ベジェ
曲線を描く速度が増加する。
【0030】1/64 画素分解能と3つの索引を使用する
と、通常ならばデータ参照用テーブル46内のデータ値
は( 64 × 64 × 129=) 528,384 になる。この分解
能を使用するとデータ参照用テーブルは大き過ぎるもの
になる。従って本発明は座標値を 1/8 画素分解能に丸
めているのである。あり得る座標値の数を 64 から8へ
減少させることによって、データ参照用テーブル46内
のデータ値の数が減少する。各索引テーブル40及び4
2毎に0から8までの範囲の9つの考え得るデータ値が
存在する。索引テーブル38には0を含む−8から+8
までの範囲の 17 の考え得るデータ値が存在する。従っ
てデータ参照用テーブル46には(9×9× 17 =)1,
377 のデータ値が存在する。これはコンピュータ10内
のメモリ17(図5)に対する総合要求を低下させる。
1/64 画素分解能から 1/8 画素分解能まで縮小させる
のは、座標値を8で除し、剰余を捨てることによって達
成することができる。しかしながら、除算は時間のかか
る計算である。代替として、システム部分30は、 1/6
4 画素分解能におけるデータ値を3ビット右へけた送り
して 1/8 画素分解能が得られるようにすることによっ
て、 1/64 画素分解能から 1/8 画素分解能までの縮小
を遂行することができる。現在では好ましい実施例で
は、索引テーブル38、40及び42は 1/8 画素分解
能まで縮小されたデータ値を含んでいる。即ち、索引テ
ーブル40及び42内に0から 63 までの範囲のデータ
値を含ませ、索引テーブル38内に−63から+63までの
データ値を含ませるのではなく、システム部分30はそ
れぞれ0から8までの範囲のデータ値と、−8から+8
までの範囲のデータ値とを使用するのである。
【0031】以下の表2は、表1のデータ値を変更して
1/64 画素分解能から 1/8 画素分解能までの縮小と、
データ参照用テーブル46内の最終アドレスを決定する
際の乗算計算を排除するために事前に重み付けを行った
データ値を示している。 表2 分解能縮小を用い事前重み付けした索引テーブル 索引 索引テーブル値 ポインタ値 ΔxL ΔyL Δsy 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 256 16 1 5 256 16 1 6 256 16 1 7 256 16 1 8 256 16 1 9 256 16 1 10 256 16 1 11 256 16 1 12 512 32 2 13 512 32 2 14 512 32 2 15 512 32 2 表2に示す例では、もし索引ΔxL 、ΔyL 及びΔsy
の索引ポインタ値がそれぞれ2、3及び4であるものと
すれば、結果は 128+ 64 +1 =193 になる。この結果
が、データ参照用テーブル46内のDx の値を記憶して
いる位置を指し示すのに使用されるデータポインタ45
である。1/8 画素分解能に縮小しても索引テーブル3
8、40及び42の大きさには影響を与えることはない
が、データ参照用テーブル46の大きさが大幅に縮小さ
れることに注目されたい。即ち、分解能の縮小は、本発
明が要求するメモリ17(図5)の量の節約をもたらし
ているのである。
【0032】表2に示すデータ値は、線形に配列された
1/64 画素分解能から 1/8 画素分解能への縮小と、乗
算重み付けとを提供している。しかし線形配列は 1/64
画素分解能から 1/8 画素分解能への丸めに起因してD
x の値に大きい誤差をもたらす。これは、線分の勾配が
小さい(即ちΔxL が大きくΔyL が小さい)ような状
況において特に明白である。誤差が可変であることを示
すために、図15に示すような大きいΔxL と小さいΔ
L とを有し、Dx が0に等しい線分250を考える。
図16に示すように、丸めによる端点252及び25
2’の位置の僅かな変化がDx に大きい変化をもたらし
得る。これに対して図17に示す線分254は小さいΔ
L と小さいΔyL とを有し、Dx は0に等しい。図1
8に示すように端点256及び256’の位置に僅かな
変化があってもDx には重大な変化は生じない。実際に
は、丸め誤差は図16及び18に示す程重大ではない。
図16及び18に示す誤差は、誤差の効果を誇張してい
るに過ぎない。システム部分30は、索引テーブル3
8、40及び42(図6)内に非線形データ値を意図的
に作ることによって丸め誤差を補償する。索引テーブル
38、40及び42(図6)内の非線形データ値の効果
は、丸め誤差によって最大の影響を受ける画素の領域の
ためのデータ参照用テーブル46内にはより多くのデー
タ値が存在するようになること、及び丸め誤差によって
最小の影響しか受けない画素の領域のためのデータ参照
用テーブル46内にはより少ないデータ値が存在するよ
うになることである。この実施例では、データ参照用テ
ーブル46は総合的により多くのデータ値を有しておら
ず、総合誤差を低下させるようにデータ値の数を非線形
的に移している。
【0033】以下に示す表3は、 1/64 画素分解能から
1/8 画素分解能への縮小に起因する丸め誤差を補償す
るために、非線形データ値を含むように表2を変更する
手法を示すものである。 表3 分解能縮小を用い非線形事前重み付けした索引テーブル 索引 索引テーブル値 ポインタ値 ΔxL ΔyL Δsy 0 0 0 0 1 0 0 0 2 0 0 0 3 256 0 1 4 256 0 1 5 256 0 1 6 256 16 2 7 256 16 2 8 256 16 2 9 256 16 2 10 512 16 2 11 512 16 2 12 512 32 3 13 512 32 3 14 512 32 3 15 512 32 3 表3では、ΔxL の大きい値に対してはより多くのデー
タ値が割り当てられ、ΔxL の小さい値に対してはデー
タ参照用テーブル46内に相応して少ないデータ値が割
り当てられていることに注目されたい。同様に、ΔyL
及びΔsy の小さい値に対してより多くのデータ値が割
り当てられている。表3は、分解能縮小及び事前重み付
けの簡単な例を示しているが、これらの原理は非線形デ
ータテーブルの使用を通して丸め誤差を補償できるよう
な如何なる状況にも容易に拡張できる。これらの原理
は、表示分解能もしくはデータ参照用テーブルの大きさ
のどのような他の縮小にも適用される。例えば、もし分
解能を 1/64 画素分解能から1/8 画素分解能へ縮小する
だけであれば、データ参照用テーブルは現在では好まし
い実施例が使用する 1/64 画素分解能から 1/8 画素分
解能への縮小より多くのデータ値と、小さい丸め誤差を
含むようになる。従って、非線形索引テーブルは表3に
示した例とは同一にはならない。表3に示したデータ値
は、画素の大きさ、計算の分解能、分解能の縮小、及び
データ参照用テーブル46の大きさのような諸要因に依
存して応用毎に変化し得るものであることを理解された
い。
【0034】データ参照用テーブル46内の距離値は、
ある画素内に存在し得る各線分毎の距離Dx を決定する
ための公知の幾何学的測定技術を使用して決定される。
存在し得る各線分は異なるΔxL 、ΔyL 及びΔsy
有している。幾何学的技術を使用して特定の線分の距離
x が決定されると、その距離値は本発明の技術を使用
してデータ参照用テーブル46の距離値と比較される。
幾何学的に計算された距離と、システム部分30が計算
した距離との差が、丸めによって導入された誤差を表
す。データ参照用テーブル46内のデータ値及び索引テ
ーブル38、40及び42上の非線形データ値は、自乗
平方根誤差を減少させる繰り返し技術を使用して実験的
に決定される。即ち、ある画素内に存在し得る全ての線
分に対する総合誤差を最小にするように、索引テーブル
38、40及び42内の非線形データ値の移り目(もし
くは遷移、即ち区切り点)を何処で発生させるべきかを
実験的に決定することができる。図19乃至21はそれ
ぞれ、索引テーブル38、40及び42のために使用さ
れる実際のデータ値である。図21は、1/8 画素縮小を
使用した2画素長に対応する0乃至 16 の範囲内にある
Δsy (索引テーブル42)のデータ値をリストしたも
のである。同様に図20は、0乃至 16 の範囲内にはあ
るが 17 の倍率(索引テーブル42の合計範囲に対応す
る)を乗じたΔyL (索引テーブル40)のデータ値を
リストしたものである。図19は、− 16 から+ 16 ま
での範囲内にはあるが索引テーブル40及び索引テーブ
ル42の合計範囲に対応する乗算係数 272+ 17 = 289
を含むΔxL (索引テーブル38)のデータ値をリス
トしたものである。図19乃至21のテーブルは本発明
の好ましい実施例を示すために添付したものであるが、
もし選択された分解能が 1/64 画素分解能とは異なる
か、もしくは分解能縮小が 1/8画素分解能以外である
か、もしくは2画素以外の線分長が選択されていれば、
これらのデータ値が変化することは明白である。
【0035】以上説明したように、データ参照用テーブ
ル46は時間のかかる除算計算を必要とせずに合理的な
大きさに維持され、また3つの索引テーブル38、40
及び42は時間のかかる乗算及び除算の何れをも排除す
るために事前に重み付けがなされている。3つの索引テ
ーブル38、40及び42内に含まれるデータ値は互い
に加え合わされて、データ参照用テーブル46内のある
位置を指し示すデータポインタ45を発生する。表3に
示す例では、もしΔxL 、ΔyL 及びΔsy のデータ値
がそれぞれ2、3及び4であれば、ΔxL 、ΔyL 及び
Δsy に対応する非線形索引テーブル内のデータ値はそ
れぞれ0、 64 及び1である。これらの数の合計 65
が、データ参照用テーブル46内に最終アドレスを供給
するデータポインタ45である。要約すれば、データ参
照用テーブル46内に含まれるデータはDx の値を指示
する。システム部分30は値Dx を座標x1 に加算す
る。もしx1 +Dx の合計がその画素の中心点の“X”
座標の値であるXscan より小さいか、もしくは等しけ
れば、その線分はその画素の中心点の左側において水平
軸を横切っている。その画素を光らせるか否かの判断
は、その線分が上述したように水平軸を横切る点に基づ
いて決定される。
【0036】本発明のシステム部分30は、図形画像を
発生させるための便利なプロセスを提供する。索引テー
ブル38、40及び42は時間のかかる乗算及び除算計
算の必要性を排除する。データ参照用テーブル46の寸
法が縮小されているために、本発明は如何なるコンピュ
ータでも容易に実現される。非線形データエントリは丸
め誤差を最小にし、受け入れ可能な総合誤差で図形画像
を発生させることができる。以上の説明は水平走査行に
関するものであったが、本発明の原理は垂直に、もしく
は如何なる方向に走査する図形表示ユニットにも等しく
適用可能であることを理解されたい。以上に添付図面を
参照して本発明を若干の実施例について説明したが、こ
の説明は例示のためのものに過ぎず、本発明は本発明の
範囲から逸脱することなくその細部に変更を施し得るの
ものである。従って、本発明は特許請求の範囲によって
のみ限定されるものである。
【図面の簡単な説明】
【図1】コンピュータ表示画面もしくは図形プリンタ上
に表示される典型的な図形表示を示す図である。
【図2】典型的な二次ベジェ曲線を示す図である。
【図3】どの画素をターンオン及びターンオフさせるか
を決定するために従来技術のシステム及び本発明のシス
テムが使用する技術を説明する図である。
【図4】本発明を実施するコンピュータ図形システムを
示す図である。
【図5】図4のコンピュータシステムの機能ブロック線
図である。
【図6】本発明のシステムの機能ブロック線図である。
【図7】本発明の原理に従って細分されたベジェ曲線を
示す図である。
【図8】ベジェ曲線を細分する本発明の方法の一部を示
す流れ図である。
【図9】図4の表示画面上に表示される図形文字の一部
を示す図である。
【図10】図9の図形文字の一部を拡大して示す図であ
る。
【図11】図10の拡大された部分を本発明の原理に従
ってラスタ化するプロセスを示す図である。
【図12】図11のラスタ化プロセスを3つの画素につ
いて説明する図である。
【図13】ベジェ曲線を描くための本発明の方法の流れ
図の一部を示す。
【図14】図13の流れ図の続きである。
【図15】緩い勾配を有する線分がある画素の中心を横
切る様を示す図である。
【図16】図15に示す線分によってもたらされる丸め
誤差を説明する図である。
【図17】急な勾配を有する線分がある画素の中心を横
切る様を示す図である。
【図18】図17に示す線分によってもたらされる丸め
誤差を説明する図である。
【図19】本発明の索引テーブルの1つの非線形データ
値を示すテーブルである。
【図20】本発明の別の索引テーブルの非線形データ値
を示すテーブルである。
【図21】本発明の更に別の索引テーブルの非線形デー
タ値を示すテーブルである。
【符号の説明】
2 曲線 3 英数字 4 二次ベジェ曲線 5、6、7 制御点 10 コンピュータ 11 キーボード 12 表示画面 13 プリンタ 14 マウス 15 離散化タブレット 16 CPU 17 メモリ 18 バス 19 キーボードインタフェース 20 表示インタフェース 21 プリンタインタフェース 22 マウスインタフェース 23 ディジタイザインタフェース 24 水平走査線 25 画素 26 線分 27 画素の中心点 28 線分 30 システム部分 32 ベジェ制御点 34 線分発生器 36 画素解析装置 37、39、41 索引(インデックス)ポインタ 38、40、42 索引(インデックス)テーブル 44 加算器 45 データポインタ 46 データ参照用(ルックアップ)テーブル 48 ラスタライザ 50 図形表示ユニット 60、62 ベジェ曲線 64 図形対象 66 水平走査行 68 被説明部分 70、72 線分 76 水平軸 78、80 画素 86 画素の中心点 88 水平軸と線分との交点 90、92 端点 116 ベジェ曲線 118、120、122 ベジェ制御点

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 画素の二次元アレイを限定するために第
    1の次元内に配列された少なくとも1つの第1の連の画
    素と、第2の次元内に配列された第2の連の画素とを使
    用してN+1制御点によって限定されるN次曲線を描
    き、図形表示ユニット上に表示させるコンピュータ装置
    であって、上記図形表示は曲線を表示するために第1の
    次元内の画素アレイを走査し、各画素は第1及び第2の
    互いに逆の2進論理状態によって限定され、上記コンピ
    ュータ装置は1画素よりも大きい分解能を有する選択さ
    れた測定単位を有する第1及び第2の次元内の座標系を
    使用し、上記コンピュータ装置は、 線分発生器と、画素解析装置と、データ参照用テーブル
    と、第1、第2及び第3の索引テーブルと、アドレス手
    段と、ラスタライザとを具備し、 上記線分発生器は、上記複数の制御点を使用して曲線
    を、1画素より大きくない長さと、第1及び第2の端点
    とを各々が有する複数の線分に細分し、上記各端点は第
    1及び第2の次元内の上記端点の位置をそれぞれ表す第
    1及び第2の座標を有し、上記座標は選択された単位で
    表され、 上記画素解析装置は、上記線分の1つが第1の画素連の
    第1の中心軸を横切っているか否かを決定し、上記1つ
    の線分が上記第1の中心軸を横切っていれば上記画素解
    析装置は、上記1つの線分の第1の端点から第2の端点
    までの第1の次元における距離と、上記1つの線分の第
    1の端点から第2の端点までの第2の次元における距離
    と、上記1つの線分の第1の端点から上記第1の中心軸
    までの第2の次元における距離とにそれぞれ対応する第
    1、第2及び第3の索引ポインタをも生成し、 上記データ参照用テーブルは、上記1つの線分が上記第
    1の中心軸を横切っている第2の画素連の第2の中心軸
    から、上記線分が上記第1の中心軸を横切る点までに第
    1の次元内に存在し得る距離の範囲に対応し且つ選択さ
    れた単位で表されている複数の距離値を含み、上記デー
    タ参照用テーブルは、上記1つの線分に関する距離値を
    含む上記データ参照用テーブル内の特定位置を指し示す
    最終アドレスポインタを有し、 上記第1、第2及び第3の索引テーブルは、上記最終ア
    ドレスポインタを生成するために使用され、上記各索引
    テーブルはそれぞれ上記第1、第2及び第3の索引ポイ
    ンタの存在し得る値の範囲に対応するように選択された
    複数の索引テーブル位置を含み、上記第1、第2及び第
    3の索引ポインタはそれぞれ上記第1、第2及び第3の
    索引テーブル内の特定の索引テーブル位置を指し示し、 上記アドレス手段は、上記第1、第2及び第3の特定位
    置から上記索引データ値を受信して上記最終アドレスポ
    インタを生成し、そして上記ラスタライザは、上記距離
    値を上記1つの線分の上記第1の端点の上記第1の座標
    に加算して上記1つの線分が上記第1の中心軸を横切る
    点を決定し、もし1つの線分が上記第2の中心軸に対す
    る所定の位置において上記第1の中心軸を横切っていれ
    ば、上記1つの線分が上記第1の中心軸を横切っている
    画素の2進論理状態を逆の2進論理状態に変化させるこ
    とを特徴とする装置。
  2. 【請求項2】 上記第1、第2及び第3の索引テーブル
    位置は、選択された測定単位からより低い分解能を有す
    る第2の測定単位へ変化させるための除算係数を含む索
    引データ値を含む請求項1に記載の装置。
  3. 【請求項3】 上記第1、第2及び第3の索引テーブル
    位置は、上記分解能の低下により誘起される誤差を補償
    するように選択された非線形データ値である索引データ
    値を含む請求項2に記載の装置。
  4. 【請求項4】 上記索引テーブル位置は乗算係数を含む
    ように事前に重み付けされた索引データ値を含み、それ
    によって上記最終アドレスポインタを生成する際の乗算
    を排除し、上記アドレス手段は上記第1、第2及び第3
    の特定位置から上記索引データ値を受信し、上記索引デ
    ータ値を加え合わせて上記最終アドレスポインタを生成
    する請求項1に記載の装置。
  5. 【請求項5】 画素の二次元アレイを限定するために第
    1の次元内に配列された複数の第1の連の画素と、第2
    の次元内に配列された第2の連の画素とを使用してN+
    1制御点によって限定されるN次曲線を描き、図形表示
    ユニット上に表示させるコンピュータ装置であって、上
    記図形表示は曲線を表示するために第1の次元内の画素
    アレイを走査し、各画素は第1及び第2の互いに逆の2
    進論理状態によって限定され、上記コンピュータ装置は
    1画素よりも大きい分解能を有する選択された測定単位
    を有する第1及び第2の次元内の座標系を使用し、上記
    コンピュータ装置は、 線分発生器と、画素解析装置と、データ参照用テーブル
    と、第1、第2及び第3の索引テーブルと、アドレス手
    段と、ラスタライザとを具備し、 上記線分発生器は、上記複数の制御点を使用して曲線
    を、2画素より大きくない長さと、第1及び第2の端点
    とを各々が有する複数の線分に細分し、上記各端点は第
    1及び第2の次元内の上記端点の位置をそれぞれ表す第
    1及び第2の座標を有し、上記座標は選択された単位で
    表され、 上記画素解析装置は、上記線分の1つが第1の画素連の
    第1の中心軸を横切っているか否かを決定し、上記1つ
    の線分が上記第1の中心軸を横切っていれば上記画素解
    析装置は、上記1つの線分の第1の端点から第2の端点
    までの第1の次元における距離と、上記1つの線分の第
    1の端点から第2の端点までの第2の次元における距離
    と、上記1つの線分の第1の端点から上記第1の中心軸
    までの第2の次元における距離とにそれぞれ対応する第
    1、第2及び第3の索引ポインタをも生成し、上記ポイ
    ンタは選択された単位で表され、上記画素解析装置は、
    上記複数の線分の何れかが第1の画素に隣接する第2の
    画素の上記第1の中心軸を横切っているか否かをも決定
    し、上記画素解析装置は、第1の画素連の上記第1の画
    素の上記第1の中心軸及び第1の画素連の上記隣接する
    第2の画素の上記第1の中心軸の両者を横切っている線
    分を半分に細分し、上記細分された線分は上記線分と同
    一の手法で処理され、 上記データ参照用テーブルは、上記1つの線分が上記第
    1の中心軸を横切っている第2の画素連の第2の中心軸
    から、上記線分が上記第1の中心軸を横切る点までに第
    1の次元内に存在し得る距離の範囲に対応し且つ選択さ
    れた単位で表されている複数の距離値を含み、上記デー
    タ参照用テーブルは、上記1つの線分に関する距離値を
    含む上記データ参照用テーブル内の特定位置を指し示す
    最終アドレスポインタを有し、 上記第1、第2及び第3の索引テーブルは、上記最終ア
    ドレスポインタを生成するために使用され、上記各索引
    テーブルはそれぞれ上記第1、第2及び第3の索引ポイ
    ンタの存在し得る値の範囲に対応するように選択された
    複数の索引テーブル位置を含み、上記第1、第2及び第
    3の索引ポインタはそれぞれ上記第1、第2及び第3の
    索引テーブル内の特定の索引テーブル位置を指し示し、 上記アドレス手段は、上記第1、第2及び第3の特定位
    置から上記索引データ値を受信して上記最終アドレスポ
    インタを生成し、そして上記ラスタライザは、上記距離
    値を上記1つの線分の上記第1の端点の上記第1の座標
    に加算して上記1つの線分が上記第1の中心軸を横切る
    点を決定し、もし1つの線分が上記第2の中心軸に対す
    る所定の位置において上記第1の中心軸を横切っていれ
    ば、上記1つの線分が上記第1の中心軸を横切っている
    画素の2進論理状態を逆の2進論理状態に変化させるこ
    とを特徴とする装置。
  6. 【請求項6】 上記第1、第2及び第3の索引テーブル
    位置は選択された測定単位からより低い分解能を有する
    第2の測定単位へ変化させるための除算係数を含む索引
    データ値を含む請求項5に記載の装置。
  7. 【請求項7】 上記第1、第2及び第3の索引テーブル
    位置は上記分解能の低下により誘起される誤差を補償す
    るように選択された非線形データ値である索引データ値
    を含む請求項6に記載の装置。
  8. 【請求項8】 上記索引テーブル位置は乗算係数を含む
    ように事前に重み付けされた索引データ値を含み、それ
    によって上記最終アドレスポインタを生成する際の乗算
    を排除し、上記アドレス手段は上記第1、第2及び第3
    の特定位置から上記索引データ値を受信し、上記索引デ
    ータ値を加え合わせて上記最終アドレスポインタを生成
    する請求項7に記載の装置。
  9. 【請求項9】 画素の二次元アレイを限定するために第
    1の次元内に配列された複数の第1の連の画素と、第2
    の次元内に配列された第2の連の画素とを使用してN+
    1制御点によって限定されるN次曲線を描き、図形表示
    ユニット上に表示させるコンピュータ装置であって、上
    記図形表示は曲線を表示するために第1の次元内の画素
    アレイを走査し、各画素は第1及び第2の互いに逆の2
    進論理状態によって限定され、上記コンピュータ装置は
    1画素よりも大きい分解能を有する選択された測定単位
    を有する第1及び第2の次元内の座標系を使用し、上記
    コンピュータ装置は、 線分発生器と、画素解析装置と、データ参照用テーブル
    と、第1、第2及び第3の索引テーブルと、アドレス手
    段と、ラスタライザとを具備し、 上記線分発生器は、上記複数の制御点を使用して曲線
    を、所定数の画素より大きくない長さと、第1及び第2
    の端点とを各々が有する複数の線分に細分し、上記各端
    点は第1及び第2の次元内の上記端点の位置をそれぞれ
    表す第1及び第2の座標を有し、上記座標は選択された
    単位で表され、 上記画素解析装置は、上記線分の1つが第1の画素連の
    第1の画素の第1の中心軸を横切っているか否かを決定
    し、上記1つの線分が上記第1の中心軸を横切っていれ
    ば上記画素解析装置は、上記1つの線分の第1の端点か
    ら第2の端点までの第1の次元における距離と、上記1
    つの線分の第1の端点から第2の端点までの第2の次元
    における距離と、上記1つの線分の第1の端点から上記
    第1の中心軸までの第2の次元における距離とにそれぞ
    れ対応する第1、第2及び第3の索引ポインタをも生成
    し、上記ポインタは選択された単位で表され、上記画素
    解析装置は、上記複数の線分の何れかが第1の画素に隣
    接する第2の画素の上記第1の中心軸を横切っているか
    否かをも決定し、上記画素解析装置は、解析中の第1の
    画素連の上記第1の画素の上記第1の中心軸及び第1の
    画素連の上記隣接する第2の画素の上記第1の中心軸の
    両者を横切っている上記線分を細分して第1の画素連の
    1つより多くの上記第1の中心軸を横切らない細分され
    た線分を生成し、上記細分された各線分は上記線分と同
    一の手法で処理され且つ第1及び第2の端点を有し、第
    1及び第2の座標を有する上記各端点は第1及び第2の
    次元内の上記端点の位置を表し、上記座標は選択された
    単位で表され、 上記データ参照用テーブルは、上記1つの線分が上記第
    1の中心軸を横切っている第2の画素連の1つの第2の
    中心軸から、上記線分が上記第1の中心軸を横切る点ま
    でに第1の次元内に存在し得る距離の範囲に対応し且つ
    選択された単位で表されている複数の距離値を含み、上
    記データ参照用テーブルは、上記1つの線分に関する距
    離値を含む上記データ参照用テーブル内の特定位置を指
    し示す最終アドレスポインタを有し、 上記第1、第2及び第3の索引テーブルは、上記最終ア
    ドレスポインタを生成するために使用され、上記各索引
    テーブルはそれぞれ上記第1、第2及び第3の索引ポイ
    ンタのあり得る値の範囲に対応するように選択された複
    数の索引テーブル位置を含み、上記第1、第2及び第3
    の索引ポインタはそれぞれ上記第1、第2及び第3の索
    引テーブル内の特定の索引テーブル位置を指し示し、 上記アドレス手段は、上記第1、第2及び第3の特定位
    置からの上記索引値から上記最終アドレスポインタを生
    成し、そして上記ラスタライザは、上記1つの線分の上
    記距離値を第1の次元内の上記第1の端点の上記座標に
    加算して上記1つの線分が上記第1の中心軸を横切る点
    を決定し、もし上記1つの線分が上記第2の中心軸に対
    する所定の位置において上記第1の中心軸を横切ってい
    れば、上記1つの線分が上記第1の中心軸を横切ってい
    る画素の2進論理状態を逆の2進論理状態に変化させる
    ことを特徴とする装置。
  10. 【請求項10】 上記索引テーブル位置は乗算係数を含
    むように事前に重み付けされた索引データ値を含み、そ
    れによって上記最終アドレスポインタを生成する際の乗
    算を排除し、上記アドレス手段は上記第1、第2及び第
    3の特定位置から上記索引データ値を受信し、上記索引
    データ値を加え合わせて上記最終アドレスポインタを生
    成する請求項9に記載の装置。
  11. 【請求項11】 上記第1、第2及び第3の索引テーブ
    ル位置は選択された測定単位からより低い分解能を有す
    る第2の測定単位へ変化させるための除算係数を含む索
    引データ値を含む請求項9に記載の装置。
  12. 【請求項12】 上記第1、第2及び第3の索引テーブ
    ル位置は上記分解能の低下により誘起される誤差を補償
    するように選択された非線形データ値である索引データ
    値を含む請求項11に記載の装置。
  13. 【請求項13】 画素の二次元アレイを限定するために
    第1の次元内に配列された少なくとも1つの第1の連の
    画素と、第2の次元内に配列された第2の連の画素とを
    使用してN+1制御点によって限定されるN次曲線を描
    き、図形表示ユニット上に表示させるためにコンピュー
    タ装置及び上記図形表示ユニットを使用する方法であっ
    て、上記図形表示は曲線を表示するために第1の次元内
    の画素アレイを走査し、各画素は第1及び第2の互いに
    逆の2進論理状態によって限定され、上記コンピュータ
    装置は1画素よりも大きい分解能を有する選択された測
    定単位を有する第1及び第2の次元内の座標系を使用
    し、上記方法は、 (a)上記曲線を、1画素よりも大きくない長さと、第
    1及び第2の端点とを各々が有する複数の線分に細分
    し、上記各端点に第1及び第2の次元内の上記各点の位
    置をそれぞれ表す第1及び第2の座標を与え、上記座標
    を選択された単位で表す段階と、 (b)上記線分の1つが第1の画素連の第1の中心軸を
    横切っているか否かを決定する段階と、 (c)もし上記線分の1つが上記第1の中心軸を横切っ
    ていれば、上記1つの線分の第1の端点から第2の端点
    までの第1の次元における距離と、上記1つの線分の第
    1の端点から第2の端点までの第2の次元における距離
    と、上記1つの線分の第1の端点から上記第1の中心軸
    までの第2の次元における距離とにそれぞれ対応する第
    1、第2及び第3の索引ポインタを生成し、上記ポイン
    タを選択された単位で表す段階と、 (d)上記第1、第2及び第3の索引ポインタをそれぞ
    れ使用して上記第1、第2及び第3の索引ポインタの存
    在し得る値の範囲にそれぞれ対応するように選択された
    複数の索引テーブル位置を各々が含む第1、第2及び第
    3の索引テーブル内の第1、第2及び第3の特定の索引
    テーブル位置を決定する段階と、 (e)上記第1、第2及び第3の索引テーブル内の索引
    データ値を使用して最終アドレスポインタを生成する段
    階と、 (f)上記1つの線分が上記第1の軸を横切っている第
    2の画素連の第2の中心軸から、上記線分が上記第1の
    中心軸を横切る点までに第1の次元内に存在し得る距離
    の範囲に対応し且つ選択された単位で表されている複数
    の距離値を含むデータ参照用テーブルから、上記1つの
    線分に関する距離値を含む上記データ参照用テーブル内
    の特定位置を上記最終アドレスポインタを使用して決定
    する段階と、 (g)上記距離値を上記1つの線分の上記第1の端点の
    上記第1の座標に加算して、上記1つの線分が上記第1
    の中心軸を横切る点を決定する段階と、 (h)上記1つの線分が上記第2の中心軸に対する所定
    の位置において上記第1の中心軸を横切っていれば、上
    記1つの線分が上記第1の中心軸を横切っている画素の
    2進論理状態を逆の2進論理状態に変化させる段階を具
    備することを特徴とする方法。
  14. 【請求項14】 曲線を上記複数の線分に細分する上記
    段階(a)は、 1)N+1の各制御点から第1の次元内で隣接する制御
    点までの画素の差の絶対値を測定して第1の次元のN差
    分値を求める段階と、 (2)N+1の各制御点から第2の次元内で隣接する制
    御点までの画素の差の絶対値を測定して第2の次元のN
    差分値を求める段階と、 (3)第1及び第2の次元の上記N差分値の最大値を決
    定する段階と、 (4)上記最大値を2倍して曲線を細分している線分の
    最少数を決定する段階を含む請求項13に記載の方法。
  15. 【請求項15】 もし段階(h)が、上記1つの線分が
    上記第1の中心軸を横切っている画素の2進論理状態を
    変化させれば、段階(h)が上記1つの線分が上記第1
    の中心軸を横切っている別の画素の2進論理状態を逆の
    2進論理状態に変化させるまで、第1の画素連内の上記
    画素以降の全ての画素の2進論理状態を変化させる段階
    をも含む請求項13に記載の方法。
  16. 【請求項16】 上記索引テーブルは乗算係数を含むよ
    うに事前に重み付けされた索引データ値を含み、上記最
    終アドレスポインタを生成する上記段階(e)は、上記
    第1、第2及び第3の特定の索引テーブル位置内の索引
    データ値を加え合わせ、それによって上記最終アドレス
    ポインタを生成する際の乗算を排除する請求項13に記
    載の方法。
  17. 【請求項17】 上記索引テーブルは選択された測定単
    位から分解能がより低い第2の測定単位へ変化させるた
    めの除算係数を含む索引データ値を含み、上記段階
    (e)は、低下した分解能を有する上記索引データ値を
    使用して上記最終アドレスポインタを生成する請求項1
    3に記載の方法。
  18. 【請求項18】 上記索引テーブル位置は上記除算係数
    によってもたらされる誤差を補償するための非線形デー
    タ値を含み、上記段階(e)は、低下した分解能を有す
    る上記非線形データ値を使用して上記最終アドレスポイ
    ンタを生成する請求項17に記載の方法。
  19. 【請求項19】 画素の二次元アレイを限定するために
    第1の次元内に配列された複数の第1の連の画素と、第
    2の次元内に配列された第2の連の画素とを使用してN
    +1制御点によって限定されるN次曲線を描き、図形表
    示ユニット上に表示させるためにコンピュータ装置及び
    上記図形表示ユニットを使用する方法であって、上記図
    形表示は曲線を表示するために第1の次元内の画素アレ
    イを走査し、各画素は第1及び第2の互いに逆の2進論
    理状態によって限定され、上記コンピュータ装置は1画
    素よりも大きい分解能を有する選択された測定単位を有
    する第1及び第2の次元内の座標系を使用し、上記方法
    は、 (a)上記曲線を、2画素よりも大きくない長さと、第
    1及び第2の端点とを各々が有する複数の線分に細分
    し、上記各端点に第1及び第2の次元内の上記各点の位
    置をそれぞれ表す第1及び第2の座標を与え、上記座標
    を選択された単位で表す段階と、 (b)上記線分の1つが第1の画素連の第1の画素の第
    1の中心軸を横切っているか否かを決定する段階と、 (c)上記線分の何れかが第1の画素連内の隣接する第
    2の画素の第1の中心軸を横切っているか否かを決定す
    る段階と、 (d)上記第1の画素連の上記第1の画素の上記第1の
    中心軸及び上記第1の画素連内の上記隣接する第2の画
    素の上記第1の中心軸の両者を横切る上記線分を細分し
    て細分された各線分が一方の第1の中心軸だけを横切る
    ようにし、上記細分された各線分を上記線分と同じ手法
    で処理し、上記細分された各線分の第1及び第2の端点
    に第1及び第2の次元内の上記各点の位置をそれぞれ表
    す第1及び第2の座標を与え、上記座標を選択された単
    位で表す段階と、 (e)もし上記線分の1つが上記第1の中心軸を横切っ
    ていれば、上記1つの線分の第1の端点から第2の端点
    までの第1の次元における距離と、上記1つの線分の第
    1の端点から第2の端点までの第2の次元における距離
    と、上記1つの線分の第1の端点から上記第1の中心軸
    までの第2の次元における距離とにそれぞれ対応する上
    記1つの線分のための第1、第2及び第3の索引ポイン
    タを生成し、上記ポインタを選択された単位で表す段階
    と、 (f)上記第1、第2及び第3の索引ポインタをそれぞ
    れ使用して、上記第1、第2及び第3の索引ポインタの
    存在し得る値の範囲にそれぞれ対応するように選択され
    た複数の索引テーブル位置を各々が含む第1、第2及び
    第3の索引テーブル内の第1、第2及び第3の特定の索
    引テーブル位置を決定する段階と、 (g)上記第1、第2及び第3の特定の索引テーブル位
    置内の索引データ値を使用して最終アドレスポインタを
    生成する段階と、 (h)上記1つの線分が上記第1の軸を横切っている第
    2の画素連の第2の中心軸から、上記線分が上記第1の
    中心軸を横切る点までに第1の次元内に存在し得る距離
    の範囲に対応し且つ選択された単位で表されている複数
    の距離値を含むデータ参照用テーブルから、上記1つの
    線分に関する距離値を含む上記データ参照用テーブル内
    の特定位置を上記最終アドレスポインタを使用して決定
    する段階と、 (i)上記距離値を上記1つの線分の上記第1の端点の
    上記第1の座標に加算して、上記1つの線分が上記第1
    の中心軸を横切る点を決定する段階と、 (j)もし上記1つの線分が上記第2の中心軸に対する
    所定の位置において上記第1の中心軸を横切っていれ
    ば、上記1つの線分が上記第1の中心軸を横切っている
    画素の2進論理状態を逆の2進論理状態に変化させる段
    階を具備することを特徴とする方法。
  20. 【請求項20】 曲線を上記複数の線分に細分する上記
    段階(a)は、 (1)N+1の各制御点から第1の次元内で隣接する制
    御点までの画素の差の絶対値を測定して第1の次元のN
    差分値を求める段階と、 (2)N+1の各制御点から第2の次元内で隣接する制
    御点までの画素の差の絶対値を測定して第2の次元のN
    差分値を求める段階と、 (3)第1及び第2の次元の上記N差分値の最大値を決
    定する段階と、 (4)上記最大値を使用して曲線を上記複数の線分に細
    分して線分の最少数を決定する段階を含む請求項19に
    記載の方法。
  21. 【請求項21】 もし段階(j)が、上記1つの線分が
    上記第1の中心軸を横切っている画素の2進論理状態を
    変化させれば、段階(j)が上記1つの線分が上記第1
    の中心軸を横切っている別の画素の2進論理状態を逆の
    2進論理状態に変化させるまで、第1の画素連内の上記
    画素以降の全ての画素の2進論理状態を変化させる段階
    をも含む請求項19に記載の方法。
  22. 【請求項22】 上記索引テーブル位置は乗算係数を含
    むように事前に重み付けされた索引データ値を含み、上
    記最終アドレスポインタを生成する上記段階(g)は、
    上記第1、第2及び第3の特定の索引テーブル位置内の
    索引データ値を加え合わせ、それによって上記最終アド
    レスポインタを生成する際の乗算を排除する請求項19
    に記載の方法。
  23. 【請求項23】 上記第1、第2及び第3の索引テーブ
    ル位置は選択された測定単位から分解能がより低い第2
    の測定の単位へ変化させるための除算係数を含む索引デ
    ータ値を含み、上記段階(g)は、低下した分解能を有
    する上記索引データ値を使用して上記最終アドレスポイ
    ンタを生成する請求項19に記載の方法。
  24. 【請求項24】 上記索引テーブル位置は上記除算係数
    によってもたらされる誤差を補償するための非線形デー
    タ値を含み、上記段階(g)は、低下した分解能を有す
    る上記非線形データ値を使用して上記最終アドレスポイ
    ンタを生成する請求項23に記載の方法。
  25. 【請求項25】 画素の二次元アレイを限定するために
    第1の次元内に配列された複数の第1の連の画素と、第
    2の次元内に配列された第2の連の画素とを使用してN
    +1制御点によって限定されるN次曲線を描き、図形表
    示ユニット上に表示させるためにコンピュータ装置及び
    上記図形表示ユニットを使用する方法であって、上記図
    形表示は曲線を表示するために第1の次元内の画素アレ
    イを走査し、各画素は第1及び第2の互いに逆の2進論
    理状態によって限定され、上記コンピュータ装置は1画
    素よりも大きい分解能を有する選択された測定単位を有
    する第1及び第2の次元内の座標系を使用し、上記方法
    は、 (a)上記曲線を、所定数の画素よりも大きくない長さ
    と、第1及び第2の端点とを各々が有する複数の線分に
    細分し、上記各端点に第1及び第2の次元内の上記各点
    の位置をそれぞれ表す第1及び第2の座標を与え、上記
    座標を選択された単位で表す段階と、 (b)上記線分の1つが第1の画素連の第1の画素の第
    1の中心軸を横切っているか否かを決定する段階と、 (c)上記線分の何れかが第1の画素連内の隣接する第
    2の画素の第1の中心軸を横切っているか否かを決定す
    る段階と、 (d)上記第1の画素連の上記第1の画素の上記第1の
    中心軸及び上記第1の画素連内の上記隣接する第2の画
    素の上記第1の中心軸の両者を横切る上記線分を細分し
    て細分された各線分が一方の第1の中心軸だけを横切る
    ようにし、上記細分された各線分を上記線分と同じ手法
    で処理し、上記細分された各線分の第1及び第2の端点
    に第1及び第2の次元内の上記各点の位置をそれぞれ表
    す第1及び第2の座標を与え、上記座標を選択された単
    位で表す段階と、 (e)もし上記線分の1つが上記第1の中心軸を横切っ
    ていれば、上記1つの線分の第1の端点から第2の端点
    までの第1の次元における距離と、上記1つの線分の第
    1の端点から第2の端点までの第2の次元における距離
    と、上記1つの線分の第1の端点から上記第1の中心軸
    までの第2の次元における距離とにそれぞれ対応する上
    記1つの線分のための第1、第2及び第3の索引ポイン
    タを生成し、上記ポインタを選択された単位で表す段階
    と、 (f)上記第1、第2及び第3の索引ポインタをそれぞ
    れ使用して、上記第1、第2及び第3の索引ポインタの
    存在し得る値の範囲にそれぞれ対応するように選択され
    た複数の索引テーブル位置を各々が含む第1、第2及び
    第3の索引テーブル内の第1、第2及び第3の特定の索
    引テーブル位置を決定する段階と、 (g)上記第1、第2及び第3の特定の索引テーブル位
    置内の索引データ値を使用して最終アドレスポインタを
    生成する段階と、 (h)上記1つの線分が上記第1の軸を横切っている第
    2の画素連の第2の中心軸から、上記線分が上記第1の
    中心軸を横切る点までに第1の次元内に存在し得る距離
    の範囲に対応し且つ選択された単位で表されている複数
    の距離値を含むデータ参照用テーブルから、上記1つの
    線分に関する距離値を含む上記データ参照用テーブル内
    の特定位置を上記最終アドレスポインタを使用して決定
    する段階と、 (i)上記距離値を上記1つの線分の上記第1の端点の
    上記第1の座標に加算して、上記1つの線分が上記第1
    の中心軸を横切る点を決定する段階と、 (j)もし上記1つの線分が上記第2の中心軸に対する
    所定の位置において上記第1の中心軸を横切っていれ
    ば、上記1つの線分が上記第1の中心軸を横切っている
    画素の2進論理状態を逆の2進論理状態に変化させる段
    階を具備することを特徴とする方法。
  26. 【請求項26】 曲線を上記複数の線分に細分する上記
    段階(a)は、 (1)N+1の各制御点から第1の次元内で隣接する制
    御点までの画素の差の絶対値を測定して第1の次元のN
    差分値を求める段階と、 (2)N+1の各制御点から第2の次元内で隣接する制
    御点までの画素の差の絶対値を測定して第2の次元のN
    差分値を求める段階と、 (3)第1及び第2の次元の上記N差分値の最大値を決
    定する段階と、 (4)上記最大値を使用して曲線を上記複数の線分に細
    分して線分の最少数を決定する段階を含む請求項25に
    記載の方法。
  27. 【請求項27】 もし段階(j)が、上記1つの線分が
    上記第1の中心軸を横切っている画素の2進論理状態を
    変化させれば、段階(j)が上記1つの線分が上記第1
    の中心軸を横切っている別の画素の2進論理状態を逆の
    2進論理状態に変化させるまで、第1の画素連内の上記
    画素以降の全ての画素の2進論理状態を変化させる段階
    をも含む請求項25に記載の方法。
  28. 【請求項28】 上記索引テーブル位置は乗算係数を含
    むように事前に重み付けされた索引データ値を含み、上
    記最終アドレスポインタを生成する上記段階(g)は、
    上記第1、第2及び第3の特定の索引テーブル位置内の
    索引データ値を加え合わせ、それによって上記最終アド
    レスポインタを生成する際の乗算を排除する請求項25
    に記載の方法。
  29. 【請求項29】 上記第1、第2及び第3の索引テーブ
    ル位置は選択された測定の単位から分解能がより低い第
    2の測定の単位へ変化させるための除算係数を含む索引
    データ値を含み、上記段階(g)は、低下した分解能を
    有する上記索引データ値を使用して上記最終アドレスポ
    インタを生成する請求項25に記載の方法。
  30. 【請求項30】 上記索引テーブル位置は上記除算係数
    によってもたらされる誤差を補償するための非線形デー
    タ値を含み、上記段階(g)は、低下した分解能を有す
    る上記非線形データ値を使用して上記最終アドレスポイ
    ンタを生成する請求項29に記載の方法。
JP6097419A 1993-05-14 1994-05-11 曲線を描く装置及び方法 Expired - Lifetime JP3071357B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/062,383 US5381521A (en) 1993-05-14 1993-05-14 System and method of rendering curves
US08/062383 1993-05-14

Publications (2)

Publication Number Publication Date
JPH076233A true JPH076233A (ja) 1995-01-10
JP3071357B2 JP3071357B2 (ja) 2000-07-31

Family

ID=22042125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6097419A Expired - Lifetime JP3071357B2 (ja) 1993-05-14 1994-05-11 曲線を描く装置及び方法

Country Status (5)

Country Link
US (1) US5381521A (ja)
EP (1) EP0624849B1 (ja)
JP (1) JP3071357B2 (ja)
CA (1) CA2122771C (ja)
DE (1) DE69423129T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092480A (ja) * 2008-10-06 2010-04-22 Arm Ltd グラフィックス処理システム
US8743135B2 (en) 2008-10-06 2014-06-03 Arm Limited Graphics processing systems
US8928668B2 (en) 2008-10-06 2015-01-06 Arm Limited Method and apparatus for rendering a stroked curve for display in a graphics processing system

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638503A (en) * 1994-07-07 1997-06-10 Adobe Systems, Inc. Method and apparatus for generating bitmaps from outlines containing bezier curves
JP3226734B2 (ja) * 1994-10-19 2001-11-05 キヤノン株式会社 データ変換装置および方法
US5790126A (en) 1995-01-03 1998-08-04 Microsoft Corporation Method for rendering a spline for scan conversion of a glyph
US5694535A (en) * 1995-03-24 1997-12-02 Novell, Inc. Direct interactive, constant-time curve apparatus and method
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US5999972A (en) * 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5848246A (en) * 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6038590A (en) * 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5987245A (en) * 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
WO2000013146A1 (en) * 1998-08-31 2000-03-09 The Johns Hopkins University System and method for interactively displaying a model having a complex surface
JP4866013B2 (ja) * 2005-03-31 2012-02-01 富士通株式会社 文字画像生成プログラム、そのシステム、及びその方法
US7562669B2 (en) * 2006-07-31 2009-07-21 Honeywell International Inc. Check valve stop assembly and method of retention
GB0818280D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing systems
JP5294313B2 (ja) * 2008-11-07 2013-09-18 Necシステムテクノロジー株式会社 ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム
WO2012140910A1 (ja) * 2011-04-15 2012-10-18 パナソニック株式会社 曲線描画装置、曲線描画方法、曲線描画プログラム及び集積回路
US9224218B2 (en) * 2012-06-05 2015-12-29 Apple Inc. System and method for loading and rendering curved features in a map
US10607374B2 (en) * 2018-06-01 2020-03-31 Adobe Inc. Generating enhanced digital images by selectively transforming raster images to vector drawing segments
US10685459B2 (en) 2018-06-01 2020-06-16 Adobe Inc. Generating enhanced digital images by selectively transforming raster images to vector drawing segments

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949281A (en) * 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4897805A (en) * 1988-05-17 1990-01-30 Prime Computer, Inc. Method and apparatus for performing polygon fills in graphical applications
KR930000693B1 (ko) * 1988-09-14 1993-01-29 가부시키가이샤 도시바 패턴 데이터 발생장치
JPH0396996A (ja) * 1989-09-08 1991-04-22 Tokyo Electric Co Ltd 文字出力装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092480A (ja) * 2008-10-06 2010-04-22 Arm Ltd グラフィックス処理システム
CN101714261A (zh) * 2008-10-06 2010-05-26 Arm有限公司 图形处理系统
US8743135B2 (en) 2008-10-06 2014-06-03 Arm Limited Graphics processing systems
US8928668B2 (en) 2008-10-06 2015-01-06 Arm Limited Method and apparatus for rendering a stroked curve for display in a graphics processing system
US8928667B2 (en) 2008-10-06 2015-01-06 Arm Limited Rendering stroked curves in graphics processing systems

Also Published As

Publication number Publication date
EP0624849A2 (en) 1994-11-17
EP0624849B1 (en) 2000-03-01
JP3071357B2 (ja) 2000-07-31
DE69423129T2 (de) 2000-06-29
CA2122771A1 (en) 1994-11-15
CA2122771C (en) 2002-10-29
US5381521A (en) 1995-01-10
EP0624849A3 (en) 1995-07-26
DE69423129D1 (de) 2000-04-06

Similar Documents

Publication Publication Date Title
JP3071357B2 (ja) 曲線を描く装置及び方法
EP0667018B1 (en) Polygon rasterization
US6529197B1 (en) Method for rendering endpoints of segments during scan conversion of a glyph
US5301267A (en) Intelligent font rendering co-processor
US5363479A (en) System and method for rendering bezier splines
US5929866A (en) Adjusting contrast in anti-aliasing
US5028848A (en) Tile vector to raster conversion method
JP2003271987A (ja) プリミティブにより覆われるピクセルの割合を求める方法
JPS62123573A (ja) コンピユ−タ・グラフイツク装置およびその操作方法
US5489920A (en) Method for determining the optimum angle for displaying a line on raster output devices
KR940001880B1 (ko) 묘화처리(描畵處理)의 방법 및 장치
JPH05204363A (ja) ドットマトリクス装置における輪郭字体文字生成のための高速垂直走査−変換・充填方法及びその装置
JPH0660173A (ja) 画像を縮小する方法および装置
JP4180043B2 (ja) 3次元図形描画処理装置、画像表示装置、3次元図形描画処理方法、これをコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体
US6025851A (en) Envolvent approximation using accurate slope information
US5594848A (en) Method and apparatus for efficiently determining line segments within a window using iterative halving
JP3155753B2 (ja) 図形処理装置及び方法
US7170528B1 (en) Fast glyph rendering for vector based fonts
JPH07120427B2 (ja) グラフイツクス処理システム
US6124863A (en) Object-based graphics system for displaying an image using explicit quadratic polynomial fragments
JP3266905B2 (ja) 図形処理装置
JP3493745B2 (ja) 図形描画装置
KR940007818B1 (ko) 그레이 스케일 폰트의 생성방법
JP2630843B2 (ja) 直線描画方法及び装置
JP3072769B2 (ja) 図形処理方法及び装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000417

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090526

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100526

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120526

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130526

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130526

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term