JPH06231261A - 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム - Google Patents
折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システムInfo
- Publication number
- JPH06231261A JPH06231261A JP1385593A JP1385593A JPH06231261A JP H06231261 A JPH06231261 A JP H06231261A JP 1385593 A JP1385593 A JP 1385593A JP 1385593 A JP1385593 A JP 1385593A JP H06231261 A JPH06231261 A JP H06231261A
- Authority
- JP
- Japan
- Prior art keywords
- parametric
- trimming curve
- curved surface
- curve
- trimming
- 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.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】
【目的】 トリミング曲線の曲面上での誤差を指定され
た値以下にする、トリミング曲線の折線による近似方法
を備えたグラフィックシステムを提供する。 【構成】 ファイリング装置613に予め格納、または
マウス604等により入力されたトリミング曲線は、メ
モリ602に格納される。キーボード603から指定さ
れた許容誤差値は、メモリ602に格納される。装置6
13には、トリミング曲線を折線により近似する際に、
任意の許容誤差値に基づいて折線の数を決定するプログ
ラムが格納されている。このプログラムはメモリ602
に読みだされ、CPU601で実行されて指定された許
容誤差値に基づき折線の数が決定され、トリミング曲線
の図形データが作成されてメモリ602に格納される。
このデータはグラフィックサブシステム607に転送さ
れ、CRT611に表示される。
た値以下にする、トリミング曲線の折線による近似方法
を備えたグラフィックシステムを提供する。 【構成】 ファイリング装置613に予め格納、または
マウス604等により入力されたトリミング曲線は、メ
モリ602に格納される。キーボード603から指定さ
れた許容誤差値は、メモリ602に格納される。装置6
13には、トリミング曲線を折線により近似する際に、
任意の許容誤差値に基づいて折線の数を決定するプログ
ラムが格納されている。このプログラムはメモリ602
に読みだされ、CPU601で実行されて指定された許
容誤差値に基づき折線の数が決定され、トリミング曲線
の図形データが作成されてメモリ602に格納される。
このデータはグラフィックサブシステム607に転送さ
れ、CRT611に表示される。
Description
【0001】
【産業上の利用分野】本発明は、パラメトリック曲面を
グラフィックディスプレイ等に描画するグラフィックシ
ステムに係り、特にパラメトリック曲面をパラメトリッ
クトリミング曲線によってトリミングするようなグラフ
ィックシステムに係る。
グラフィックディスプレイ等に描画するグラフィックシ
ステムに係り、特にパラメトリック曲面をパラメトリッ
クトリミング曲線によってトリミングするようなグラフ
ィックシステムに係る。
【0002】
【従来の技術】一般に、グラフィックシステムにおいて
曲線を表示する場合、曲線をドット(点)の列として表
示させようとすると複雑な処理を必要とするため、複数
の連続した線分からなる折線で近似して表示する。線分
を発生するには、例えば、DDA(Digital D
ifferential Analizer)を用いる
方法がある。
曲線を表示する場合、曲線をドット(点)の列として表
示させようとすると複雑な処理を必要とするため、複数
の連続した線分からなる折線で近似して表示する。線分
を発生するには、例えば、DDA(Digital D
ifferential Analizer)を用いる
方法がある。
【0003】即ち、曲線の折線近似は、曲線上に適当な
N(≧1)個の点(これを分割点と称する)を採り、上
記曲線の始点と第1番目の分割点、第1番目の分割点と
第2番目の分割点、……、第N−1番目の分割点と第N
番目の分割点、第N番目の分割点と終点とを線分で結ん
だ折線で近似することによってなされる。
N(≧1)個の点(これを分割点と称する)を採り、上
記曲線の始点と第1番目の分割点、第1番目の分割点と
第2番目の分割点、……、第N−1番目の分割点と第N
番目の分割点、第N番目の分割点と終点とを線分で結ん
だ折線で近似することによってなされる。
【0004】同様に、曲面をドットの列により表示させ
ようとすると複雑な処理を必要とするため、複数の連続
した多角形からなる開多面体又は閉多面体で近似して表
示する。上記多角形(正確には、この多角形を塗り潰す
ためのドット列)を発生させるためには、上記のように
線分を表示する場合と同様に、DDAを用いる方法があ
る(ただし、線分を発生させるDDAを2次元のDDA
と称し、多角形を発生させるDDAを3次元のDDAと
称する)。
ようとすると複雑な処理を必要とするため、複数の連続
した多角形からなる開多面体又は閉多面体で近似して表
示する。上記多角形(正確には、この多角形を塗り潰す
ためのドット列)を発生させるためには、上記のように
線分を表示する場合と同様に、DDAを用いる方法があ
る(ただし、線分を発生させるDDAを2次元のDDA
と称し、多角形を発生させるDDAを3次元のDDAと
称する)。
【0005】即ち、曲面の開多面体又は閉多面体による
近似は、曲面上に適当なM×N個(M,N≧1)の分割
点を採り(曲面上の1方向にM個の分割点を、この方向
と異なる方向にN個の分割点を採り)、この分割点によ
り出来るM×N個の格子の矩形、又は、この矩形を更に
対角線で分割した三角形の集まりにより近似する。
近似は、曲面上に適当なM×N個(M,N≧1)の分割
点を採り(曲面上の1方向にM個の分割点を、この方向
と異なる方向にN個の分割点を採り)、この分割点によ
り出来るM×N個の格子の矩形、又は、この矩形を更に
対角線で分割した三角形の集まりにより近似する。
【0006】曲線及び曲面の上記のような分割点の求め
方としては、曲線及び曲面の各座標がパラメータによる
数式で表現されている場合に、このパラメータの値を始
点から終点までを等分してパラメータの分割点を求め、
各パラメータの分割点に対応する曲線及び曲面上の点を
分割点とする方法がある。この場合に、分割点の個数
(分割数)を求める方法としては、従来“Surfac
e algorithms using bounds
on derivatives”(D.Filip,
R.Magedson, and R.Marko
t, 1986)や“Real−time rende
ring of trimmed surfaces”
(A.Rockwood, K.Heaton, an
d T.Davis, 1989)等に記載されている
ような方法がある。
方としては、曲線及び曲面の各座標がパラメータによる
数式で表現されている場合に、このパラメータの値を始
点から終点までを等分してパラメータの分割点を求め、
各パラメータの分割点に対応する曲線及び曲面上の点を
分割点とする方法がある。この場合に、分割点の個数
(分割数)を求める方法としては、従来“Surfac
e algorithms using bounds
on derivatives”(D.Filip,
R.Magedson, and R.Marko
t, 1986)や“Real−time rende
ring of trimmed surfaces”
(A.Rockwood, K.Heaton, an
d T.Davis, 1989)等に記載されている
ような方法がある。
【0007】
【発明が解決しようとする課題】上記従来技術では、パ
ラメトリック(パラメータの関数として与えられる)曲
線及びパラメトリック曲面の分割数の決定法について述
べられている。
ラメトリック(パラメータの関数として与えられる)曲
線及びパラメトリック曲面の分割数の決定法について述
べられている。
【0008】一方、パラメトリック曲面のパラメータ空
間(これを定義域と称する)をパラメータ空間内に定義
された曲線で制限し、制限された部分のみを描画するよ
うな、いわゆるトリミングの技術がある。トリミング
は、通常パラメータ空間内に定義された一本以上の曲線
(これをトリミング曲線と称す)から構成される閉曲線
(これをトリミングループと称す)で指定され、その閉
曲線の左側(右側)を描画する側として残すように定義
される。
間(これを定義域と称する)をパラメータ空間内に定義
された曲線で制限し、制限された部分のみを描画するよ
うな、いわゆるトリミングの技術がある。トリミング
は、通常パラメータ空間内に定義された一本以上の曲線
(これをトリミング曲線と称す)から構成される閉曲線
(これをトリミングループと称す)で指定され、その閉
曲線の左側(右側)を描画する側として残すように定義
される。
【0009】一般に、各トリミング曲線もパラメトリッ
クに定義されることが多い。この場合、このパラメトリ
ック曲線(トリミング曲線)も折線近似を行うが、上記
従来技術にもトリミング曲線の分割方法については述べ
られていない。しかし、通常は、グラフィックシステム
固定又はシステムへ受け渡される分割数でパラメトリッ
ク曲面のパラメタ空間内で折線近似を行い、その後トリ
ミング曲線を折線近似した各節点(2本の折線が接続す
る点)におけるパラメトリック曲面上の値、又は、開多
面体近似又は閉多面体近似した開多面体又は閉多面体上
の値を計算し、このようにして計算された曲面上の点を
結んで構成される折線をパラメトリック曲面のエッジ
(端部)としていた。しかし、このようにするとトリミ
ングによって生じたパラメトリック曲面のエッジに誤差
が発生するが、その誤差を評価する手段について考慮さ
れていなかった。トリミングされた二つの曲面をエッジ
で合わせたような図形を表示したい場合には、このよう
な誤差が大きいとエッジ部分が合わなくなり不自然にな
る。
クに定義されることが多い。この場合、このパラメトリ
ック曲線(トリミング曲線)も折線近似を行うが、上記
従来技術にもトリミング曲線の分割方法については述べ
られていない。しかし、通常は、グラフィックシステム
固定又はシステムへ受け渡される分割数でパラメトリッ
ク曲面のパラメタ空間内で折線近似を行い、その後トリ
ミング曲線を折線近似した各節点(2本の折線が接続す
る点)におけるパラメトリック曲面上の値、又は、開多
面体近似又は閉多面体近似した開多面体又は閉多面体上
の値を計算し、このようにして計算された曲面上の点を
結んで構成される折線をパラメトリック曲面のエッジ
(端部)としていた。しかし、このようにするとトリミ
ングによって生じたパラメトリック曲面のエッジに誤差
が発生するが、その誤差を評価する手段について考慮さ
れていなかった。トリミングされた二つの曲面をエッジ
で合わせたような図形を表示したい場合には、このよう
な誤差が大きいとエッジ部分が合わなくなり不自然にな
る。
【0010】本発明は、ユーザにより誤差の許容値を指
定されると、トリミングによって生じるパラメトリック
曲面のエッジの誤差を、前記指定された値以下に抑える
ことを可能とするための、パラメトリックトリミング曲
線の折線近似方法を備えたグラフィックシステムを提供
することを目的とする。
定されると、トリミングによって生じるパラメトリック
曲面のエッジの誤差を、前記指定された値以下に抑える
ことを可能とするための、パラメトリックトリミング曲
線の折線近似方法を備えたグラフィックシステムを提供
することを目的とする。
【0011】
【問題を解決するための手段】上記課題を解決するため
に、本発明によれば、少なくとも、入力装置、記憶装
置、演算装置、および、表示装置を備え、パラメトリッ
ク曲面の定義式または制御点の集合、および、前記曲面
をトリミングするためのパラメトリックなトリミング曲
線の定義式または制御点の集合を記憶装置に保持し、演
算装置において前記パラメトリック曲面を開多面体また
は閉多面体により近似し、演算装置において前記パラメ
トリックなトリミング曲線を折線により近似して、前記
パラメトリック曲面およびパラメトリックなトリミング
曲線を前記表示装置に表示する際に、トリミング曲線の
折線による近似の精度について、外部から指定される任
意の値の許容誤差値を前記入力装置により受付けて記憶
装置に保持し、指定された許容誤差値に基づいて、トリ
ミング曲線を折線により近似する際の折線の数を決定す
るための式を記憶装置に予め備え、演算装置により折線
の数を決定することができる。
に、本発明によれば、少なくとも、入力装置、記憶装
置、演算装置、および、表示装置を備え、パラメトリッ
ク曲面の定義式または制御点の集合、および、前記曲面
をトリミングするためのパラメトリックなトリミング曲
線の定義式または制御点の集合を記憶装置に保持し、演
算装置において前記パラメトリック曲面を開多面体また
は閉多面体により近似し、演算装置において前記パラメ
トリックなトリミング曲線を折線により近似して、前記
パラメトリック曲面およびパラメトリックなトリミング
曲線を前記表示装置に表示する際に、トリミング曲線の
折線による近似の精度について、外部から指定される任
意の値の許容誤差値を前記入力装置により受付けて記憶
装置に保持し、指定された許容誤差値に基づいて、トリ
ミング曲線を折線により近似する際の折線の数を決定す
るための式を記憶装置に予め備え、演算装置により折線
の数を決定することができる。
【0012】また、トリミング曲線が、1つの変数tを
パラメタとしc(t)=(u(t),v(t))である
写像cで与えられ、パラメトリック曲面が、2つの変数
uおよびvをパラメタとしs(u,v)=(x(u,
v),y(u,v),z(u,v))である写像sによ
り与えられ、許容誤差値がLで指定されるとき、トリミ
ング曲線を折線により近似する際の折線の数を決定する
ための式を、合成写像s・cのtによる一次微分(s・
c)′の大きさの、前記トリミング曲線のパラメタtの
範囲内での最大値M1を演算装置により求め、折線の数
をM1/Lと決定するための式とすることもできる。
パラメタとしc(t)=(u(t),v(t))である
写像cで与えられ、パラメトリック曲面が、2つの変数
uおよびvをパラメタとしs(u,v)=(x(u,
v),y(u,v),z(u,v))である写像sによ
り与えられ、許容誤差値がLで指定されるとき、トリミ
ング曲線を折線により近似する際の折線の数を決定する
ための式を、合成写像s・cのtによる一次微分(s・
c)′の大きさの、前記トリミング曲線のパラメタtの
範囲内での最大値M1を演算装置により求め、折線の数
をM1/Lと決定するための式とすることもできる。
【0013】さらに、トリミング曲線が、1つの変数t
をパラメタとしc(t)=(u(t),v(t))であ
る写像cで与えられ、パラメトリック曲面が、2つの変
数uおよびvをパラメタとしs(u,v)=(x(u,
v),y(u,v),z(u,v))である写像sによ
り与えられ、許容誤差値がTOLで指定されるとき、ト
リミング曲線を折線により近似する際の折線の数を決定
するための式を、合成写像s・cのtによる二次微分
(s・c)″の大きさの、前記トリミング曲線のパラメ
タtの範囲内での最大値M2を演算装置により求め、折
線の数を√(M2/(8×TOL))と決定するための
式とすることもできる。
をパラメタとしc(t)=(u(t),v(t))であ
る写像cで与えられ、パラメトリック曲面が、2つの変
数uおよびvをパラメタとしs(u,v)=(x(u,
v),y(u,v),z(u,v))である写像sによ
り与えられ、許容誤差値がTOLで指定されるとき、ト
リミング曲線を折線により近似する際の折線の数を決定
するための式を、合成写像s・cのtによる二次微分
(s・c)″の大きさの、前記トリミング曲線のパラメ
タtの範囲内での最大値M2を演算装置により求め、折
線の数を√(M2/(8×TOL))と決定するための
式とすることもできる。
【0014】さらに、パラメトリック曲面が、複数の曲
面(各曲面を区分と称する)の和集合として与えられて
いる場合には、パラメトリックトリミング曲線cの写像
sによる値域と、前記パラメトリック曲面の各区分との
共通部分が存在するか否かを演算装置により判定し、共
通部分が存在するときに限り、共通部分が存在する範囲
を合成写像s・cのパラメタ範囲として、(s・c)′
又は(s・c)″の大きさの最大値を求めることもでき
る。
面(各曲面を区分と称する)の和集合として与えられて
いる場合には、パラメトリックトリミング曲線cの写像
sによる値域と、前記パラメトリック曲面の各区分との
共通部分が存在するか否かを演算装置により判定し、共
通部分が存在するときに限り、共通部分が存在する範囲
を合成写像s・cのパラメタ範囲として、(s・c)′
又は(s・c)″の大きさの最大値を求めることもでき
る。
【0015】さらに、パラメトリック曲面が、複数の曲
面(各曲面を区分と称する)の和集合として与えられ、
且つ、パラメトリックトリミング曲線が制御点の集合で
定義され且つ凸包性を有する場合には、前記パラメトリ
ックトリミング曲線を定義する制御点の集合の写像sに
よる値域と、前記パラメトリック曲面の各区分との共通
部分が存在するか否かを演算装置により判定し、前記パ
ラメトリックトリミング曲線の値域とパラメトリック曲
線の各区分との共通部分が存在するか否かの判定を行う
こともできる。
面(各曲面を区分と称する)の和集合として与えられ、
且つ、パラメトリックトリミング曲線が制御点の集合で
定義され且つ凸包性を有する場合には、前記パラメトリ
ックトリミング曲線を定義する制御点の集合の写像sに
よる値域と、前記パラメトリック曲面の各区分との共通
部分が存在するか否かを演算装置により判定し、前記パ
ラメトリックトリミング曲線の値域とパラメトリック曲
線の各区分との共通部分が存在するか否かの判定を行う
こともできる。
【0016】さらに、パラメトリック曲面の定義式また
は制御点の集合、および、前記曲面をトリミングするた
めのパラメトリックなトリミング曲線の定義式または制
御点の集合を記憶装置に保持し、演算装置において前記
パラメトリック曲面を開多面体または閉多面体により近
似し、演算装置において前記パラメトリックなトリミン
グ曲線を折線により近似して、前記パラメトリック曲面
およびパラメトリックなトリミング曲線を表示装置に表
示するグラフィック表示システムにおいて、前記トリミ
ング曲線の折線による近似の精度について、外部から指
定される任意の値の許容誤差値を入力する入力手段と、
入力された許容誤差値を保持する第1の記憶手段と、入
力された許容誤差値に基づいて、前記トリミング曲線を
折線により近似する際の折線の数を決定するための式を
予め保持する第2の記憶手段と、この式に基づき折線の
数を決定する決定手段とを備えるグラフィック表示シス
テムを提供することもできる。
は制御点の集合、および、前記曲面をトリミングするた
めのパラメトリックなトリミング曲線の定義式または制
御点の集合を記憶装置に保持し、演算装置において前記
パラメトリック曲面を開多面体または閉多面体により近
似し、演算装置において前記パラメトリックなトリミン
グ曲線を折線により近似して、前記パラメトリック曲面
およびパラメトリックなトリミング曲線を表示装置に表
示するグラフィック表示システムにおいて、前記トリミ
ング曲線の折線による近似の精度について、外部から指
定される任意の値の許容誤差値を入力する入力手段と、
入力された許容誤差値を保持する第1の記憶手段と、入
力された許容誤差値に基づいて、前記トリミング曲線を
折線により近似する際の折線の数を決定するための式を
予め保持する第2の記憶手段と、この式に基づき折線の
数を決定する決定手段とを備えるグラフィック表示シス
テムを提供することもできる。
【0017】さらに、このグラフィック表示システムに
おいて、トリミング曲線が、1つの変数tをパラメタと
しc(t)=(u(t),v(t))である写像cで与
えられ、パラメトリック曲面が、2つの変数uおよびv
をパラメタとしs(u,v)=(x(u,v),y
(u,v),z(u,v))である写像sにより与えら
れ、許容誤差値がLで指定されるとき、トリミング曲線
を折線により近似する際の折線の数を決定するための式
を、合成写像s・cのtによる一次微分(s・c)′の
大きさの、トリミング曲線のパラメタtの範囲内での最
大値M1を演算装置により求め、折線の数をM1/Lと
決定するための式とすることもできる。
おいて、トリミング曲線が、1つの変数tをパラメタと
しc(t)=(u(t),v(t))である写像cで与
えられ、パラメトリック曲面が、2つの変数uおよびv
をパラメタとしs(u,v)=(x(u,v),y
(u,v),z(u,v))である写像sにより与えら
れ、許容誤差値がLで指定されるとき、トリミング曲線
を折線により近似する際の折線の数を決定するための式
を、合成写像s・cのtによる一次微分(s・c)′の
大きさの、トリミング曲線のパラメタtの範囲内での最
大値M1を演算装置により求め、折線の数をM1/Lと
決定するための式とすることもできる。
【0018】さらに、グラフィック表示システムにおい
て、トリミング曲線が、1つの変数tをパラメタとしc
(t)=(u(t),v(t))である写像cで与えら
れ、パラメトリック曲面が、2つの変数uおよびvをパ
ラメタとしs(u,v)=(x(u,v),y(u,
v),z(u,v))である写像sにより与えられ、許
容誤差値がTOLで指定されるとき、前記トリミング曲
線を折線により近似する際の折線の数を決定するための
式を、合成写像s・cのtによる二次微分(s・c)″
の大きさの、前記トリミング曲線のパラメタtの範囲内
での最大値M2を演算装置により求め、折線の数を√
(M2/(8×TOL))と決定するための式とするこ
ともできる。
て、トリミング曲線が、1つの変数tをパラメタとしc
(t)=(u(t),v(t))である写像cで与えら
れ、パラメトリック曲面が、2つの変数uおよびvをパ
ラメタとしs(u,v)=(x(u,v),y(u,
v),z(u,v))である写像sにより与えられ、許
容誤差値がTOLで指定されるとき、前記トリミング曲
線を折線により近似する際の折線の数を決定するための
式を、合成写像s・cのtによる二次微分(s・c)″
の大きさの、前記トリミング曲線のパラメタtの範囲内
での最大値M2を演算装置により求め、折線の数を√
(M2/(8×TOL))と決定するための式とするこ
ともできる。
【0019】さらに、パラメトリック曲面が、複数の曲
面(各曲面を区分と称する)の和集合として与えられて
いる場合に、パラメトリックトリミング曲線cの写像s
による値域と、パラメトリック曲面の各区分との共通部
分が存在するか否かを判定する判定手段と、判定手段に
より共通部分が存在すると判定された場合に、共通部分
が存在する範囲を合成写像s・cのパラメタ範囲とし
て、(s・c)′又は(s・c)″の大きさの最大値を
求める最大値算出手段とを備えるグラフィック表示シス
テムを提供することもできる。
面(各曲面を区分と称する)の和集合として与えられて
いる場合に、パラメトリックトリミング曲線cの写像s
による値域と、パラメトリック曲面の各区分との共通部
分が存在するか否かを判定する判定手段と、判定手段に
より共通部分が存在すると判定された場合に、共通部分
が存在する範囲を合成写像s・cのパラメタ範囲とし
て、(s・c)′又は(s・c)″の大きさの最大値を
求める最大値算出手段とを備えるグラフィック表示シス
テムを提供することもできる。
【0020】さらに、パラメトリック曲面が、複数の曲
面(各曲面を区分と称する)の和集合として与えられ、
且つ、パラメトリックトリミング曲線が制御点の集合で
定義され且つ凸包性を有する場合に、判定手段として、
パラメトリックトリミング曲線を定義する制御点の集合
の写像sによる値域と、パラメトリック曲面の各区分と
の共通部分が存在するか否かを判定する制御点判定手段
とを備えるグラフィック表示システムを提供することも
できる。
面(各曲面を区分と称する)の和集合として与えられ、
且つ、パラメトリックトリミング曲線が制御点の集合で
定義され且つ凸包性を有する場合に、判定手段として、
パラメトリックトリミング曲線を定義する制御点の集合
の写像sによる値域と、パラメトリック曲面の各区分と
の共通部分が存在するか否かを判定する制御点判定手段
とを備えるグラフィック表示システムを提供することも
できる。
【0021】ここで、凸包性について説明する。区間
[a,b]を定義域とするパラメトリック曲線が、制御
点の集合{Pi|i=1,2,…,n}から定まってい
るとき、曲線cが凸包性を持つとは、曲線上の任意の点
がco{Pi|i=1,2,3,…,n}(すべての点
Piを含む、最小の凸集合)に含まれることである。即
ち、任意のt∈[a,b]に対して、c(t)∈co
{Pi|i=1,2,…,n}が成り立つことである。
同様に、矩形領域[a,b]×[c,d]を定義域とす
るパラメトリック曲面が、制御点の集合{Pij|i=
1,2,…,m;j=1,2,…,n}から定まってい
るとき、曲面sが凸包性を持つとは、曲線上の任意の点
がco{Pij|i=1,2,…,m;j=1,2,…,
n}(すべての点Pijを含む、最小の凸集合)に含まれ
ることである。即ち、任意の(u,v)∈[a,b]×
[c,d]に対して、s(u,v)∈co{Pij|i=
1,2,…,m;j=1,2,…,n}が成り立つこと
である。
[a,b]を定義域とするパラメトリック曲線が、制御
点の集合{Pi|i=1,2,…,n}から定まってい
るとき、曲線cが凸包性を持つとは、曲線上の任意の点
がco{Pi|i=1,2,3,…,n}(すべての点
Piを含む、最小の凸集合)に含まれることである。即
ち、任意のt∈[a,b]に対して、c(t)∈co
{Pi|i=1,2,…,n}が成り立つことである。
同様に、矩形領域[a,b]×[c,d]を定義域とす
るパラメトリック曲面が、制御点の集合{Pij|i=
1,2,…,m;j=1,2,…,n}から定まってい
るとき、曲面sが凸包性を持つとは、曲線上の任意の点
がco{Pij|i=1,2,…,m;j=1,2,…,
n}(すべての点Pijを含む、最小の凸集合)に含まれ
ることである。即ち、任意の(u,v)∈[a,b]×
[c,d]に対して、s(u,v)∈co{Pij|i=
1,2,…,m;j=1,2,…,n}が成り立つこと
である。
【0022】
【作用】パラメトリックトリミング曲線の折線近似の為
の分割方法をパラメトリック曲面上での誤差が一定値以
下になるように定める為の一例は、与えられたパラメト
リック曲面の定義式又は与えられた制御点の集合より定
まる定義式をsとし、与えられたパラメトリックトリミ
ング曲線の定義式又は与えられた制御点の集合より定ま
る定義式をcとするとき、パラメトリックトリミング曲
線の折線近似の各線分の長さを一定値L以下に抑えるた
めに、合成写像s・cのパラメトリックトリミング曲線
のパラメタによる一次微分(s・c)′の大きさのパラ
メタ範囲内での最大値M1を求め、パラメトリックトリ
ミング曲線の折線近似の為の分割数をM1/Lとするこ
とである。
の分割方法をパラメトリック曲面上での誤差が一定値以
下になるように定める為の一例は、与えられたパラメト
リック曲面の定義式又は与えられた制御点の集合より定
まる定義式をsとし、与えられたパラメトリックトリミ
ング曲線の定義式又は与えられた制御点の集合より定ま
る定義式をcとするとき、パラメトリックトリミング曲
線の折線近似の各線分の長さを一定値L以下に抑えるた
めに、合成写像s・cのパラメトリックトリミング曲線
のパラメタによる一次微分(s・c)′の大きさのパラ
メタ範囲内での最大値M1を求め、パラメトリックトリ
ミング曲線の折線近似の為の分割数をM1/Lとするこ
とである。
【0023】別の一例は、与えられたパラメトリック曲
面の定義式又は与えられた制御点の集合より定まる定義
式をsとし、与えられたパラメトリックトリミング曲線
の定義式又は与えられた制御点の集合より定まる定義式
をcとするとき、パラメトリックトリミング曲線の折線
近似とパラメトリックトリミング曲線の真値からの誤差
を一定値TOL以下に抑えるために、合成写像s・cの
パラメトリックトリミング曲線のパラメタによる二次微
分(s・c)″の大きさのパラメタ範囲内での最大値M
2を求め、パラメトリックトリミング曲線の折線近似の
為の分割数を√(M2/(8×TOL))とすることで
ある。
面の定義式又は与えられた制御点の集合より定まる定義
式をsとし、与えられたパラメトリックトリミング曲線
の定義式又は与えられた制御点の集合より定まる定義式
をcとするとき、パラメトリックトリミング曲線の折線
近似とパラメトリックトリミング曲線の真値からの誤差
を一定値TOL以下に抑えるために、合成写像s・cの
パラメトリックトリミング曲線のパラメタによる二次微
分(s・c)″の大きさのパラメタ範囲内での最大値M
2を求め、パラメトリックトリミング曲線の折線近似の
為の分割数を√(M2/(8×TOL))とすることで
ある。
【0024】更に、パラメトリック曲面が区分的に与え
られている場合において、パラメトリックトリミング曲
線の折線近似の為の分割方法は、各区分毎にパラメトリ
ックトリミング曲線の折線近似方法によって行い、合成
写像s・cのパラメタ範囲は、パラメトリックトリミン
グ曲線cの値域とパラメトリック曲面の各区分との共通
部分が存在するかを判定し、共通部分が存在するときに
限り共通部分が存在する範囲をパラメタ範囲として(s
・c)′又は(s・c)″の大きさの最大値を求める。
られている場合において、パラメトリックトリミング曲
線の折線近似の為の分割方法は、各区分毎にパラメトリ
ックトリミング曲線の折線近似方法によって行い、合成
写像s・cのパラメタ範囲は、パラメトリックトリミン
グ曲線cの値域とパラメトリック曲面の各区分との共通
部分が存在するかを判定し、共通部分が存在するときに
限り共通部分が存在する範囲をパラメタ範囲として(s
・c)′又は(s・c)″の大きさの最大値を求める。
【0025】更に、パラメトリック曲面が区分的に与え
られ、且つ、パラメトリックトリミング曲線が制御点の
集合で定義され且つ凸包性を有する場合において、パラ
メトリックトリミング曲線の値域とパラメトリック曲線
の各区分との共通部分が存在するかの判定は、パラメト
リックトリミング曲線を定義する制御点の集合の値域と
パラメトリック曲面の各区分との共通部分が存在するか
の判定によって行う。
られ、且つ、パラメトリックトリミング曲線が制御点の
集合で定義され且つ凸包性を有する場合において、パラ
メトリックトリミング曲線の値域とパラメトリック曲線
の各区分との共通部分が存在するかの判定は、パラメト
リックトリミング曲線を定義する制御点の集合の値域と
パラメトリック曲面の各区分との共通部分が存在するか
の判定によって行う。
【0026】
【実施例】まず、図6に示すブロック図、および、図7
に示す機能ブロック図を用いて、グラフィックシステム
の一例について簡単に説明する。
に示す機能ブロック図を用いて、グラフィックシステム
の一例について簡単に説明する。
【0027】一般に、グラフィックシステムは、図7に
示すように制御部701、記憶部702、入力部70
3、画像処理部707、表示部711、外部記憶装置7
13等から構成される。これらの図7に示す各部は、具
体的には、たとえば図6に示すブロック図のように構成
される。すなわち、制御部701は中央処理装置(CP
U)601、記憶部702はメインメモリ(MM)60
2、画像処理部707はグラフィックサブシステム60
7、表示部711はCRT611から構成される。入力
部703はデータ入力を行うためのキーボード(KB)
603、マウス(MOUSE)604、スタイラスペン
(PEN)605、ダイアル(DIAL)612等から
構成され、外部記憶装置713は図形データ等を記憶保
存するファイリング装置(FILE)613等から構成
される。上記制御部701(CPU601)、入力部7
03(キーボード603、マウス604、スタイラスペ
ン605、ダイアル612)、画像処理部707(グラ
フィックサブシステム607)、外部記憶装置713
(ファイリング装置613)は、システムバス706
(606)を介して接続され、データ交換を行う。又、
グラフィックサブシステム607は、グラフィックLS
I608及びフレームメモリ(FM)610等から構成
され、フレームバス609を介して接続され、データ交
換を行う。
示すように制御部701、記憶部702、入力部70
3、画像処理部707、表示部711、外部記憶装置7
13等から構成される。これらの図7に示す各部は、具
体的には、たとえば図6に示すブロック図のように構成
される。すなわち、制御部701は中央処理装置(CP
U)601、記憶部702はメインメモリ(MM)60
2、画像処理部707はグラフィックサブシステム60
7、表示部711はCRT611から構成される。入力
部703はデータ入力を行うためのキーボード(KB)
603、マウス(MOUSE)604、スタイラスペン
(PEN)605、ダイアル(DIAL)612等から
構成され、外部記憶装置713は図形データ等を記憶保
存するファイリング装置(FILE)613等から構成
される。上記制御部701(CPU601)、入力部7
03(キーボード603、マウス604、スタイラスペ
ン605、ダイアル612)、画像処理部707(グラ
フィックサブシステム607)、外部記憶装置713
(ファイリング装置613)は、システムバス706
(606)を介して接続され、データ交換を行う。又、
グラフィックサブシステム607は、グラフィックLS
I608及びフレームメモリ(FM)610等から構成
され、フレームバス609を介して接続され、データ交
換を行う。
【0028】図6に示すグラフィックシステムを用い
て、図形をCRT611に表示する過程について簡単に
説明する。
て、図形をCRT611に表示する過程について簡単に
説明する。
【0029】先ず、キーボード603、マウス604、
スタイラスペン605、ダイアル612等の各種入力装
置によってデータを入力し、システムバス606を介し
てメインメモリ602に図形データを作成する。また
は、予め作成された図形データをファイリング装置61
3よりシステムバス606を介してメインメモリ602
に転送する。CPU601は、メインメモリ602内の
図形データを、必要ならば、キーボード603、マウス
604、スタイラスペン605、ダイアル612等の各
種入力装置からシステムバス606を介して送られる指
示に従って変更を加える。図形データの変更には、例え
ば、図形の回転、平行移動、視点の変更等の幾何演算や
後述するパラメトリック曲面の多角形による近似のため
の演算、パラメトリックトリミング曲線の折線による近
似のための演算、等を含んでいる。CPU601は、上
記の様にして作成されたメインメモリ602内の図形デ
ータをシステムバス606を介して順次グラフィックサ
ブシステム607へ転送する。グラフィックサブシステ
ム607では、グラフィックLSI608が、送られて
くる図形データをCRT611に表示するために、幾何
的に(即ち、座標データとして)与えられた図形データ
及び図形種類(線分、多角形、等)に従って、ドット
(画素)によるイメージ(画像)を作成する。この処理
は、例えば、線分の座標データからDDA(Digit
al Differential Analizer)
によってドット列を発生する処理や、多角形の座標デー
タから三次元DDAによって多角形内部を塗り潰すドッ
ト列を発生する処理等を含む。作成されたドットイメー
ジは、フレームメモリバス609を介してフレームメモ
リ610に転送され、最後に、グラフィックサブシステ
ム607は、フレームメモリ610のドットイメージを
赤,緑,青を示す信号であるRGB信号等に変換し、C
RT611はそれを表示する。
スタイラスペン605、ダイアル612等の各種入力装
置によってデータを入力し、システムバス606を介し
てメインメモリ602に図形データを作成する。また
は、予め作成された図形データをファイリング装置61
3よりシステムバス606を介してメインメモリ602
に転送する。CPU601は、メインメモリ602内の
図形データを、必要ならば、キーボード603、マウス
604、スタイラスペン605、ダイアル612等の各
種入力装置からシステムバス606を介して送られる指
示に従って変更を加える。図形データの変更には、例え
ば、図形の回転、平行移動、視点の変更等の幾何演算や
後述するパラメトリック曲面の多角形による近似のため
の演算、パラメトリックトリミング曲線の折線による近
似のための演算、等を含んでいる。CPU601は、上
記の様にして作成されたメインメモリ602内の図形デ
ータをシステムバス606を介して順次グラフィックサ
ブシステム607へ転送する。グラフィックサブシステ
ム607では、グラフィックLSI608が、送られて
くる図形データをCRT611に表示するために、幾何
的に(即ち、座標データとして)与えられた図形データ
及び図形種類(線分、多角形、等)に従って、ドット
(画素)によるイメージ(画像)を作成する。この処理
は、例えば、線分の座標データからDDA(Digit
al Differential Analizer)
によってドット列を発生する処理や、多角形の座標デー
タから三次元DDAによって多角形内部を塗り潰すドッ
ト列を発生する処理等を含む。作成されたドットイメー
ジは、フレームメモリバス609を介してフレームメモ
リ610に転送され、最後に、グラフィックサブシステ
ム607は、フレームメモリ610のドットイメージを
赤,緑,青を示す信号であるRGB信号等に変換し、C
RT611はそれを表示する。
【0030】次に、パラメトリック曲面のパラメトリッ
クトリミング曲線によるトリミングについて簡単に説明
する。
クトリミング曲線によるトリミングについて簡単に説明
する。
【0031】図3は、2つの変数UおよびVをパラメー
タとする2次元座標空間(UVパラメタ空間)の或る領
域301から、3つの変数X,Y,Zで定まる3次元座
標空間(XYZ空間)への像としてのパラメトリック曲
面302を表している。即ち、パラメトリック曲面30
2は、2次元空間の或る領域(これを定義域と称する)
から3次元空間への写像sとして定義されるものであ
る。写像sは、通常コンピュータでの扱い易さからu及
びvに関する多項式、又は、一旦4次元XYZW空間へ
の写像として定義しておき、後にこれを同次座標と見て
W座標で除する有理多項式が用いられる(これにより、
平行移動、拡大縮小、回転移動といった基本的な変換を
組み合わせた変換を、これらの基本的変換を表現する行
列式の乗算として表現することが可能となるというメリ
ットがある)。即ち、写像sは
タとする2次元座標空間(UVパラメタ空間)の或る領
域301から、3つの変数X,Y,Zで定まる3次元座
標空間(XYZ空間)への像としてのパラメトリック曲
面302を表している。即ち、パラメトリック曲面30
2は、2次元空間の或る領域(これを定義域と称する)
から3次元空間への写像sとして定義されるものであ
る。写像sは、通常コンピュータでの扱い易さからu及
びvに関する多項式、又は、一旦4次元XYZW空間へ
の写像として定義しておき、後にこれを同次座標と見て
W座標で除する有理多項式が用いられる(これにより、
平行移動、拡大縮小、回転移動といった基本的な変換を
組み合わせた変換を、これらの基本的変換を表現する行
列式の乗算として表現することが可能となるというメリ
ットがある)。即ち、写像sは
【0032】
【数1】
【0033】又は
【0034】
【数2】
【0035】の形をしていると考え、以後の説明を行
う。ここで、写像x,y,z,wは、u及びvに関する
多項式である。
う。ここで、写像x,y,z,wは、u及びvに関する
多項式である。
【0036】写像sの定義域は、通常、コンピュータで
の扱い易さから矩形が採られる。然しながら、このこと
は表示を行うグラフィックシステムの性能などの理由に
より、写像x,y,z,wの次数を制限せざるを得ず、
延いてはパラメトリック曲面の形状に制約を与えること
になる。この制約を解消するために、写像sの定義域を
この定義域内に描かれた閉ループを用いて、この閉ルー
プの片側(閉ループの右側または左側)を切り取り、残
った部分のみを定義域とする方法が考案されている。こ
の方法をトリミングと称す。以後、何方でも同様なの
で、閉ループ上で反時計回りの方向を正方向とした場合
に閉ループの右側を切り取る側とし、左側を残す側とす
る。また、この閉ループをトリミングループと称す。
の扱い易さから矩形が採られる。然しながら、このこと
は表示を行うグラフィックシステムの性能などの理由に
より、写像x,y,z,wの次数を制限せざるを得ず、
延いてはパラメトリック曲面の形状に制約を与えること
になる。この制約を解消するために、写像sの定義域を
この定義域内に描かれた閉ループを用いて、この閉ルー
プの片側(閉ループの右側または左側)を切り取り、残
った部分のみを定義域とする方法が考案されている。こ
の方法をトリミングと称す。以後、何方でも同様なの
で、閉ループ上で反時計回りの方向を正方向とした場合
に閉ループの右側を切り取る側とし、左側を残す側とす
る。また、この閉ループをトリミングループと称す。
【0037】図4により、上記のトリミングについて説
明する。トリミングループ401は、定義域301を制
限し、ループ401の左側(内側)を制限された定義域
とする。すると、定義域301からの写像sによる像で
あるパラメトリック曲面302も制限され、パラメトリ
ック曲面302の一部(これをトリム曲面と称す)40
2のみとなる。この方法を用いることで、比較的低次の
多項式又は有理多項式を用いて、比較的自由な形状を作
り出すことが可能となる。
明する。トリミングループ401は、定義域301を制
限し、ループ401の左側(内側)を制限された定義域
とする。すると、定義域301からの写像sによる像で
あるパラメトリック曲面302も制限され、パラメトリ
ック曲面302の一部(これをトリム曲面と称す)40
2のみとなる。この方法を用いることで、比較的低次の
多項式又は有理多項式を用いて、比較的自由な形状を作
り出すことが可能となる。
【0038】通常、コンピュータでの扱い易さからトリ
ミングループもパラメトリックに(変数の関数として)
与えられる。トリミングループは、必ずしも一本の閉ル
ープである必要はなく、複数の互いに始点および終点の
みで連結した曲線の集まりとして定められていても良
い。その一本一本をトリミング曲線と称す。図5は、変
数Tの定義域であるTパラメタ空間の或る領域501か
らUVパラメタ空間への像としてのパラメトリックトリ
ミング曲線502を表した図である。即ち、パラメトリ
ックトリミング曲線502とは、1次元空間の或る領域
(定義域)から2次元空間への写像cによる像として定
義されるものである。写像cは、通常コンピュータでの
扱い易さからtに関する多項式、又は、一旦三次元UV
H空間への写像として定義しておき後にこれを同次座標
と見てH座標で除する有理多項式が用いられる(これに
より、平行移動、拡大縮小、回転移動といった基本的な
変換を組み合わせた変換を、これらの基本的変換を表現
する行列式の乗算として表現することが可能となるとい
うメリットがある)。即ち、写像cは
ミングループもパラメトリックに(変数の関数として)
与えられる。トリミングループは、必ずしも一本の閉ル
ープである必要はなく、複数の互いに始点および終点の
みで連結した曲線の集まりとして定められていても良
い。その一本一本をトリミング曲線と称す。図5は、変
数Tの定義域であるTパラメタ空間の或る領域501か
らUVパラメタ空間への像としてのパラメトリックトリ
ミング曲線502を表した図である。即ち、パラメトリ
ックトリミング曲線502とは、1次元空間の或る領域
(定義域)から2次元空間への写像cによる像として定
義されるものである。写像cは、通常コンピュータでの
扱い易さからtに関する多項式、又は、一旦三次元UV
H空間への写像として定義しておき後にこれを同次座標
と見てH座標で除する有理多項式が用いられる(これに
より、平行移動、拡大縮小、回転移動といった基本的な
変換を組み合わせた変換を、これらの基本的変換を表現
する行列式の乗算として表現することが可能となるとい
うメリットがある)。即ち、写像cは
【0039】
【数3】
【0040】又は
【0041】
【数4】
【0042】の形をしていると考える。ここで、写像
u,v,hは、tに関する多項式である。
u,v,hは、tに関する多項式である。
【0043】次に、トリム曲面を描画する場合の処理に
ついての一例を説明する。この説明の為に、NURB
(non−uniform rational B−s
pline)曲面のNURB曲線によるトリミングを例
に採るが、本発明はNURBに特有の発明という訳では
ない。NURB曲面及びNURB曲線は、制御点の集合
及びノット列と呼ばれる非減少列及び次数によって定ま
るパラメトリックな曲面及び曲線である。これらの制御
点、および、ノット列に関しては、“The Grap
hical Precessing of B−Spl
ines ina Highly Dynamic E
nvironment”(SalimS.Abi−Ez
zi,1989)等に詳述されている。
ついての一例を説明する。この説明の為に、NURB
(non−uniform rational B−s
pline)曲面のNURB曲線によるトリミングを例
に採るが、本発明はNURBに特有の発明という訳では
ない。NURB曲面及びNURB曲線は、制御点の集合
及びノット列と呼ばれる非減少列及び次数によって定ま
るパラメトリックな曲面及び曲線である。これらの制御
点、および、ノット列に関しては、“The Grap
hical Precessing of B−Spl
ines ina Highly Dynamic E
nvironment”(SalimS.Abi−Ez
zi,1989)等に詳述されている。
【0044】NURB曲面sは、U方向の次数をp、V
方向の次数をq、制御点の集合をPij(1≦i≦m,1
≦j≦n)、U方向のノット列をu1≦u2≦…≦u
m+p+1とするとき
方向の次数をq、制御点の集合をPij(1≦i≦m,1
≦j≦n)、U方向のノット列をu1≦u2≦…≦u
m+p+1とするとき
【0045】
【数5】
【0046】によって定義される写像族{ηik}、及
び、V方向のノット列をv1≦v2≦…≦vn+q+1とする
とき
び、V方向のノット列をv1≦v2≦…≦vn+q+1とする
とき
【0047】
【数6】
【0048】によって定義される写像族{θik}を用い
て
て
【0049】
【数7】
【0050】の様に定義される区分パラメトリック曲面
である。定義域は、[up+1,um+1]×[vq+1,
vn+1]である。制御点Pijが非同次座標(xij,
yij,zij)であるか、又は、同次座標(xij,yij,
zij,wij)であるかによって、上記の式は
である。定義域は、[up+1,um+1]×[vq+1,
vn+1]である。制御点Pijが非同次座標(xij,
yij,zij)であるか、又は、同次座標(xij,yij,
zij,wij)であるかによって、上記の式は
【0051】
【数8】
【0052】又は
【0053】
【数9】
【0054】の様に書き換えることが出来る。ui<u
i+1且つvj<vj+1のとき、[ui,ui +1]×[vj,v
j+1]に対して一つの区分が対応する。これを曲面スパ
ンと称す。
i+1且つvj<vj+1のとき、[ui,ui +1]×[vj,v
j+1]に対して一つの区分が対応する。これを曲面スパ
ンと称す。
【0055】同様に、NURB曲線cは、次数をr、制
御点の集合をQk(1≦k≦l)、ノット列をt1≦t2
≦…≦tl+r+1とするとき
御点の集合をQk(1≦k≦l)、ノット列をt1≦t2
≦…≦tl+r+1とするとき
【0056】
【数10】
【0057】によって定義される写像族{ζlk}を用い
て
て
【0058】
【数11】
【0059】の様に定義される区分パラメトリック曲線
である。定義域は、[tr+1,tl+1]である。制御点Q
kが非同次座標(uk,vk)であるか、又は、同次座標
(uk,vk,hk)であるかによって、上記の式は
である。定義域は、[tr+1,tl+1]である。制御点Q
kが非同次座標(uk,vk)であるか、又は、同次座標
(uk,vk,hk)であるかによって、上記の式は
【0060】
【数12】
【0061】又は
【0062】
【数13】
【0063】の様に書き換えることが出来る。tk<t
k+1のとき、[tk,tk+1]に対して一つの区分が対応
する。これを曲線スパンと称す。
k+1のとき、[tk,tk+1]に対して一つの区分が対応
する。これを曲線スパンと称す。
【0064】図1に、本発明の1実施例である、NUR
B曲面のNURB曲線によるトリミングを含むトリム曲
面の表示処理の手順を表すフローチャートを示す。ま
た、図8に、この表示処理を行なうための、処理部の機
能ブロック図を示す(これらの機能ブロックを、図6の
CPU601に備えればよい)。
B曲面のNURB曲線によるトリミングを含むトリム曲
面の表示処理の手順を表すフローチャートを示す。ま
た、図8に、この表示処理を行なうための、処理部の機
能ブロック図を示す(これらの機能ブロックを、図6の
CPU601に備えればよい)。
【0065】先ず、手順の全体の流れを概説する。通
常、NURB曲面や他のプリミティブ(点、直線、多角
形、または文字列等)は、モデリング座標系(Mode
ling Coordinate System. M
Cと略す)と呼ばれる個々の空間に定義され、その後総
てのプリミティブは同一のワールド座標系(World
Coordinate System. WCと略す)
へと変換される。次に、視点の指定及び視野の指定(通
常、視野の領域を示すために視野ピラミッドというもの
を指定する)により、例えばZ座標の正方向から負方向
へ視線が伸び、視野ピラミッドがXYZ空間の単位立方
体(視野領域)となるような正規化投影座標系(Nor
malized Projection Coordi
nateSystem. NPCと略す)へと変換され
る。次に、表示画面との比を考慮してデバイス座標系
(Device Coordinate Syste
m.DCと略す)へと変換され、属性や変換過程の途中
で計算する輝度等の属性に従って表示される。総ての座
標系はXYZの3次元であるが、制御点が同次座標で与
えられている場合などXYZWの4次元で考えた方が処
理に都合が良い場合がある。一般に、制御点のみで考え
る場合は同次座標で考え、実際の曲面上の座標を考える
場合は非同次座標で考えると都合が良い。以下も特に断
わらない限りこのように考えるものとする。
常、NURB曲面や他のプリミティブ(点、直線、多角
形、または文字列等)は、モデリング座標系(Mode
ling Coordinate System. M
Cと略す)と呼ばれる個々の空間に定義され、その後総
てのプリミティブは同一のワールド座標系(World
Coordinate System. WCと略す)
へと変換される。次に、視点の指定及び視野の指定(通
常、視野の領域を示すために視野ピラミッドというもの
を指定する)により、例えばZ座標の正方向から負方向
へ視線が伸び、視野ピラミッドがXYZ空間の単位立方
体(視野領域)となるような正規化投影座標系(Nor
malized Projection Coordi
nateSystem. NPCと略す)へと変換され
る。次に、表示画面との比を考慮してデバイス座標系
(Device Coordinate Syste
m.DCと略す)へと変換され、属性や変換過程の途中
で計算する輝度等の属性に従って表示される。総ての座
標系はXYZの3次元であるが、制御点が同次座標で与
えられている場合などXYZWの4次元で考えた方が処
理に都合が良い場合がある。一般に、制御点のみで考え
る場合は同次座標で考え、実際の曲面上の座標を考える
場合は非同次座標で考えると都合が良い。以下も特に断
わらない限りこのように考えるものとする。
【0066】次に、上記の概説について、図1および図
8を用いて詳細に述べるが、本実施例は一例であり、こ
の通りに実行しなければならないという訳ではない。
8を用いて詳細に述べるが、本実施例は一例であり、こ
の通りに実行しなければならないという訳ではない。
【0067】先ず、変換部801により、制御点をワー
ルド座標系へ変換する(ステップ101)。次に、変換
部802により、制御点をコピーし、そのコピーした制
御点を正規化投影座標系へ変換する(ステップ10
2)。次に、チェック部803により、制御点のコピー
に対し、視野領域に入っているかを判定する(ステップ
103)。次に、ステップ120に進み、総ての制御点
についてステップ101乃至ステップ103の処理が終
了したかを判定する。終了していない場合にはステップ
101に戻り、ステップ101乃至ステップ103を繰
り返す。終了している場合にはステップ121に進み、
総ての制御点が視野領域に入っているか否かを判定す
る。総ての制御点が入っていない場合には、表示処理を
終了する。視野領域に入っている制御点が有る場合に
は、ステップ104に進む。
ルド座標系へ変換する(ステップ101)。次に、変換
部802により、制御点をコピーし、そのコピーした制
御点を正規化投影座標系へ変換する(ステップ10
2)。次に、チェック部803により、制御点のコピー
に対し、視野領域に入っているかを判定する(ステップ
103)。次に、ステップ120に進み、総ての制御点
についてステップ101乃至ステップ103の処理が終
了したかを判定する。終了していない場合にはステップ
101に戻り、ステップ101乃至ステップ103を繰
り返す。終了している場合にはステップ121に進み、
総ての制御点が視野領域に入っているか否かを判定す
る。総ての制御点が入っていない場合には、表示処理を
終了する。視野領域に入っている制御点が有る場合に
は、ステップ104に進む。
【0068】ステップ104においては、次に、展開部
804により、曲面スパンにおいてNURB曲面をベジ
ェ曲面に展開する。NURB曲面(又は曲線)をベジェ
曲面(又は曲線)に展開するには、Cox−deBoo
rアルゴリズムと呼ばれる方法が知られている。ベジェ
曲面に展開するのは、以後の処理を簡単にする為であ
り、必ずしも必要な処理ではない。
804により、曲面スパンにおいてNURB曲面をベジ
ェ曲面に展開する。NURB曲面(又は曲線)をベジェ
曲面(又は曲線)に展開するには、Cox−deBoo
rアルゴリズムと呼ばれる方法が知られている。ベジェ
曲面に展開するのは、以後の処理を簡単にする為であ
り、必ずしも必要な処理ではない。
【0069】ベジェ曲面は、U方向の次数をp、V方向
の次数をq、制御点の集合をPij(1≦i≦p+1,1
≦j≦q+1)とするとき
の次数をq、制御点の集合をPij(1≦i≦p+1,1
≦j≦q+1)とするとき
【0070】
【数14】
【0071】によって定義される写像族{Bik}を用い
て
て
【0072】
【数15】
【0073】の様に定義されるパラメトリック曲面であ
る。定義域は、通常[0,1]×[0,1]であるが、
パラメータを適当に変換することにより任意の矩形とし
て良い。制御点Pijが非同次座標(xij,yij,zij)
であるか、又は、同次座標(xij,yij,zij,wij)
であるかによって、上記の式は
る。定義域は、通常[0,1]×[0,1]であるが、
パラメータを適当に変換することにより任意の矩形とし
て良い。制御点Pijが非同次座標(xij,yij,zij)
であるか、又は、同次座標(xij,yij,zij,wij)
であるかによって、上記の式は
【0074】
【数16】
【0075】又は
【0076】
【数17】
【0077】の様に書き換えることが出来る。
【0078】同様に、ベジェ曲線cは、次数をr、制御
点の集合をQk(1≦k≦l)とするとき、上記の写像
族{Bik}を用いて
点の集合をQk(1≦k≦l)とするとき、上記の写像
族{Bik}を用いて
【0079】
【数18】
【0080】の様に定義されるパラメトリック曲線であ
る。定義域は、通常[0,1]であるが、パラメータを
適当に変換することにより任意の閉区間として良い。制
御点Qkが非同次座標(uk,vk)であるか、又は、同
次座標(uk,vk,hk)であるかによって、上記の式
は
る。定義域は、通常[0,1]であるが、パラメータを
適当に変換することにより任意の閉区間として良い。制
御点Qkが非同次座標(uk,vk)であるか、又は、同
次座標(uk,vk,hk)であるかによって、上記の式
は
【0081】
【数19】
【0082】又は
【0083】
【数20】
【0084】の様に書き換えることが出来る。
【0085】次に、変換部805により、ベジェ制御点
をコピーし、そのコピーした制御点を正規化投影座標系
へ変換する(ステップ105)。この後、チェック部8
06により、制御点のコピーに対し、視野領域に入って
いるかを判定する(ステップ106)。次に、ステップ
130に進み、総ての制御点についてステップ104乃
至ステップ106の処理が終了したかを判定する。終了
していない場合にはステップ104に戻り、ステップ1
04乃至ステップ106を繰り返す。終了している場合
にはステップ131に進み、総ての制御点が視野領域に
入っているか否かを判定する。総ての制御点が入ってい
ない場合には、ステップ132に進む。
をコピーし、そのコピーした制御点を正規化投影座標系
へ変換する(ステップ105)。この後、チェック部8
06により、制御点のコピーに対し、視野領域に入って
いるかを判定する(ステップ106)。次に、ステップ
130に進み、総ての制御点についてステップ104乃
至ステップ106の処理が終了したかを判定する。終了
していない場合にはステップ104に戻り、ステップ1
04乃至ステップ106を繰り返す。終了している場合
にはステップ131に進み、総ての制御点が視野領域に
入っているか否かを判定する。総ての制御点が入ってい
ない場合には、ステップ132に進む。
【0086】制御点が一点でも視野領域内に入っている
場合には、計算部807により、この曲面スパンの分割
数を計算する(ステップ107)。分割数を計算するに
は、例えば、前出の“Surface algorit
hms using bounds on deriv
atives”や“Real−time render
ing of trimmed surfaces”等
に記載されている方法で計算すれば良い。ステップ13
2においては、総ての曲面スパンに対してステップ10
4乃至ステップ107の処理が行なわれたか否かを調べ
る。処理が行なわれていない曲面スパンがある場合に
は、ステップ104へ戻る。総ての曲面スパンに対して
処理が行なわれている場合には、ステップ108へ進
む。
場合には、計算部807により、この曲面スパンの分割
数を計算する(ステップ107)。分割数を計算するに
は、例えば、前出の“Surface algorit
hms using bounds on deriv
atives”や“Real−time render
ing of trimmed surfaces”等
に記載されている方法で計算すれば良い。ステップ13
2においては、総ての曲面スパンに対してステップ10
4乃至ステップ107の処理が行なわれたか否かを調べ
る。処理が行なわれていない曲面スパンがある場合に
は、ステップ104へ戻る。総ての曲面スパンに対して
処理が行なわれている場合には、ステップ108へ進
む。
【0087】ステップ108においては、トリミング曲
線の分割数を計算し、近似部808により、折線により
近似する。ステップ108における処理の詳細は、後述
する。次に、ステップ133において、ステップ108
の処理が総てのトリミング曲線に対して行なわれたか否
かを判定する。処理が行なわれていないトリミング曲線
が有る場合には、ステップ108の処理を繰り返す。
線の分割数を計算し、近似部808により、折線により
近似する。ステップ108における処理の詳細は、後述
する。次に、ステップ133において、ステップ108
の処理が総てのトリミング曲線に対して行なわれたか否
かを判定する。処理が行なわれていないトリミング曲線
が有る場合には、ステップ108の処理を繰り返す。
【0088】次に、写像sの定義域[up+1,um+1]×
[vq+1,vn+1]を、各曲面スパンの分割数及びトリミ
ング曲線の屈曲点に従って分割する(ステップ10
9)。分割された小片のそれぞれをセルと称す。セル
は、矩形又は矩形を更に対角線で分割した三角形であ
る。尚、トリミング曲線の屈曲点とは、U座標の傾きが
正から負へ変化し且つV座標の傾きが負のとき、又は、
U座標の傾きが負から正へ変化し且つV座標の傾きが正
のときのV座標、及び、V座標の傾きが正から負へ変化
し且つU座標の傾きが正のとき、又は、V座標の傾きが
負から正へ変化し且つU座標の傾きが負のときのU座標
のことである。屈曲点での分割を行うのは、トリミング
された後のセルの各辺が単調になるようにするためであ
る。
[vq+1,vn+1]を、各曲面スパンの分割数及びトリミ
ング曲線の屈曲点に従って分割する(ステップ10
9)。分割された小片のそれぞれをセルと称す。セル
は、矩形又は矩形を更に対角線で分割した三角形であ
る。尚、トリミング曲線の屈曲点とは、U座標の傾きが
正から負へ変化し且つV座標の傾きが負のとき、又は、
U座標の傾きが負から正へ変化し且つV座標の傾きが正
のときのV座標、及び、V座標の傾きが正から負へ変化
し且つU座標の傾きが正のとき、又は、V座標の傾きが
負から正へ変化し且つU座標の傾きが負のときのU座標
のことである。屈曲点での分割を行うのは、トリミング
された後のセルの各辺が単調になるようにするためであ
る。
【0089】次に、トリミング部809により、各トリ
ミング曲線と各セルとの交点計算を行いながら、各セル
をトリミングする(ステップ110)。トリミングされ
たセルは、上記に説明したように多角形となる。以後の
処理は、この多角形に対して行う。又は、適当な細分を
行って三角形に分割して行っても良い。
ミング曲線と各セルとの交点計算を行いながら、各セル
をトリミングする(ステップ110)。トリミングされ
たセルは、上記に説明したように多角形となる。以後の
処理は、この多角形に対して行う。又は、適当な細分を
行って三角形に分割して行っても良い。
【0090】次に、クリッピング部810により、トリ
ミングされたセルのXYZ空間(正規化投影座標系)へ
の像をクリッピングする(ステップ111)。最後に、
変換部811により、セルをデバイス座標系へ変換し
(ステップ112)、属性及び上記で述べてはいないが
変換過程の途中で計算される輝度等の属性に従って表示
する(ステップ113)。ステップ134において、総
てのセルに対してステップ111乃ステップ113の処
理が行なわれたか否かを判定し、処理が行なわれていな
いセルが有る場合には、ステップ111へ戻る。総ての
セルに対して処理が行なわれている場合には、表示処理
を終了する。
ミングされたセルのXYZ空間(正規化投影座標系)へ
の像をクリッピングする(ステップ111)。最後に、
変換部811により、セルをデバイス座標系へ変換し
(ステップ112)、属性及び上記で述べてはいないが
変換過程の途中で計算される輝度等の属性に従って表示
する(ステップ113)。ステップ134において、総
てのセルに対してステップ111乃ステップ113の処
理が行なわれたか否かを判定し、処理が行なわれていな
いセルが有る場合には、ステップ111へ戻る。総ての
セルに対して処理が行なわれている場合には、表示処理
を終了する。
【0091】図2に、ステップ108の処理を詳しく説
明するためのフローチャートを示す。また、図9に、こ
の処理を実行するための処理部の、機能ブロック図を示
す(この機能ブロックは、図8の近似部808内に備え
られる)。以下、図2および図9により、ステップ10
8の処理を説明する。
明するためのフローチャートを示す。また、図9に、こ
の処理を実行するための処理部の、機能ブロック図を示
す(この機能ブロックは、図8の近似部808内に備え
られる)。以下、図2および図9により、ステップ10
8の処理を説明する。
【0092】先ず、展開部901により、曲線スパンに
おいてNURB曲線をベジェ曲線に展開する(ステップ
201)。矢張、ベジェ曲線に展開するのは、以後の処
理を簡単にする為であり、必ずしも必要な処理ではな
い。次に、判定部902により、ベジェ曲線が曲面スパ
ンと交叉するか否かを判定する(ステップ202)。交
叉しなければ、以後の処理は行わない。交叉する場合に
は、以下の各ステップの処理を行う。
おいてNURB曲線をベジェ曲線に展開する(ステップ
201)。矢張、ベジェ曲線に展開するのは、以後の処
理を簡単にする為であり、必ずしも必要な処理ではな
い。次に、判定部902により、ベジェ曲線が曲面スパ
ンと交叉するか否かを判定する(ステップ202)。交
叉しなければ、以後の処理は行わない。交叉する場合に
は、以下の各ステップの処理を行う。
【0093】ここで、交叉の判定について、説明する。
【0094】一般的には(曲線および曲面がベジェでな
い場合には)、交叉の判定を行うには、合成写像s・c
のパラメタ範囲は、パラメトリックトリミング曲線cの
値域とパラメトリック曲面の各区分との共通部分が存在
するかを判定する。そして、共通部分が存在するときに
限り共通部分が存在する範囲をパラメタ範囲として(s
・c)′又は(s・c)″の最大値を求める。
い場合には)、交叉の判定を行うには、合成写像s・c
のパラメタ範囲は、パラメトリックトリミング曲線cの
値域とパラメトリック曲面の各区分との共通部分が存在
するかを判定する。そして、共通部分が存在するときに
限り共通部分が存在する範囲をパラメタ範囲として(s
・c)′又は(s・c)″の最大値を求める。
【0095】本実施例のように、曲線および曲面がベジ
ェである場合には、ベジェ曲線の制御点に対し、総ての
制御点が曲面スパンに入っていなければ交叉をしないも
のとして判定する。一つでも入っている場合には、交叉
するものとして以下の処理を行うが、交叉しない場合も
あり得る。然し、交叉しない場合でも以後の処理で上手
く処理されるので、ここでは問題としない。
ェである場合には、ベジェ曲線の制御点に対し、総ての
制御点が曲面スパンに入っていなければ交叉をしないも
のとして判定する。一つでも入っている場合には、交叉
するものとして以下の処理を行うが、交叉しない場合も
あり得る。然し、交叉しない場合でも以後の処理で上手
く処理されるので、ここでは問題としない。
【0096】次に、合成部903により、曲面スパンに
おけるベジェ曲面にベジェ曲線を代入し合成写像を作成
する(ステップ203)。この合成写像の定義域は、曲
線スパンを[tk,tk+1]、ベジェ曲線をc、曲面スパ
ンを[ui,ui+1]×[vj,vj+1]とするとき、[t
k,tk+1]∩{t∈[tk,tk+1]|c(t)∈
[ui,ui+1]×[vj,vj+1]}である。この定義域
をTと置く。定義域Tを求めるには、ベジェ曲線cと曲
面スパン[ui,ui+1]×[vj,vj+1]の境界での交
点計算によって求めることが出来る。
おけるベジェ曲面にベジェ曲線を代入し合成写像を作成
する(ステップ203)。この合成写像の定義域は、曲
線スパンを[tk,tk+1]、ベジェ曲線をc、曲面スパ
ンを[ui,ui+1]×[vj,vj+1]とするとき、[t
k,tk+1]∩{t∈[tk,tk+1]|c(t)∈
[ui,ui+1]×[vj,vj+1]}である。この定義域
をTと置く。定義域Tを求めるには、ベジェ曲線cと曲
面スパン[ui,ui+1]×[vj,vj+1]の境界での交
点計算によって求めることが出来る。
【0097】次に、計算部904により、定義域Tにお
けるベジェ曲線cの分割数を計算する(ステップ20
4)。
けるベジェ曲線cの分割数を計算する(ステップ20
4)。
【0098】ここで、分割数の計算方法について、説明
する。その為に、曲線スパンを[tk,tk+1]、ベジェ
曲線の次数をr、制御点の集合をQk(1≦k≦l)、
ベジェ曲線をc、曲面スパンを[ui,ui+1]×
[vj,vj+1]、ベジェ曲面のU方向の次数をp、V方
向の次数をq、制御点の集合をPij(1≦i≦p+1,
1≦j≦q+1)ベジェ曲面をs、合成写像s・cの定
義域をTとする。
する。その為に、曲線スパンを[tk,tk+1]、ベジェ
曲線の次数をr、制御点の集合をQk(1≦k≦l)、
ベジェ曲線をc、曲面スパンを[ui,ui+1]×
[vj,vj+1]、ベジェ曲面のU方向の次数をp、V方
向の次数をq、制御点の集合をPij(1≦i≦p+1,
1≦j≦q+1)ベジェ曲面をs、合成写像s・cの定
義域をTとする。
【0099】第一の分割数の計算方法においては、ベジ
ェ曲線cの折線近似の各線分の長さを一定値L以下に抑
えるために、合成写像s・cの一次微分(s・c)′の
大きさのTでの最大値M1を求め、ベジェ曲線cの折線
近似の為の分割数をM1/Lとする。このように分割数
を決めると折線近似の各線分の長さを一定値L以下に抑
えることができることの理論的な根拠は、“The g
raphical processing of B−
spline in a highly dynami
c environment, S.S. Abi−E
zzi著,Rensselar polytechni
c institute,1989年発行”のp.15
4を中心に記載されている。最大値M1は、ベジェ曲面
s及びベジェ曲線cが共に多項式である場合、
ェ曲線cの折線近似の各線分の長さを一定値L以下に抑
えるために、合成写像s・cの一次微分(s・c)′の
大きさのTでの最大値M1を求め、ベジェ曲線cの折線
近似の為の分割数をM1/Lとする。このように分割数
を決めると折線近似の各線分の長さを一定値L以下に抑
えることができることの理論的な根拠は、“The g
raphical processing of B−
spline in a highly dynami
c environment, S.S. Abi−E
zzi著,Rensselar polytechni
c institute,1989年発行”のp.15
4を中心に記載されている。最大値M1は、ベジェ曲面
s及びベジェ曲線cが共に多項式である場合、
【0100】
【数21】
【0101】であることを用いて
【0102】
【数22】
【0103】のように決定しても良い。このとき、合成
写像s・cの定義域Tは最早関係がなくなる。従って、
このようにして最大値M1を評価する(決定する)場合
には、ベジェ曲線cと曲面スパン[ui,ui+1]×[v
j,vj+1]の境界での交点計算は必要なくなる。尚、ベ
ジェ曲面s又はベジェ曲線cが有理多項式である場合
も、分子と分母に分け、分子は上記の方法で分母は最大
値の代わりに最小値を計算することで同様に計算出来
る。
写像s・cの定義域Tは最早関係がなくなる。従って、
このようにして最大値M1を評価する(決定する)場合
には、ベジェ曲線cと曲面スパン[ui,ui+1]×[v
j,vj+1]の境界での交点計算は必要なくなる。尚、ベ
ジェ曲面s又はベジェ曲線cが有理多項式である場合
も、分子と分母に分け、分子は上記の方法で分母は最大
値の代わりに最小値を計算することで同様に計算出来
る。
【0104】第二の分割数の計算方法においては、ベジ
ェ曲線の折線近似とベジェ曲線cの真値からの誤差を一
定値(これをTOLとする)以下に抑えるために、合成
写像s・cの二次微分(s・c)″の大きさのTでの最
大値M2を求め、ベジェ曲線cの折線近似の為の分割数
を√(M2/(8×TOL))とする。このように分割
数を決めると折線近似の各線分の長さを一定値TOL以
下に抑えることができることの理論的な根拠は、“Th
e graphical processing of
B−spline in a highly dyn
amic environment”のp.157を中
心に記載されている。最大値M2は、ベジェ曲面s及び
ベジェ曲線cが共に多項式である場合、
ェ曲線の折線近似とベジェ曲線cの真値からの誤差を一
定値(これをTOLとする)以下に抑えるために、合成
写像s・cの二次微分(s・c)″の大きさのTでの最
大値M2を求め、ベジェ曲線cの折線近似の為の分割数
を√(M2/(8×TOL))とする。このように分割
数を決めると折線近似の各線分の長さを一定値TOL以
下に抑えることができることの理論的な根拠は、“Th
e graphical processing of
B−spline in a highly dyn
amic environment”のp.157を中
心に記載されている。最大値M2は、ベジェ曲面s及び
ベジェ曲線cが共に多項式である場合、
【0105】
【数23】
【0106】であることを用いて
【0107】
【数24】
【0108】のように決定しても良い。このとき、合成
写像s・cの定義域Tは最早関係がなくなる。従って、
このようにして最大値M2を評価する(決定する)場合
には、ベジェ曲線cと曲面スパン[ui,ui+1]×[v
j,vj+1]の境界での交点計算は必要なくなる。尚、ベ
ジェ曲面s又はベジェ曲線cが有理多項式である場合
も、分子と分母に分け、分子は上記の方法で計算し、分
母は最大値の代わりに最小値を計算することで同様に計
算出来る。
写像s・cの定義域Tは最早関係がなくなる。従って、
このようにして最大値M2を評価する(決定する)場合
には、ベジェ曲線cと曲面スパン[ui,ui+1]×[v
j,vj+1]の境界での交点計算は必要なくなる。尚、ベ
ジェ曲面s又はベジェ曲線cが有理多項式である場合
も、分子と分母に分け、分子は上記の方法で計算し、分
母は最大値の代わりに最小値を計算することで同様に計
算出来る。
【0109】最後に、処理部905により、曲面スパン
におけるベジェ曲線をステップ204で求めた分割数に
より折線で近似する(ステップ205)。ステップ21
0において、ステップ202乃至ステップ205の処理
が総ての曲面スパンに対して行なわれたか否かを判定
し、行なわれていない場合にはステップ202へ戻る。
総ての曲面スパンに対して行なわれた場合には、ステッ
プ211において、総ての曲線スパンに対して処理が行
なわれたか否かを判定し、行なわれていない場合にはス
テップ201へ戻る。総ての曲線スパンに対して行なわ
れた場合には、表示処理を終了する。
におけるベジェ曲線をステップ204で求めた分割数に
より折線で近似する(ステップ205)。ステップ21
0において、ステップ202乃至ステップ205の処理
が総ての曲面スパンに対して行なわれたか否かを判定
し、行なわれていない場合にはステップ202へ戻る。
総ての曲面スパンに対して行なわれた場合には、ステッ
プ211において、総ての曲線スパンに対して処理が行
なわれたか否かを判定し、行なわれていない場合にはス
テップ201へ戻る。総ての曲線スパンに対して行なわ
れた場合には、表示処理を終了する。
【0110】上記において、各ベジェ曲線のXYZ空間
への像を考えている訳であるが、XYZ空間は、ワール
ド座標系でも正規化投影座標系でもデバイス座標系でも
何方でも良い。然し、好ましくは、最終的に表示される
デバイス座標系で考えた方が良い。
への像を考えている訳であるが、XYZ空間は、ワール
ド座標系でも正規化投影座標系でもデバイス座標系でも
何方でも良い。然し、好ましくは、最終的に表示される
デバイス座標系で考えた方が良い。
【0111】又、正規化投影座標系又はデバイス座標系
で考えたとき、Z座標は余り意味を持たない。従って、
(s・c)′又は(s・c)″の大きさを考えるときに
Z座標は無視して考えても良い。
で考えたとき、Z座標は余り意味を持たない。従って、
(s・c)′又は(s・c)″の大きさを考えるときに
Z座標は無視して考えても良い。
【0112】以上で述べた方法によって、曲面及びトリ
ミング曲線の分割数を決定し、トリミングを行った結
果、トリム曲面はセルに分割される。分割されたセル
は、変数変換を受け、図6に示したグラフィックサブシ
ステム607に送られる。グラフィックサブシステム6
07では、グラフィックLSI608が、ドットイメー
ジデータを作成する。このとき、トリミング曲線の真値
とグラフィックLSI608に入力される折線とは、上
記の方法によってある一定値の誤差TOLで抑えられて
いる。又、グラフィックLSI608に送られる座標デ
ータは、一般に浮動小数であるが、作成されるドットデ
ータは、四捨五入(又は切捨て)等によって整数に丸め
られる。丸めによる誤差は、最大1/√2である。従っ
て、トリミング曲線の真値と表示されるドットイメージ
との最大誤差はTOL+1/√2となる。
ミング曲線の分割数を決定し、トリミングを行った結
果、トリム曲面はセルに分割される。分割されたセル
は、変数変換を受け、図6に示したグラフィックサブシ
ステム607に送られる。グラフィックサブシステム6
07では、グラフィックLSI608が、ドットイメー
ジデータを作成する。このとき、トリミング曲線の真値
とグラフィックLSI608に入力される折線とは、上
記の方法によってある一定値の誤差TOLで抑えられて
いる。又、グラフィックLSI608に送られる座標デ
ータは、一般に浮動小数であるが、作成されるドットデ
ータは、四捨五入(又は切捨て)等によって整数に丸め
られる。丸めによる誤差は、最大1/√2である。従っ
て、トリミング曲線の真値と表示されるドットイメージ
との最大誤差はTOL+1/√2となる。
【0113】一方、グラフィックLSI608におい
て、ドットの存在する割合を考慮し、輝度を廻りのドッ
トに分散して表示するアンチエイリアスの技術がある。
通常、アンチエイリアスは、隣接1ドットの廻りに対し
分散を行うので、本発明において、TOL+1/√2<
1となる様にTOLを選び、アンチエイリアスの手法を
用いることで、表示上誤差のない結果が得られる。
て、ドットの存在する割合を考慮し、輝度を廻りのドッ
トに分散して表示するアンチエイリアスの技術がある。
通常、アンチエイリアスは、隣接1ドットの廻りに対し
分散を行うので、本発明において、TOL+1/√2<
1となる様にTOLを選び、アンチエイリアスの手法を
用いることで、表示上誤差のない結果が得られる。
【0114】又、本発明を、トリミングされた二つの曲
面をエッジであわせたような図形を表示することに用い
る場合、共にTOLの誤差で評価したとすると、二つの
エッジをそれぞれドットイメージにしたとき、それらの
間の最大誤差は2(TOL+1/√2)である。このと
き、アンチエイリアスを、例えば、隣接する2(>2
(TOL+1/√2))ドットの廻りに対し分散を行う
ようにすることで、表示上隙間のない結果が得られるよ
うになる。
面をエッジであわせたような図形を表示することに用い
る場合、共にTOLの誤差で評価したとすると、二つの
エッジをそれぞれドットイメージにしたとき、それらの
間の最大誤差は2(TOL+1/√2)である。このと
き、アンチエイリアスを、例えば、隣接する2(>2
(TOL+1/√2))ドットの廻りに対し分散を行う
ようにすることで、表示上隙間のない結果が得られるよ
うになる。
【0115】
【発明の効果】上記のように、本発明によれば、ユーザ
により誤差の許容値を指定されると、トリミングによっ
て生じるパラメトリック曲面のエッジの誤差を、前記指
定された値以下に抑えることを可能とするための、パラ
メトリックトリミング曲線の折線近似方法を備えたグラ
フィックシステムを提供することができる。
により誤差の許容値を指定されると、トリミングによっ
て生じるパラメトリック曲面のエッジの誤差を、前記指
定された値以下に抑えることを可能とするための、パラ
メトリックトリミング曲線の折線近似方法を備えたグラ
フィックシステムを提供することができる。
【図1】トリム曲面の表示手順の一例を表すフローチャ
ートの図である。
ートの図である。
【図2】トリミング曲線の折線近似の手順を表すフロー
チャートの図である。
チャートの図である。
【図3】パラメトリック曲面を説明するための図であ
る。
る。
【図4】トリミングを説明するための図である。
【図5】パラメトリックトリミング曲線を説明するため
の図である。
の図である。
【図6】グラフィックシステムの一例を表すブロック図
である。
である。
【図7】グラフィックシステムの一例を表す機能ブロッ
ク図である。
ク図である。
【図8】トリム曲面の表示処理を行なう処理部の機能ブ
ロック図である。
ロック図である。
【図9】トリミング曲線の折線近似処理を行なう処理部
の機能ブロック図である。
の機能ブロック図である。
601…中央処理装置(CPU)、602…メインメモ
リ(MM)、603…キーボード(KB)、604…マ
ウス(MOUSE)、605…スタイラスペン(PE
N)、606…システムバス、607…グラフィックサ
ブシステム、608…グラフィックLSI、609…フ
レームバス、610…フレームメモリ(FM)、611
…CRT、612…ダイアル(DIAL)、613…フ
ァイリング装置(FILE)。
リ(MM)、603…キーボード(KB)、604…マ
ウス(MOUSE)、605…スタイラスペン(PE
N)、606…システムバス、607…グラフィックサ
ブシステム、608…グラフィックLSI、609…フ
レームバス、610…フレームメモリ(FM)、611
…CRT、612…ダイアル(DIAL)、613…フ
ァイリング装置(FILE)。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 桑名 利幸 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内
Claims (10)
- 【請求項1】少なくとも、入力装置、記憶装置、演算装
置、および、表示装置を備え、パラメトリック曲面の定
義式または制御点の集合、および、前記曲面をトリミン
グするためのパラメトリックなトリミング曲線の定義式
または制御点の集合を記憶装置に保持し、前記演算装置
において前記パラメトリック曲面を開多面体または閉多
面体により近似し、前記演算装置において前記パラメト
リックなトリミング曲線を折線により近似して、前記パ
ラメトリック曲面およびパラメトリックなトリミング曲
線を前記表示装置に表示する際に、 前記トリミング曲線の折線による近似の精度について、
外部から指定される任意の値の許容誤差値を前記入力装
置により受付けて、記憶装置に保持し、 前記指定された許容誤差値に基づいて、前記トリミング
曲線を折線により近似する際の折線の数を決定するため
の式を前記記憶装置に予め備え、前記演算装置により前
記折線の数を決定することを特徴とする、折線近似によ
りパラメトリックトリミング曲線を表示する方法。 - 【請求項2】請求項1記載の折線近似によりパラメトリ
ックトリミング曲線を表示する方法は、 前記トリミング曲線が、1つの変数tをパラメタとしc
(t)=(u(t),v(t))である写像cで与えら
れ、 前記パラメトリック曲面が、2つの変数uおよびvをパ
ラメタとしs(u,v)=(x(u,v),y(u,
v),z(u,v))である写像sにより与えられ、 前記許容誤差値がLで指定されるとき、 前記トリミング曲線を折線により近似する際の折線の数
を決定するための式は、 合成写像s・cのtによる一次微分(s・c)′の大き
さの、前記トリミング曲線のパラメタtの範囲内での最
大値M1を前記演算装置により求め、前記折線の数をM
1/Lと決定するための式であることを特徴とする、折
線近似によりパラメトリックトリミング曲線を表示する
方法。 - 【請求項3】請求項1記載の折線近似によりパラメトリ
ックトリミング曲線を表示する方法は、 前記トリミング曲線が、1つの変数tをパラメタとしc
(t)=(u(t),v(t))である写像cで与えら
れ、 前記パラメトリック曲面が、2つの変数uおよびvをパ
ラメタとしs(u,v)=(x(u,v),y(u,
v),z(u,v))である写像sにより与えられ、 前記許容誤差値がTOLで指定されるとき、 前記トリミング曲線を折線により近似する際の折線の数
を決定するための式は、 合成写像s・cのtによる二次微分(s・c)″の大き
さの、前記トリミング曲線のパラメタtの範囲内での最
大値M2を前記演算装置により求め、前記折線の数を√
(M2/(8×TOL))と決定するための式であるこ
とを特徴とする、折線近似によりパラメトリックトリミ
ング曲線を表示する方法。 - 【請求項4】請求項2または3において、 前記パラメトリック曲面が、複数の曲面(各曲面を区分
と称する)の和集合として与えられている場合には、 前記パラメトリックトリミング曲線cの写像sによる値
域と、前記パラメトリック曲面の各区分との共通部分が
存在するか否かを前記演算装置により判定し、共通部分
が存在するときに限り、共通部分が存在する範囲を合成
写像s・cのパラメタ範囲として、(s・c)′又は
(s・c)″の大きさの最大値を求めることを特徴とす
る、折線近似によりパラメトリックトリミング曲線を表
示する方法。 - 【請求項5】請求項4において、 前記パラメトリック曲面が、複数の曲面(各曲面を区分
と称する)の和集合として与えられ、且つ、前記パラメ
トリックトリミング曲線が制御点の集合で定義され且つ
凸包性を有する場合には、 前記パラメトリックトリミング曲線を定義する制御点の
集合の写像sによる値域と、前記パラメトリック曲面の
各区分との共通部分が存在するか否かを前記演算装置に
より判定し、前記パラメトリックトリミング曲線の値域
とパラメトリック曲線の各区分との共通部分が存在する
か否かの判定を行うことを特徴とする、折線近似により
パラメトリックトリミング曲線を表示する方法。 - 【請求項6】パラメトリック曲面の定義式または制御点
の集合、および、前記曲面をトリミングするためのパラ
メトリックなトリミング曲線の定義式または制御点の集
合を記憶装置に保持し、前記演算装置において前記パラ
メトリック曲面を開多面体または閉多面体により近似
し、前記演算装置において前記パラメトリックなトリミ
ング曲線を折線により近似して、前記パラメトリック曲
面およびパラメトリックなトリミング曲線を前記表示装
置に表示するグラフィック表示システムにおいて、 前記トリミング曲線の折線による近似の精度について、
外部から指定される任意の値の許容誤差値を入力する入
力手段と、 前記入力された許容誤差値を保持する第1の記憶手段
と、 前記入力された許容誤差値に基づいて、前記トリミング
曲線を折線により近似する際の折線の数を決定するため
の式を予め保持する第2の記憶手段と、 前記式に基づき前記折線の数を決定する決定手段と、 を備えることを特徴とするグラフィック表示システム。 - 【請求項7】請求項6記載のグラフィック表示システム
において、 前記トリミング曲線が、1つの変数tをパラメタとしc
(t)=(u(t),v(t))である写像cで与えら
れ、 前記パラメトリック曲面が、2つの変数uおよびvをパ
ラメタとしs(u,v)=(x(u,v),y(u,
v),z(u,v))である写像sにより与えられ、 前記許容誤差値がLで指定されるとき、 前記トリミング曲線を折線により近似する際の折線の数
を決定するための式は、 合成写像s・cのtによる一次微分(s・c)′の大き
さの、前記トリミング曲線のパラメタtの範囲内での最
大値M1を前記演算装置により求め、前記折線の数をM
1/Lと決定するための式であることを特徴とするグラ
フィック表示システム。 - 【請求項8】請求項1記載のグラフィック表示システム
において、 前記トリミング曲線が、1つの変数tをパラメタとしc
(t)=(u(t),v(t))である写像cで与えら
れ、 前記パラメトリック曲面が、2つの変数uおよびvをパ
ラメタとしs(u,v)=(x(u,v),y(u,
v),z(u,v))である写像sにより与えられ、 前記許容誤差値がTOLで指定されるとき、 前記トリミング曲線を折線により近似する際の折線の数
を決定するための式は、 合成写像s・cのtによる二次微分(s・c)″の大き
さの、前記トリミング曲線のパラメタtの範囲内での最
大値M2を前記演算装置により求め、前記折線の数を√
(M2/(8×TOL))と決定するための式であるこ
とを特徴とするグラフィック表示システム。 - 【請求項9】請求項7または8において、 前記パラメトリック曲面が、複数の曲面(各曲面を区分
と称する)の和集合として与えられている場合に、 前記パラメトリックトリミング曲線cの写像sによる値
域と、前記パラメトリック曲面の各区分との共通部分が
存在するか否かを判定する判定手段と、 前記判定手段により共通部分が存在すると判定された場
合に、前記共通部分が存在する範囲を合成写像s・cの
パラメタ範囲として、(s・c)′又は(s・c)″の
大きさの最大値を求める最大値算出手段と、 を備えることを特徴とするグラフィック表示システム。 - 【請求項10】請求項9において、 前記パラメトリック曲面が、複数の曲面(各曲面を区分
と称する)の和集合として与えられ、且つ、前記パラメ
トリックトリミング曲線が制御点の集合で定義され且つ
凸包性を有する場合に、前記判定手段として、 前記パラメトリックトリミング曲線を定義する制御点の
集合の写像sによる値域と、前記パラメトリック曲面の
各区分との共通部分が存在するか否かを判定する制御点
判定手段と、 を備えることを特徴とするグラフィック表示システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1385593A JPH06231261A (ja) | 1993-01-29 | 1993-01-29 | 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1385593A JPH06231261A (ja) | 1993-01-29 | 1993-01-29 | 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06231261A true JPH06231261A (ja) | 1994-08-19 |
Family
ID=11844894
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1385593A Pending JPH06231261A (ja) | 1993-01-29 | 1993-01-29 | 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06231261A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2000002165A1 (fr) * | 1998-07-03 | 2000-01-13 | Sega Enterprises, Ltd. | Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees |
| WO2012073363A1 (ja) * | 2010-12-02 | 2012-06-07 | デジタルプロセス株式会社 | 表示処理方法及び装置 |
| JP2013084040A (ja) * | 2011-10-06 | 2013-05-09 | Aakitekku:Kk | 三次元図形入力方法及びその装置 |
-
1993
- 1993-01-29 JP JP1385593A patent/JPH06231261A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2000002165A1 (fr) * | 1998-07-03 | 2000-01-13 | Sega Enterprises, Ltd. | Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees |
| US6600485B1 (en) | 1998-07-03 | 2003-07-29 | Sega Enterprises, Ltd. | Polygon data generation method and image display apparatus using same |
| WO2012073363A1 (ja) * | 2010-12-02 | 2012-06-07 | デジタルプロセス株式会社 | 表示処理方法及び装置 |
| CN103238170A (zh) * | 2010-12-02 | 2013-08-07 | Dipro株式会社 | 显示处理方法以及装置 |
| US8717356B2 (en) | 2010-12-02 | 2014-05-06 | Digital Process Ltd. | Display processing method and apparatus |
| JP2013084040A (ja) * | 2011-10-06 | 2013-05-09 | Aakitekku:Kk | 三次元図形入力方法及びその装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4385524B2 (ja) | ポリゴンデータの生成方法及び、これを用いた画像表示装置 | |
| JP2642070B2 (ja) | 四角形メッシュの生成方法及びシステム | |
| US7212205B2 (en) | Curved surface image processing apparatus and curved surface image processing method | |
| JP3344597B2 (ja) | グラフィック画像をテッセレーション化する方法および装置 | |
| US7903112B2 (en) | Drawing processing apparatus, texture processing apparatus, and tessellation method | |
| US5745666A (en) | Resolution-independent method for displaying a three-dimensional model in two-dimensional display space | |
| EP0360155B1 (en) | Image transformation method and device | |
| JPH05307610A (ja) | テクスチャマッピング方法およびその装置 | |
| US6906718B1 (en) | Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics | |
| US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
| JPWO2000002165A1 (ja) | ポリゴンデータの生成方法及び、これを用いた画像表示装置 | |
| JP2006106705A (ja) | アウトラインフォントのレンダリング | |
| US20060125824A1 (en) | Rapid zippering for real time tesselation of bicubic surfaces | |
| US6791569B1 (en) | Antialiasing method using barycentric coordinates applied to lines | |
| JPH07311856A (ja) | 画像データ処理方法および装置 | |
| JP2957511B2 (ja) | グラフィック処理装置 | |
| JPH07282292A (ja) | テクスチャマッピング方法及び画像処理装置 | |
| JPH06231261A (ja) | 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム | |
| US7280108B2 (en) | Bicubic surface rendering | |
| JP2001067491A (ja) | 再分割多角形を用いる画像表示方法及び装置 | |
| JPH11195139A (ja) | 自由曲面生成装置および方法、並びに提供媒体 | |
| JP2878614B2 (ja) | 画像合成方法及び装置 | |
| JP2000251095A (ja) | ポリゴンメッシュの領域分割方法及びその装置並びに情報記録媒体 | |
| JP2637905B2 (ja) | 垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム | |
| US20030189570A1 (en) | Bicubic surface rendering |