JP2501580B2 - 曲線イメ−ジの可視表示発生装置 - Google Patents

曲線イメ−ジの可視表示発生装置

Info

Publication number
JP2501580B2
JP2501580B2 JP62114925A JP11492587A JP2501580B2 JP 2501580 B2 JP2501580 B2 JP 2501580B2 JP 62114925 A JP62114925 A JP 62114925A JP 11492587 A JP11492587 A JP 11492587A JP 2501580 B2 JP2501580 B2 JP 2501580B2
Authority
JP
Japan
Prior art keywords
curve
coordinate
value
points
forward difference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62114925A
Other languages
English (en)
Other versions
JPS62297984A (ja
Inventor
デービッド・キユアトン・ベーカー
アーサー・アモス・カウフマン、ジュニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of JPS62297984A publication Critical patent/JPS62297984A/ja
Application granted granted Critical
Publication of JP2501580B2 publication Critical patent/JP2501580B2/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)
  • Paper (AREA)
  • Heating, Cooling, Or Curing Plastics Or The Like In General (AREA)
  • Polymerisation Methods In General (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、コンピュータ・グラフィック表示装置上に
曲線を発生させる装置に関する。
従来技術及び問題点 コンピュータの技術革新によって、コンピュータによ
り発生されるグラフィック情報の表示に関する技術領域
が生じてきた。この領域はコンピュータ・グラフィック
と呼ばれる。コンピュータ・グラフィックにおいて共通
的に用いられる1つの技法は、一組の点を発生しそして
これらの点を結んで直線を生じる技法である。点の組合
わせ及び直線は、通常陰極線管であるコンピュータ・グ
ラフィック端末表示装置上に表示される。又、表示画面
上の或るいくつかの点に対する曲線を発生することが望
まれている。グラフィック表示画面上におけるなめらか
な曲線の発生は、データ・ポイントのいくつかのグルー
プに対して低次の多項式関数を当てはめることにより行
なわれる。その結果生じる断片的につなげられた多項式
関数は連続的曲線のようになるが、特殊な場合を除き曲
線の小部分相互間の接続部において不連続性が生じる。
この技法は、雲型曲線の所望部分を用いて曲線を描く製
図と似ている。製図者はいくつかの点に合う雲型定規の
曲線を選びそしてこの部分の曲線を描く。そして製図者
は、全ての点を統合する迄この手順を繰り返して曲線を
完成する。コンピュータ・グラフィックにおいては、連
続した低次の多項式関数式をいつくかの点に当てはめて
位置座標系における曲線値を発生することにより同じ結
果を得る。
2次元空間では、しばしば曲線は、直交成分x及びy
の関数として即ちY=f(x)として表わされる。3次
元座標系においては、x、y及びz座標は、直交成分の
1つ若しくは2つの関数として表わされる。しかしなが
ら、このように表わすと、座標値の発生において困難が
生じる。1つの代替技法は、曲線のパラメータ値を用い
ることであり、ここで曲線上の各座標値はいくつかの共
通変数の関数として、即ち全座標成分に共通な変数とし
て表わされる。3次元系に対しては、このような変数
は、0<t<1に対してx=f(x)、y=g(t)及
びC=h(t)を与えるtとして説明されることができ
る。他の表わし方は、次の3次の多項式関数により表わ
されるパラメータ立体曲線である。
x=f(t)=axt3+bxt2+cxt+dx y=g(t)=ayt3+byt2+cyt+dy z=h(t)=azt3+bzt2+czt+dz 曲線セグメントの低次式が、位置及び傾斜の連続性を
与えずそして2つの曲線成分が合う点で傾斜及び曲率の
連続性を与えないので、立体曲線は重要である。立体曲
線は又、3次元において非平面曲線を描く低次の曲線で
ある。
上述のx座標に対する式は次のマトリクス型で表わさ
れることができる。
係数ベクトル[Cx]は多くの異なる特性の曲線を生じ
るように決められ得る。最も有用なのは、Hermite型、
ベツィエ型及びB−スプライン型である。係数ベクトル
を、列幾何学ベクトル(columnar geometry vector)
[GM]により乗算された4×4の基本マトリクスのクロ
ス積に変えることができる。
これらの曲線の型についての一般的理論は、1982年に
Addison−Wesley Puflishing社により発刊されたJ.D.Fo
ley及びA.Dan SamによるFundamentals of Interactive
Computer Graphics,1979年にMcGraw−Hill Book社によ
り発刊されたW.N.Newman及びR.F.SproullによるPrincip
les of Interactive Computer Graphics第2版及び1974
年にAcademic Pressから発刊されたR.E.Bamhill及びR.
F.RiesenfeldによるComputer Aided Geometric Design
に示されている。
本発明の一実施例はB−スプライン型から曲線を発生
する。B−スプライン型は、Fundamentals of Interact
ive Computer Graphics、第521〜523頁に説明されてい
る。
スプラインを用いてグラフィックを発生する1つの技
法は、IBMテクニカル・ディスクロジャ・ブレティン、
第25巻No.11bの論文“High Speeds for Generating or
Updating Graphics Splines on a Screen"に示されてい
る。この技法は、多項式関数を評価するために正確な積
分を用いるアナログ計算機による具現化を示している。
ディジタル・プロセッサを用いると、座標値を計算す
るためにマトリクス演算動作を計算するために浮動小数
点演算が要求される。この浮動小数点演算が要求される
ということは、(1)これが時間がかかるということ及
び(2)全体的に正確でないということにより不利であ
る。不正確性は、浮動小数点動作を反復して行なうこと
が必要であることから生じる。その性質により単一不動
点動作は不正確であり小さな誤りを生じる。この小さな
誤りは、1つの浮動小数点動作の結果が次の浮動小数点
動作において用いられる毎に複合される。従ってこの性
質から、一連の浮動小数点動作の結果誤りが累積する。
問題点を解決するための手段 本発明の主な目的は、従来の浮動小数点技法における
よりも正確な方法でB−スプラインを用いて曲線を与え
る方法及び装置を提供することである。
本発明の他の目的は、B−スプライン曲線を発生する
ための高速な方法及び装置を提供することである。
本発明に従うと、一組のコントロール・ポイント入力
から表示画面上に曲線イメージの可視表示を発生する方
法が実現される。一組のコントロール・ポイントは、曲
線に対する次元毎の入力である。更に、間隔の数が指定
される。この間隔の数は、各コントロール・ポイント相
互間で計算されねばならない曲線座標値の数を規定す
る。この方法は、(1)次元に対する1組の入力コント
ロール・ポイントからそって或るスケーリング・ファク
タから各次元毎の一組のスケールされたベクトル係数の
整数を計算するステップ、(2)各間隔に対する各次元
毎の前進差分(forward difference)間隔係数整数を間
隔整数及びその次元に対するスケールされたベクトル係
数整数から計算するステップ、(3)各次元に対する各
間隔毎の曲線座標値をスケーリング・パラメータ並びに
その次元及び各間隔に対する前進差分間隔係数整数から
計算するステップ、そして(4)各次元毎に上記計算さ
れた曲線座標値に従う曲線座標点及び上記計算された曲
線座標点を連続的に接続する複数値の直線を表示するス
テップを含む。
本発明に従い曲線イメージの可視表示を発生する装置
は、曲線イメージを規定する複数個のデータ点即ち制御
点及びこれらの制御点相互間の間で行なわれる計算の数
を表わす間隔の数を受取る入力手段を有する。又、上記
装置は、各間隔に対して各次元毎の曲線座標値を発生す
る処理回路を有し、そしていくつかの間隔に対する曲線
座標値の計算は同時に行なわれる。更に上記装置は、各
次元毎に上計算された曲線座標値に従う曲線座標点及び
これら計算された曲線座標点間を接続する複数個の直線
を表示することによって、曲線イメージの可視表示を生
じる表示回路を含む。
本発明では、整数演算を用いるベクトル係数の計算が
行なわれる。整数演算は、スケールされた値を計算に用
いることから生じる。言い代えると、元の値は、曲線座
標値を計算するのに行なわれるベクトル係数の計算及び
他の全ての計算が複数演算でなされるようにスケール
(scale)される。
ここで、スケールとは、2進演算を指しこれは左方向
へのシフト動作により行なわれ、そしてディスケールと
は2進除算を指しこれは右方向へのシフト動作により行
なわれる。このことは、計算に用いる初期パラメータを
スケールし、そして計算プロセスの最後のステップに除
算を行なうことにより行なわれる。整数演算の使用は、
計算の速度と正確性を増大する。更に、計算は間隔につ
いて行なわれるので、これらの計算は、いくつかの計算
ステージが同時に行なわれ得るパイプライン型のいくつ
かのステージにおいて行なわれ得る。
本発明において、整数演算の乗算動作は、2進のシフ
ト動作により行なわれる。本発明の装置において、計算
をパイプライン型で行なうように一連のレジスタと直列
に配置されている複数個の加算器により加算動作が行な
われる。シフト動作はレジスタ相互間を接続するパス
(接続器)において行なわれる。良好なる実施例におい
て、最後の計算ステージは、浮動小数点動作ではなく、
2進シフト及び加算のみを必要とする近似除算法(appr
oximate division method)により行なわれる。2進シ
フト及び加算動作は、直列型に配列されたレジスタ及び
加算器にデータをシフトしてパイプライン動作を促進す
る装置により具現化される。
実施例の説明 第1図には、コンピュータ・グラフィック・ユニット
のブロック図が示されている。プロセッサには入出力母
線10に接続されている。プロセッサは、このシステムの
中心をなし、そして入力回路18からのユーザ入力を変換
して表示回路16にグラフィック表示を発生させる全ての
処理動作を行なう。又、メモリ14が入出力母線10に接続
され、そしてデータ及びアドレスのための一時記憶装置
として働らき、そしてコンピュータ・グラフィック・タ
スクを行なう場合にプロセッサ12により実行されるソフ
トウェア・インストラクションを記憶する。
B−スプライン型を具現化して曲線を発生する1つの
技法は、座標点に対する一組のパラメトリック増分値を
発生することである。このような1つの技法は、B−ス
プライン前進差分法として知られている。前進差分法
は、前記刊行物Principles of Interactive Computer G
raphicsの第326−329頁において検討されている。前進
差分法は、座標値を近似化する技法である。この増分技
法を用いて、B−スプライン曲線の座標値を計算するこ
とができる。このようにして1つの完成されたB−スプ
ライン曲線は一組の座標値として指定されることができ
る。座標値は、座標系内の曲線のポイントを規定するよ
うに組合わされることができる。言い代えるとB−スプ
ライン前進差分法を用いて、全ての直交成分(例えば、
x、y及びz)に対する座標値は計算されそして結果的
な座標系内の曲線を表わす。
結果的な曲線がこの曲線を指定するのに用いられるポ
イントを通過しないように位置されることがB−スプラ
イン型の特徴である。従って、ユーザが複数の指定ポイ
ントに曲線を通過させることを望むシステムでは、補間
スプライン技法が用いられる。この技法は、前記刊行物
Computer Aided Geometric Designの第317乃至326頁に
説明されている。補間スプラインを用いることにより、
ユーザが入力したポイントは、B−スプライン曲線を規
定するのに用いられるコントロール・ポイントに変換さ
れる。しかしながら、本発明は、コントロール・ポイン
ト即ち制御点として指定されるB−スプライン曲線を対
象とする。
前述の如く、本発明の良好な実施例は、B−スプライ
ン型の曲線の発生の具現化に関する。B−スプライン曲
線を形成する1つの方法は、次元(dimensional)座標
の夫々に対して次式を用いる。
x(t)=[t3t2t1][1/6] この等式は各座標値毎に即ちy(t)そして必要なら
ばz(t)毎に解かれることに注目されたい。上式にお
いて、Pi−1、Pi、Pi+1、及びPi+2は、B−スプラ
イン制御点のX軸の座標を表わす。B−スプライン制御
点は、第2図で点20、22、24及び26として示されてお
り、これらは集合的にB−スプライン曲線30を規定す
る。前述の如く、B−スプライン曲線30は、制御点20、
22、24及び26のどれをも通過しない。以下の本発明につ
いての説明では、ユーザが制御点を指定することにより
所望のB−スプライン曲線セグメントを指定するものと
仮定する。しかしながら、ユーザは、曲線を通過させた
い点を指定することもできる。前述の如く、通過点を制
御点に変換するために補間スプライン技法を用いること
ができる。従って、このようにして、コンピュータは、
製図技師が雲型定規を用いるのと同様にして一組の点に
複数の曲線を当てはめることができる。
B−スプライン技法及び雲型定規技法のいづれも、1
つの曲線セグメントを規定する小数の点を用い、そして
これらの点を用いて複数セグメントを接続して連続曲線
を生じるという点で、B−スプライン技法を雲型定規技
法と同等に捕えることは適切である。
第1図を参照するに、ユーザは、例えばキーボードの
如き入力装置を介して制御点のアレイを入力する。これ
らの制御点はメモリ14に記憶される。次いでプロセッサ
12は、メモリ14に記憶されている一組のインストラクシ
ョンを実行して一組の曲線座標点を発生する。これらの
曲線座標点は次いで直線により接続されて曲線イメージ
を発生する。そしてこの曲線イメージは、例えば陰極線
管の如き表示回路16上に表示され、ユーザはこれを見る
ことができる。もしも制御点の数そしてこれら制御点相
互間の曲線座標値の計算を規定する繰返しの数が非常に
多いならば、ユーザは表示回路16に表示される曲線イメ
ージの点を接続する直線セグメントを殆ど認識しない。
従って曲線イメージは連続的曲線として表示される。プ
ロセッサ12により実行されるソフトウェア・インストラ
クションは第3A及び3B図のフローチャートに示されてい
る。第3A及び3B図に示されているソフトウェアは、指定
された複数の制御点相互間の曲線座標値を計算する前進
差分法を行なう。特に、前進差分法に対して行なわれる
演算が整数演算であるように計算は縮められている。後
掲の補足説明Aは、基本的な3次元B−スプライン・マ
トリクス式の詳細を示し、そして浮動小数点を用いそし
て整数を用いる前進差分法について検討する。第3A図の
フローチャートは、開始ステップ40で始まり、次いで外
側ループ・カウント・ステップ42を開始する。次のステ
ップは決定ステツプ44であり、現在のIのカウントが、
量NUMPTS−3により小さいか否かを調べる。このソフト
ウェアにおいて、NUMPTSは入力され終えた制御点の数で
ある。ソフトウェアはこれらの制御点をアレイPとして
参照する。計算の間、4のグループ内の制御点がB−ス
プライン・セグメントを計算するのに用いられる。従っ
てステップ48において、変数P1、P2、P3及びP4は、セグ
メントの計算のための4つの連続する制御点に等しくセ
ットされる。次のステップ49は、実際のB−スプライン
・セグメントを計算する。B−スプライン・セグメント
の計算は、第3B図のフローチャートに示されている。B
−スプライン・セグメントが計算され終えると、ステッ
プ50において外側ループ・カウントIが歩進され、そし
て決定ステップ44が実行される。Iが入力制御点の数−
3より大きいならば、このプログラムは終了ステップ46
で示すように終了する。
第3B図を参照するに、このプログラムは開始ステップ
60において開始され、次いでステップ62の初期設定ステ
ージが行なわれる。N2、N3及びDENOMが初期設定され
る。N2は、N+Nに等しくセットされ、ここでN=Log2
(NL)であり、そしてNLは、計算されるべき間隔の数で
ある。N3はN2+Nに等しい。DENOM(分母、denominato
r)は、6をN3だけ左へシフトしたのに等しくセットさ
れる(記号<<は左シフトを示す)。DENOMは、6によ
る除算動作を整数スケール乗算(N3)と組合わせるスケ
ーリング・パラメータである。DENOMの除算を最後のス
テップ迄遅らせることにより、残りのステップの乗算及
び加算は整数演算で行なわれることができる。次のステ
ップ64は、基本マトリクス(M)及び幾何学(geometr
y)ベクトル(G)のクロス積から計算される幾何学ベ
クトル係数ベクトル[a、b、c及びd]を計算する。
変数P1、P2、P3及びP4は、第3A図のステップ48で入力さ
れた制御点である。ステップ64において、或る数による
或る変数の左シフトは、この数の2進乗算に等しい。ス
テップ66において、初期の前進差分値が計算される。こ
れらの値は、D1(第1差分)、D2(第2差分)、D3(第
3差分)及びF(実際のスプライン座標値の関数結果)
を含む。更に、第1曲線座標値S[0]がF/DENOMとし
て計算される。前進差分値FはDENOMパラメータにより
除算され、そしてこれは同じ動作において16による除算
及びディスケール(descaling)を行なう。この除算
は、プロセッサにおける整数除算動作により行なわれて
もよく又は、他の実施例のように除算近似技法により近
似化されることもできる。
次のステップ68は、内側ループのカウント(計数)を
1に初期設定する。内側ループは次いでステップ70に入
り、JがNLより小さいか否かが調べられ、これは実際の
入力繰返し数である。NLは、制御点相互間で行なわれる
べき曲線座標値の計算の数言い代えると内側ループで行
なわれるべき計算の数を指定する入力値であることを理
解されたい。内側ループはステップ70、74、76及び帰還
線78より成る。ステップ70の後、ステップ74が行なわれ
て、次の前進差分値及び曲線座標値S[J]を計算す
る。ステップ76において、Jが歩進されそしてステップ
70が繰り返される。この内側ループは、Jが繰り返しの
数に等しくなる迄実行される。次いでこのループは線71
を介してステップ73に進み、そしてプロセッサの動作を
第3A図のステップ50に復帰させる。
第3A及び3B図のソフトウェアは、各座標即ちX、Y及
び必要ならばZ毎に実行されねばならないことを理解さ
れたい。良好なる実施例においては、行なわれるべき繰
り返しの数(NL)は32に等しい。又、前述の如く、除算
動作は、後掲の補足説明Bに示されている除算近似技法
により行なわれることができ、第3A及び3B図に示すソフ
トウェアのパフォーマンスに対する整数除算動作の必要
性を全体的に排除する。
第4図は本発明の他の実施例のブロック図である。第
4図において、プロセッサ82は、メモリ84及び入力装置
86と共に入出力母線80に接続されている。表示回路96も
又線94を介して入出力母線80に接続されている。更に、
曲線発生回路90が線88により入出力母線80に接続され、
そして線92を介して表示回路96に接続されている。第4
図のこの装置の通常の動作において、線94は、表示回路
96を初期設定するのに用いられる。曲線イメージの入力
は、曲線発生回路90から線92を介して表示回路96に直接
入力される。第4図の実施例は、ソフトウェア実行の多
くをプロセッサ82から取り、動作速度を高めている。
第5図は、第4図の曲線発生回路90のブロック図であ
る。第5図において、シーケンサ(順序制御回路)100
が設けられ、これは線114bを介して加算器125をそして
線114aを介してシフト回路120を制御する。線114bは、
線116及び122からの内容を加算するように若しくは線12
2の内容を通過するように加算器125を制御する。更に、
シーケンサ100は、レジスタ・ファイル108を制御する。
レジスタ・ファイル108は、入出力母線80に接続され、D
1、D2、D3及びFの初期値を受けとる。ループ・カウン
タ108が線88bを介して入出力母線80に接続されそして線
102を介してシーケンサ100にループ・カウントを送る。
更に、シーケンサ100は、市販型の描線回路130に対し線
110及び120を介して制御インターフェイスを与える。描
線回路130は、ラッチ124から線126を介して出力を受け
とる。ラッチ124内の値は、加算器125の出力である。描
線回路130は、曲線を規定する各曲線座標値を受けと
る。更に、描線回路130は、線の値を計算し、これは曲
線座標値により規定されるこれらの曲線点を変換する。
線及び点の組合わせは、表示装置上の各画素のオン・オ
フ状態を規定する。描線回路130は、画素データをバッ
ファ・メモリ132へ与え、そしてこの画素データは線92
を介して表示回路へ送られ、最終の曲線イメージを表示
する。
シーケンサ100、ループ・カウンタ104、レジスタ・フ
ァイル108、シフト回路120及び加算器125は、ステップ7
4で計算された前進差分値、ステップ74の曲線座標値
(S[J])並びにステップ70及び76のループ・カウン
タ制御関数を計算するように構成されている。従って、
プロセッサ82は、初期幾何学ベクトル係数及び初期前進
差分値を計算することにだけを必要とする。入出力母線
80から線88aを介して初期前進差分値をレジスタ・ファ
イル108に記憶した後、プロセッサ82はループ・カウン
タ104を開始させ、そしてシーケンサ100は、各間隔毎の
前進差分値及び結果的な曲線座標値の計算を自動的に開
始する。これらの値は、線126を介して描線回路130への
入力である。線112はシーケンサ100により用いられ、線
126上の値が入力の準備がととのったことを描線回路130
に合図する。描線回路130は線110を介して、待ち信号を
シーケンサ100に送り、この描線回路130が準備完了とな
る迄曲線座標値の計算を遅延する。この実施例では、最
後の除算動作は、後掲の補足説明Bに示す近似除算技法
(approximate division technique)により行なわれ
る。この技法を用いるに当っては、シーケンサ100の制
御のもとにシフト回路120が最終座標値を計算し、そし
てこの値が線126を介して描線回路130へ入力する迄ラッ
チ124に記憶されることを必要とする。第5図の回路は
各座標軸毎に反復されること又は第5図の回路における
計算がこれら座標軸毎に繰り返されねばならないことを
理解されたい。
第6A及び6B図は、第4図の曲線発生回路90の第2の実
施例である。再びこの回路も、第3B図のステップ74で計
算された前進差分値及び曲線座標値並びにステップ70及
び76のループ・カウンタ制御関数を計算する。第6A図を
参照するに、制御論理回路155は線153を介してループ・
カウンタ151に接続され、そして線157に制御信号を発生
する。線157は、レジスタ150、156、160及び166を制御
する。最初、レジスタ150には線88cを介して値D3がつめ
込まれる。レジスタ156には第3のループ繰り返しのた
めの値D2がつめ込まれる。レジスタ160には、第2のル
ープ繰り返しのための値D1が線88eを介してつめ込まれ
る。レジスタ166には、線88fを介して、最初のループ繰
り返しのための値Fがつめ込まれる。レジスタ166の出
力は必要ならば線88gを介してプロセッサ82に送り返さ
れる。線170の出力は、補足説明Bの近似除算技法を行
いそしてクロック・サイクル毎に結果を生じる回路に送
られる。この近似除算回路は第6B図に示されている。線
170上の値Fはレジスタ172及び174に入力される。これ
らは、シフトされた値を受けとるレジスタである。レジ
スタ172は3つの2進位置だけ右にシフトされたFの値
を受けとる。レジスタ174は、5つの2進位置だけ右に
シフトされたFの値を受けとる。レジスタ174の内容
は、レジスタ172の内容と共に加算器176につめ込まれ
る。レジスタ174の内容は又レジスタ180につめ込まれ
る。加算器176はレジスタ178に出力を与え、このレジス
タはF/8+F/32の部分的な商を含む。レジスタ180の内容
は右へ2つの2進位置だけシフトされそしてレジスタ17
8の内容と共に加算器182に与えられる。加算器182から
の結果はレジスタ184に与えられ、そしてこれはF/8+F/
32+F/128の部分的な商である。レジスタ180の内容はレ
ジスタ186に入力され、そして2つの2進位置だけ右に
シフトされる。再び、レジスタ186の内容はレジスタ184
の内容と共に加算器188で組合わされて、レジスタ190に
入力され、これはF/8+F/32+F/128+F/512の部分的な
商である。次いで、レジスタ186の内容はレジスタ192に
入力されて右に2つの2進位置だけシフトされる。レジ
スタ192の内容はレジスタ190の内容と共に加算器194に
入力されスケールされた商を生じる。丸めは加算器200
において行なわれ、これはレジスタ196内のスケールさ
れた商の第15番目のビツトを取り出してそしてこれを、
レジスタ196の内容を右に15の2進位置だけシフトした
値に加算する。加算器200の出力はレジスタ202に入れら
れる。前述のように、この曲線座標値は線205を介して
描線回路204に与えられる。次いで、描線回路は全座標
軸に対するこれら曲線座標値を組合わせて曲線座標点及
びこれらの点を結ぶ線を発生する。これらのデータは、
画素情報としてバッファ・メモリ206に送られ、そして
これはイメージ・データを線92を介して表示回路96(第
4図)に供給する。
本発明を、前述の特定な実施例を参照して説明したが
これに本発明が限定されるものではない。
発明の効果 B−スプライン曲線の発生において、整数演算を用い
ることにより計算の速度及び正確性を増大する。
補足説明A 3次元B−スプラインは、コンピュータ・グラフィッ
クスの断片的な多項式関数である。曲線を指定するには
数多くの方法があるが、有用な公式は、J.D.Foley及び
A.Van Damによる本“Fundamentals of Interactive Com
puter Graphics"の第521及び522頁に示されている。こ
れは次のようなマトリクス式を生じる。
x(t)=[t3t2t1][1/6] 変数tは0から1の範囲のパラメトリック変数であ
り、そして変数PはB−スプライン制御点のX軸座標を
表わす。(1/6)の値はスカラでありマトリクス表現の
どの場所へも動かし得る。さし当り(1/6)のスカラ項
を無視して、マトリクス乗算及び項を集めると次のよう
な3次式が得られる。
(t3)(+pi-1+3pi−3pi+1+pi+2) +(t2)(3pi-1+6pi+3pi+1) +(t)(−3pi-1+3i+1) +(pi-1+4pi+pi+1) 前進差分法 パラメータの連続した値に対して曲線の座標を計算し
ていく増分法の最も一般的なものが前進差分法であり、
これはパラメータの等差分でパラメータ多項式(ここで
は3次式)を評価する。3次式の標準型は次の如くであ
る。
at3=bt3+ct+d=0 W.M.Newman及びR.F.Sroullによる本“Principales of
Interactive Computer Graphics"第2版には、3次元
多項式関数を前進差分するための次の方法が検討されて
いる。tの間隔(インターバル)の寸法が等しいものと
し、そして評価がt=0で開始するものとすると、その
次の点はわずか3回の加算を伴なうだけで求められるこ
とができる。このことは周知であるが、前進差分法が浮
動小数点の計算を必要とするために余り用いられない。
しかしながら、前進差分法は、スケールされた整数に拡
張されることができる。これは、浮動小数点の前進差分
法が累積的な丸めの誤差のために数字的に不安定な計算
を引き起こすという欠陥を除去する。前記Newman及びSp
roallの本の第327及び328頁によると、初期条件は次の
如くである。
p=d α=aδ+bδ+cδ α=6aδ+2bδ α=6aδ 反復関係は次の通りである。
p=p+α α=α+α α=α+α 変数δは1/nであり、ここでnはtにおける間隔の数
である。B−スプライン曲線上の点のX軸座標に対する
計算がなされ、そして次いで対応するY軸座標に対して
なされる。例えば、次の値が制御点のX軸座標に対して
選択される。
Pi−1=10;Pi=5、Pi+1=9; Pi+2=20 t=0の時、x(t)=39/6=6.5 t=0.1の時、x(t)=38.968/6 =6.495 前進差分法において6で除算する計算は最後に行なわ
れ、従って前進差分された多項式関数の結果値は6倍と
なり大きくなる。
浮動小数点前進差分法 浮動小数点前進差分法を次式の多項式関数の結果に適
用すると、 P=39 実際の点は(P/6)即ち(39/6)=6.5 α=(−2)(.13)+(27)(.12) +(−3)(.1)=−0.032 α=(6)(−2)(.13)+(2)(27) (.12)=0.528 α=(6)(−2)(.13)=−0.012 t=0.1に対する反復関係は次を生じる。
P=39+(−0.032)=38.968 実際の点は(38.968/6)6.495 α=(−0.032)+(0.528) =0.496 α=(0.528)+(−0.012) =0.516 多項式関数の次の点はt=0.2においてでありそして
結果は次の如くである。
P=38.968+(0.496) =39.464 実際の点は(39.464/6)6.577 α=(0.496)+(0.516) =1.012 α=(0.516)+(−0.012) =0.504 スケールされた前進差分法 スケールされた前進差分法式の適用は、浮動小数点前
進差分法への簡単な拡張である。スケールされた前進差
分は、下記のようにすると、 e=[(0.1)(10)]=1 f=[(0.1)(10)](10)=10 g=[(0.1)(10)](10)=100 次のようになる。
p=[(39)(103)]/[(6)(103)] =6.5 α=(−2)(e)+(27)(f)+(−3)(g)
=−32 α=(6)(−2)(e)+(2)(27)(f)=52
8 α=(6)(−2)(e)=−12 e、f及びgの値は、スケールされた整数前進差分に
対するキーである。もしもnが間隔の数であるならば次
のようになる。
e=1 f=n g=n2 共通分数はn3である。
これは全体の表現に対する共通な分母を得る簡単な方
法であり、従って各点が計算されるにつれて、これは1
つの値で除算することによりスケールを戻される。例示
の場合には、共通項は1000である。これは間隔の数即ち
nの3乗であり、そしてこの例の場合にはnの値は10で
ある。6による除算は、元のマトリクス表現のスカラを
説明し、そしてこの除算動作は、x(t)の正しい値が
計算されるように行なわれねばならない。
t=0.1に対する反復関係は次を生じる。
p=(39000−32)=38968 実際の点は(38968/6000)6.495 α=(−32)+(528)=496 α=(528)+(−12)=516 除算が最後の動作で行なわれるのでスカラはスケール
されねばならないことに注目されたい。
多項式関数の次の点はt=0.2においてでありそして
次のスケールされた前進差分式を生じる。
P=[38968+(496)]=39464 実際の点は(39464/6000)6.577 α=(496)+(516)=1012 α=(516)+(−12)=504 スケーリングに対して任意の基数が選択されることが
できる。スケーリングが一連のシフトにより行なわれる
ように2のべきが適切である。6による最後の除算が遅
らされるので、2のべきによるスケーリングは前進差分
の前に行なわれる。各点Pが計算されるにつれて、これ
は右にシフトされることにより収縮される。次いで、P
の小さな値に対して6による除算が行なわれることがで
きる。このようなセーピングはパーソナル・コンピュー
タの如きRISCアーキテクチュの機械では魅力的である。
実際、6による除算は補足説明Bで示すように一連のシ
フト及び加算により近似化されることができる。スケー
ルされた場合における全ての動作は整数動作である。
残りの疑問は、パラメータ空間tに対して幾つの間隔
が適切であるかである。これの答は、パラメータ空間t
に対する間隔の数及び制御点Pのサイズに依存する。
制御点の値Pのレンジを表わすビットの数をgとし、
そしてパラメトリック変数tが除算される間隔の数nを
表わすビットの数をrとすると、 g=[log2P]そして r=[log2n] 従ってg及びrはこれらの対数表現の限界である。
正の値のレンジは次の中に含まれる。
(3)(r)+(2+g)+1ビット そして負の値のレンジは次の中に含まれる。
(3)(r)+(2+g)+2ビット 従ってこれらの値のレンジを表わす組合わされたビッ
トの数は、次の如くである。
(3)(r)+(2+g)+2ビット 例として、もしも制御点の座標が10ビットで表わさ
れ、そして整数は32ビットの整数であるならば、パラメ
トリック空間tに最大64の間隔を有する。これは次に基
づく。
26=64、従ってr=6及びg=10 次いで、ビットの数は (3)(6)+(2+10)+2=32ビット。
補足説明B 6による除算の概要 6による除算は、一連のシフト及び加算により近似さ
れる。説明する方法は、3172画素×3172画素のビット・
マップに対して適切なものであるが、1024画素×1024画
素の場合にも同じ数のステップが必要となる。最小スケ
ーリングファクタが213であることに注目されたい。曲
線の描画の歩進の数に関してハードウェアは、セクショ
ク当り描かれるべき間隔を少なくとも25即ち32必要とす
る。6による除算は、次の級数により必要な精度に近づ
けられる。
この数はn3=n3(これは他のシフト動作である)によ
りディスケールされねばならない。この級数と1/6の実
際の値の間の近似誤差は約0.00016276即ち6144では約1
である。もしも誤りが1画素の半分を超えないようにさ
れるとすれば、これは3072画素×3072画素のビット・マ
ップに対して十分である。
6による除算の例 例として、177.5/6が曲線上の1点に対するスクリー
ン座標であるとする。曲線の各セクション毎のライン・
セグメント間隔の数が32即ち25であるとする。このこと
はスケーリング・ファクタが215即ち32768であることを
意味する。以下において、16進数は下側に記したhexで
表わし、そして2進数はbinaryで表わす。他の全ての数
は基数10であり下側説明文字を附していない。スケール
された前進差分法から生じる数は次の如くである。
(6)(177.5/6)(215)=(177.5)(32,768) =5,816,320=58C000hex 近似除算は2つのレジスタR0及びR1を必要とする。ス
ケールされる数をλで示すと、初期状態は、次の通りで
ある。
これらは元のスケールされる値λを右に3ビットそし
て5ビット夫々シフトされている。この例における元の
値は次の通りである。
58C000hex,or0101 1000 1100 0000 0000 0000 6による除算は次の5ステップで近似されそして最後
のディスケーリング及び丸めは第6番目のステップで行
なわれる。
ステップ1 R0の初期値は次の通りである。
これは上記2進値を右に3ビットだけシフトしたのに
等しく、従って、 R0=1011 0001 1000 0000 0000 binary ステップ2 R1の初期値は次の通りである。
これは上記2進値を右に5ビットだけシフトしたのに
等しく、従って、 R1=0010 1100 0110 0000 0000 binary ステップ2の最後とR1の内容はR0に加算され従ってス
テップ2の最後のレジスタの内容は次の如くである。
R0=B1800hex+2C600hex=DDE00hex、 and R1=2C600hex ステップ3 ステップ3において、R1の内容は2ビットだけ右にシ
フトされる。R1の以前の値は(λ/32)なので、このシ
フト後のR1の値は(λ/128)に等しい。この例の場合
は、値は次の通りである。
R1=B180hex 次いでこの値はR0の値に加算され、従ってステップ3
の最後におけるレジスタの内容は次の通りである。
R0=DDE00hex+B180hex=E8F80hex、 そしてR1=B180hex ステップ4 R1の内容は再び2ビットだけ右にシフトされる。R1
以前の値は(λ/128)であるので、シフト後のR1の値は
(λ/512)に等しくこの例の場合、値は次の通りであ
る。
R1=2C60hex 次いでこの値はR0の値に加算され、従ってステップ4
の最後におけるレジスタの内容は次の通りである。
R0=E8F80hex+2C60hex=EBBE0hex、 そしてR1=2C60hex ステップ5 R1の内容は再び2ビットだけ右にシフトされる。R1
以前の値は(λ/512)であるので、シフト後のR1の値は
(λ/2048)に等しく、そしてこの値の場合、値は次の
通りである。
R1=B18hex この値は次いでR0の値に加算され、従ってステップ5
の最後におけるレジスタの内容は次の通りである。
R0=EBBE0hex+B18hex=EC6F8hex、 そしてR1=B18hex ステップ6 この最後のステップは値をディスケール及び丸める。
これは、曲線上に存在するスクリーン座標の正しく丸め
た値を生じる。この例におけるスケーリングは215であ
るので、上記結果は同じ量だけディスケールされる。ス
ケーリングは2のべきだけなされたので、ディスケーリ
ングは適切なビット数だけ右にシフトして行なわれる。
ステップ5から生じる数はEC6F8hex(R0の値)であり、
これを2進数で表わすと次の通りである。
EC6F8hex=1110 1100 0110 1111 1000 binary この数は右に15ビットだけシフトされ、そしてこのこ
とは215=32768で除算したことに等しい。これは、正し
く切り捨てられた結果を生じるが、丸めは、切り捨てら
れるべき最後のビットが1若しくは0であるかを検出す
ることにより行なわれることができる。もしもこれが0
であるからば、切り捨てられた結果は正しく丸められ
る。もしもこれが1であるならば、切り捨ての結果に1
が加えられねばならない。16進で表わすと次の通りであ
る。
シフトの後、次の2進値の端数が得られここで点は基
数点の結果を示す。基数点の左は整数であり、基数点の
右は端数である。
切り捨てられるべき最後のビットは1であり、そして
1が1Dhexの結果に加えられ、1Ehexを生じる。
元の座標数の10進値は次の通りである。
正しく丸められた結果は30でありそして次に示すよう
にこれはこの高速で且つ効率的な方法の結果である。
1Ehex=30
【図面の簡単な説明】
第1図はコンピュータ・グラフィック・システムを示す
図、第2図はB−スプライン曲線及び制御点を示す図、
第3A図は曲線座標値を発生するフローチャートを示す
図、第3B図はB−スプライン・セグメント値を計算する
のに用いられるフローチャートを示す図、第4図は本発
明の実施例を用いるコンピュータ・グラフィック・シス
テムを示す図、第5図は曲線発生回路の第1の実施例の
ブロックを示す図、第6A図及び第6B図は曲線発生回路の
第2の実施例のブロック図を示す図。 10、80……入出力母線、12、82……プロセッサ、14、84
……メモリ、16、96……表示回路、18、86……入力回
路、90……曲線発生回路、100……シーケンサ、104、15
1……ループ・カウンタ、108……レジスタ・ファイル、
120……シフト回路、125……加算回路、124……ラッ
チ、130、204……描線回路、132、206……バッファ・メ
モリ、155……制御論理回路。
フロントページの続き (72)発明者 アーサー・アモス・カウフマン、ジュニ ア アメリカ合衆国テキサス州オースチン、 クオーツ・サークル11701番地 (56)参考文献 特開 昭59−103170(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】画面上に表示される曲線イメージを規定す
    る複数個の制御点及び該制御点間で計算されねばならな
    い曲線座標値の数を規定する間隔の数を受け取る入力手
    段と、 各次元座標ごとに、複数の上記間隔に対する曲線座標値
    を同時にパイプライン型で計算するディジタル処理手段
    であって、上記ディジタル処理手段は2進シフト及び加
    算動作により乗算動作を行う複数の整数演算ステージ
    と、該演算ステージとは逆方向の2進シフト及び加算動
    作により整数除算動作を行う最終ステージとを介して上
    記曲線座標値の計算を整数演算動作で実行するものと、 計算された上記各次元座標の曲線座標値に従う曲線座標
    点及び該曲線座標点間を接続する複数の直線を表示する
    ことにより上記曲線イメージの可視表示を生じる手段と
    を備える、曲線イメージの可視表示発生装置。
JP62114925A 1986-06-13 1987-05-13 曲線イメ−ジの可視表示発生装置 Expired - Lifetime JP2501580B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/873,902 US4760548A (en) 1986-06-13 1986-06-13 Method and apparatus for producing a curve image
US873902 1986-06-13

Publications (2)

Publication Number Publication Date
JPS62297984A JPS62297984A (ja) 1987-12-25
JP2501580B2 true JP2501580B2 (ja) 1996-05-29

Family

ID=25362561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62114925A Expired - Lifetime JP2501580B2 (ja) 1986-06-13 1987-05-13 曲線イメ−ジの可視表示発生装置

Country Status (9)

Country Link
US (1) US4760548A (ja)
EP (1) EP0249705B1 (ja)
JP (1) JP2501580B2 (ja)
AT (1) ATE127599T1 (ja)
AU (2) AU629173B2 (ja)
BR (1) BR8702847A (ja)
CA (1) CA1277787C (ja)
DE (1) DE3751505T2 (ja)
MX (1) MX169045B (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791581A (en) * 1985-07-27 1988-12-13 Sony Corporation Method and apparatus of forming curved surfaces
GB2204216B (en) * 1987-04-30 1991-02-06 Ibm Curve generation in a display system
GB2204767B (en) * 1987-05-08 1991-11-13 Sun Microsystems Inc Method and apparatus for adaptive forward differencing in the rendering of curves and surfaces
JP2588257B2 (ja) * 1988-09-30 1997-03-05 沖電気工業株式会社 輪郭近似方式
US5054097A (en) * 1988-11-23 1991-10-01 Schlumberger Technologies, Inc. Methods and apparatus for alignment of images
US5179647A (en) * 1989-01-09 1993-01-12 Sun Microsystem, Inc. Method and apparatus for implementing adaptive forward differencing using integer arithmetic
JPH02184970A (ja) * 1989-01-11 1990-07-19 Ricoh Co Ltd 3次式演算装置
JPH0766451B2 (ja) * 1989-10-24 1995-07-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・グラフィック装置
US5317682A (en) * 1989-10-24 1994-05-31 International Business Machines Corporation Parametric curve evaluation method and apparatus for a computer graphics display system
US5471573A (en) * 1989-12-07 1995-11-28 Apple Computer, Inc. Optimized scan conversion of outlines for generating raster images
EP0488563A3 (en) * 1990-11-30 1993-11-03 Ibm Method and apparatus for rendering trimmed parametric surfaces
AU8932191A (en) * 1990-11-30 1992-06-25 Cambridge Animation Systems Limited Image synthesis and processing
US5408598A (en) * 1991-05-23 1995-04-18 International Business Machines Corporation Method for fast generation of parametric curves employing a pre-calculated number of line segments in accordance with a determined error threshold
US5330477A (en) * 1992-01-28 1994-07-19 Amei Technologies Inc. Apparatus and method for bone fixation and fusion stimulation
DE69314688T2 (de) * 1992-04-23 1998-02-19 Heidenhain Gmbh Dr Johannes Numerische Steuerungseinrichtung und Verfahren zur Steuerung der Bewegung eines Werkzeuges
US5365996A (en) * 1992-06-10 1994-11-22 Amei Technologies Inc. Method and apparatus for making customized fixation devices
US5363479A (en) * 1992-07-02 1994-11-08 Microsoft Corporation System and method for rendering bezier splines
US6310354B1 (en) 1996-12-03 2001-10-30 Erkki Soini Method and a device for monitoring nucleic acid amplification reactions
DE69723111T2 (de) * 1996-12-03 2004-02-19 Erkki Soini Nachweis biospezifischer fluoreszenz durch zwei-photonen-anregung
US6111588A (en) * 1996-12-05 2000-08-29 Adobe Systems Incorporated Creating and modifying curves on a computer display
GB9920401D0 (en) * 1999-08-27 1999-11-03 Isis Innovation Non-rigid motion image analysis
GB0028491D0 (en) * 2000-11-22 2001-01-10 Isis Innovation Detection of features in images
CN1465035A (zh) * 2001-06-21 2003-12-31 Hi股份有限公司 信息处理装置
US7234899B2 (en) * 2003-05-19 2007-06-26 Tdy Industries, Inc. Cutting tool having a wiper nose corner
US7220083B2 (en) 2003-10-15 2007-05-22 Tdy Industries, Inc. Cutting insert for high feed face milling
US20050197860A1 (en) * 2004-02-23 2005-09-08 Rademr, Inc. Data management system
US7421139B2 (en) * 2004-10-07 2008-09-02 Infoprint Solutions Company, Llc Reducing errors in performance sensitive transformations
US8521797B2 (en) * 2005-09-30 2013-08-27 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
US7905687B2 (en) * 2007-01-16 2011-03-15 Tdy Industries, Inc. Cutting insert, tool holder, and related method
US9529778B2 (en) 2008-03-27 2016-12-27 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
US7905689B2 (en) * 2008-05-07 2011-03-15 Tdy Industries, Inc. Cutting tool system, cutting insert, and tool holder
US7976250B2 (en) * 2009-02-12 2011-07-12 Tdy Industries, Inc. Double-sided cutting inserts for high feed milling
US8491234B2 (en) * 2009-02-12 2013-07-23 TDY Industries, LLC Double-sided cutting inserts for high feed milling
US9586264B2 (en) * 2009-04-28 2017-03-07 Kennametal Inc. Double-sided cutting insert for drilling tool
US8807884B2 (en) * 2009-12-18 2014-08-19 Kennametal Inc. Tool holder for multiple differently-shaped cutting inserts
US9283626B2 (en) 2012-09-25 2016-03-15 Kennametal Inc. Double-sided cutting inserts with anti-rotation features
US9011049B2 (en) 2012-09-25 2015-04-21 Kennametal Inc. Double-sided cutting inserts with anti-rotation features

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4272808A (en) * 1979-05-21 1981-06-09 Sperry Corporation Digital graphics generation system
US4484298A (en) * 1981-04-30 1984-11-20 Yokogawa Hokushin Electric Corporation Method and device for generation of quadratic curve signal
US4441104A (en) * 1981-12-31 1984-04-03 Mattel, Inc. Graphic effects generator

Also Published As

Publication number Publication date
EP0249705A3 (en) 1990-06-27
AU7370187A (en) 1987-12-17
DE3751505T2 (de) 1996-04-18
ATE127599T1 (de) 1995-09-15
US4760548A (en) 1988-07-26
AU629173B2 (en) 1992-10-01
DE3751505D1 (de) 1995-10-12
JPS62297984A (ja) 1987-12-25
CA1277787C (en) 1990-12-11
BR8702847A (pt) 1988-03-01
MX169045B (es) 1993-06-18
AU6590090A (en) 1991-02-21
EP0249705A2 (en) 1987-12-23
EP0249705B1 (en) 1995-09-06

Similar Documents

Publication Publication Date Title
JP2501580B2 (ja) 曲線イメ−ジの可視表示発生装置
US5973705A (en) Geometry pipeline implemented on a SIMD machine
US6377265B1 (en) Digital differential analyzer
US6906718B1 (en) Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics
US7400324B2 (en) Computer graphics systems and methods for encoding subdivision triangular surfaces
US5214754A (en) Method and apparatus for approximating polygonal line to curve
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
JP2734711B2 (ja) 曲線発生装置
US5179647A (en) Method and apparatus for implementing adaptive forward differencing using integer arithmetic
US5418901A (en) Shading method and shading apparatus for computer graphics
JP3447614B2 (ja) 分数演算器、グラフィック用セットアップエンジン、分数演算方法、及び機械読み出し可能な記憶媒体
JP2677273B2 (ja) 3次ベジェ曲線の折線近似装置
JP3059739B2 (ja) 曲線描画機能を備えた情報処理装置および処理方法
JP2538645B2 (ja) 曲線の折線近似装置
US6654777B1 (en) Single precision inverse square root generator
JPH0293772A (ja) 輪郭近似方式
US7061494B1 (en) Method and apparatus for hardware optimization of graphics pipeline functions
JP2748787B2 (ja) 曲線発生装置
US4999797A (en) Method of and device for circle generation
JPH0766451B2 (ja) コンピュータ・グラフィック装置
EP0334600A2 (en) Interpolation method and apparatus
JP3358891B2 (ja) Z値の透視変換処理方法及び画像処理装置
Hassler A VLSI Algorithm for Integer Forward Differencing
DeRose Technical Report 87-08-07 August 1987
JPH04346391A (ja) ベクトルフォント描画装置