(57)【要約】【課題】  経線・緯線方式による球面の定義に本来的に付随する下記問題を根本的に解決する。トリムのための境界線を設定する際に、同境界線が極の近傍を通過したり、シームを跨いだりすると、オペレータの操作とは異なる位置に境界線が設定されたり、オフセットの際に極の近傍では球面の法線方向が決定できず、オフセット操作が不能になる。【解決手段】  位相写像演算機能を具備するCG用演算装置上で、3次元座標空間系での球面の座標を、パラメトリック座標系での球面の座標に変換する際の各座標系間の定義を見直して、上記問題の原因である極とシームとを無くして上記問題の根本的解決を図る。【選択図】  図２
2006268633.tif 000002
【特許請求の範囲】
【請求項１】
位相写像演算機能を具備するCG用演算装置上で、３次元空間での座標を（x、y、z、）、パラメトリック空間での座標を（u，v）とし、
【数１】
2006268633.tif 000011
2006268633.tif 000012
【請求項２】
請求項１記載の座標データ構造において、位相写像演算機能を具備するCG用演算装置上で、前記の座標データ構造を、更に位相写像して、中心位置、半径、軸方向の変更及び異方性の表現を可能にすべく構成してなる座標データ構造。
【請求項３】
請求項１又は２記載の座標データ構造において、位相写像演算機能を具備するCG用演算装置上で、パラメトリック空間での座標（u，v）を位相写像して、球面の表現範囲を変更可能とすべく構成してなる座標データ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トリム面作成時及びオフセット時に発生する問題を解決できるコンピュータグラフィックス（以下ＣＧという）のソフトウェアにおける球面の座標データ構造に関する。
【背景技術】
【０００２】
従来のＣＧソフトウェアにおいては、有理多項式で球面を表現する場合、緯線・経線形式法を用いる手が一般である。そして、この有理多項式はＮＵＲＢＳ曲面を用いて示されている。更に、このＮＵＲＢＳ曲面は有理ベジエ曲面であることが多い（例えば、非特許文献１、非特許文献２参照）。
【０００３】
従って、以下、従来の球面の定義を有理ベジエ曲面によるものとして説明する。
有理ベジエ曲面は、曲面を２個のパラメータを有する関数S(u,v) で定義するものであり、この関数S(u,v)は有理多項式と同等である。また、パラメータu又はvを一定の値とした関数S(u0,v)又はS(u,v0)は、有理ベジエ曲線(アイソパラメトリックライン)となる。この有理ベジエ曲面と有理ベジエ曲線は、制御点を設定することで形状を一意に決定可能である。
【０００４】
そして、球面を緯線・経線形式で表現するには、上記曲線S(u,v0)の制御点を適宜設定して同曲線S(u,v0)が半円弧を描くようにし、次いで、この半円弧の両端点を結ぶ直線を軸として、この半円弧を３６０°回転させた軌跡で球面を表現する。
この手法を詳細に説明すると、まず、有理ベジエ曲線であるS(u,v0)が半円弧を表現するように制御点を定める。この半円弧の両端点を結ぶ直線を軸として、S(u,v0)の各制御点を３６０°回転させた軌跡となる曲線となるように有理ベジエ曲線の制御点を定める。後者の制御点が緯線・経線形式で球面を表現する制御点となる。
【０００５】
なお、緯線・経線形式で表現する球面S(u,v)を地球儀に例えると、アイソパラメトリックラインS(u0,v)は緯線に相当し、S(u,v0)は経線に相当する。
また、u,vのパラメータの定義域は、通常長方形をしている。u,vを位相変換してS(u(u',v'),v(u',v'))とした場合、u'v'が長方形でもu,vは長方形とは限らない。そのためu',v'と３次元座標の対応関係はu,vと３次元座標の対応関係から変化するが、３次元座標が示す曲面の形状は変化しない。ただし、表現する曲面の領域は変化する。
更に、ここで説明したuとvは、uとvを入れ替えても同等であるため、ＣＧソフトウェアによっては、入れ替えて使用しているものもある。
【０００６】
ＣＧでは球面の一部（トリム面という）を使用することが多い。境界線で球面の使用する部分と使用しない部分とに分けて、使用する部分をトリム面としている。境界線は３次元空間での境界を示す曲線（３次元カーブ）と、同曲線に対応するパラメトリック空間での曲線（UVカーブ）とで構成されている。オペレータがトリム面を設定するときは、球面全体と境界線の３次元カーブだけを指定すると、ＣＧソフトウェアがUVソフトウェア的に算出する。
【０００７】
【非特許文献１】Prof Dr Les Piegl  Dr Wayne Tiller共著  「The ＮＵＲＢＳ Book 2nd Edition」Springer社出版、P３４０〜p３４８
【非特許文献２】山口富士夫著、「コンピュータディスプレイによる形状処理工学２」日刊工業新聞社出版、１９８２年１０月３０日初版７刷発行、p１~p６７
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述した３次元カーブからUVカーブを算出する行為は、S(u,v)の逆関数を計算する行為に帰結するが、球面S(u,v)のuの定義域の端部（以下極という）では、vが変化しても３次元座標は一定である。その結果、サンプリングした３次元の座標に対応するパラメータの値が一意に定まらず、そのため、トリム面を設定するために３次元座標系で、オペレータが極の部分を通過する境界線を設定しようとすると、意図した位置とは異なった位置に境界線が引かれるという問題があった。尚、極の部分は前述した地球儀の北極及び南極に相当する。
【０００９】
また、緯線・経線形式の球面表現では、パラメータvの定義域の両端（前述地球儀を例に取ると、回転前の半円弧と３６０°回転した半円弧に相当し、両者は重なっている）はパラメトリック空間では球面S(u,v)の端縁であるが、３次元空間での球面はここで途切れている訳ではないので接続しているとみなしている。このように接続していると看做す箇所をシームと呼んでいる。
【００１０】
かかるシームを跨いで前述したトリムの境界線を設定すると、連続な３次元カーブがパラメータでは不連続になり、単に３次元カーブ上のサンプリング点に対応するパラメータをつなぐ方法では、UVカーブを球面Ｓ（ｕ，ｖ）で３次元に変換したカーブと、オペレータが意図した３次元カーブとが異なる形状を示すことになる。
【００１１】
そこで、UVカーブを分割し、分割後のUVカーブが３次元カーブと同一形状を示すように修正しても、境界線はトリム面の周囲を一周しなければならないので、分割した箇所に新たな境界線を追加せざるを得ずプログラムの複雑化を招き、トリム面は１面であるとのオペレータの期待に反して、複数のトリム面が出力されることになり操作の煩雑化を招くことになる。
【００１２】
また、板物などをCADで表現する場合、板の一側面だけを作成し、この作成した一側面をオフセットして他面を作成することが多々ある。即ち、上記一側面上に設定された複数のサンプリング点を、球面の法線方向にオフセット量だけ移動した点を算出し、これらの点を通る曲面を作成して他の側面とすることが行われている。
【００１３】
上記法線方向は、曲面S(ｕ，ｖ)のu方向の微分とv方向の微分との外積で算出するが、球面の極の部分ではv方向の微分の絶対値が０になり、外積も０となって法線方向が算出できない。そのため、極の部分を含む曲面はオフセットできないことになる。
上述した各問題は、緯線・経線形式の球面の定義に本来的に付随しており、現在のＣＧソフトウェアでは、対策として、問題発生が予想される局面に特化したプログラムを追加しているため、プログラムが複雑化して処理速度が低下すると共に、開発コスト増大の一因となっている。
【００１４】
また、上記対策では、問題発生の原因が取り除かれていないので限局的な対策にすぎず、しばしば想定外の局面に遭遇しては上記問題が発生し、そのたびに上記対策を施しているので、更にプログラムが複雑になり、もし、ユーザーでの使用中に上記問題が発生すると、ユーザー側での作業が停滞するばかりでなく、ＣＧソフトウェアの製品としての信頼性を失墜するという結果を招くことになる。
【００１５】
本発明は、球面表現の基本たる球面の定義を見直すことにより、上記問題の発生を根本的に解決して、プログラムの複雑化を防止して処理速度を向上し、開発コスト増大を防止し、製品としてのＣＧソフトウェアの信頼性を向上することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、位相写像演算手段を具備するCG用演算装置上で、３次元空間での球面の座標を（ｘ，ｙ，ｚ）とし、パラメトリック空間の座標を（ｕ，ｖ）とし、
【００１７】
【数１】
2006268633.tif 000003
とする数学的により適切な定義に基づき、前記位相写像演算手段によって、パラメトリック空間の座標（ｕ，ｖ）と、３次元空間の座標（ｘ，ｙ，ｚ）との間で位相写像して、球面を表現する座標データ構造を得るように構成した。この座標データ構造では、ＣＧ作成作業上支障となるような極とシームとがなく、これらに付随する問題の発生が原理的に発生しない。
また、上記で得たデータ構造を、上記の位相写像演算手段によって、更に位相写像して、球面の中心位置、半径、軸方向の変更及び異方性の表現を可能にした。
更に、前記の位相写像を行うに先立って、パラメトリック空間での座標（ｕ，ｖ）を位相写像して球面の表現範囲を変更可能にして、不必要に表現範囲を広げてｕとｖとの一階
微分の絶対値が小さくなり過ぎて精度が低下するのを防止でき、しかも、必要であれば極限まで表現できるようにしている。
【００１８】
本発明の座標データ構造によれば、後で説明する３次元座標（０，０，１）を中心とした極めて狭い範囲を除いて、シームや極のような障害が無くなるので、トリム面作成時の境界線の問題及びオフセット時の法線方向が定まらない問題等の発生を根本的に防止できる。
また、本発明による座標データ構造は、一般のＣＧハードウェア及びＣＧソフトウェアが具備するＮＵＲＢＳ曲面及びベジエ曲面を処理する機能及びプログラムで、処理することができる。従って、サブルーチンとして、３次元の球面を本発明の座標データ構造に変換するプログラムを作成して、上記ＣＧソフトウェアに組込んでおけば、オペレータは略通常の操作で、トリム処理やオフセット処理等の球面の加工ができる。
なお、同座標データ構造を逆変換して２次元のパラメータ空間の座標構造に変換するプログラムも上記と一緒に組み込んでおけば、処理の高速化、高精度化を図ることができる。
【００１９】
また、本発明で定義する球面の座標データ構造の作成以外には、新たな追加開発は必要なく、更に、上記対策のためのプログラムも不要になり、大幅な開発コストの削減が図れる。
また、ユーザーでの使用中に上記問題の発生が防止されるので、製品としてのＣＧソフトウェアの信頼性を向上することができる。
【発明を実施するための最良の形態】
【００２０】
本発明による球面をベジエ曲面の１パッチで表現する方法について説明する。
なお、説明を簡明にするため、原点を中心とした半径1の単位球面１の座標データ構造を説明する。任意の球面を表現するには、座標データ構造を位相写像の一つである１次変換で、拡大・縮小・回転すればよい。
【００２１】
まず、位相写像演算機能を具備するCG用演算装置上で、後述する行列の演算の都合上、パラメトリック座標(u,v)と同次座標系での座標（ｘ’、ｙ’、ｚ’、ｗ’）との関係を次式のように定義し、
【００２２】
【数２】
2006268633.tif 000004
【００２３】
同次座標系での座標（ｘ’、ｙ’、ｚ’、ｗ’）と３次元座標系での球面の座標（ｘ，ｙ，ｚ）との関係を、
【００２４】
【数３】
2006268633.tif 000005
なる多項式で定義すると、３次元座標の各成分ｘ，ｙ，ｚの２乗和が１となり、中心からの距離が一定という球面の条件を満足する。
なお、（数３）の各式にそれぞれ、(数２)の各式の値を代入すれば、（数３）の各式は請求項１記載の数式及び(数１)の各式と等しいことが分かる。
（数３）の数式を行列で示すと次の通りである。      
【００２５】
【数４】
2006268633.tif 000006
以上の4式を次のように記述する。
【００２６】
【数５】
2006268633.tif 000007
【００２７】
ここで、Ｓ’は本発明の球面を同次座標系で表したものであり、Ｍは（数４）の３×３の行列である。
【００２８】
次に、本発明の球面の表現範囲、即ち、パラメータｕの定義域について説明する。
球の中心から見て3次元空間における座標（０，０，１）から角度αまでを本発明の球面で定義する場合、上記の多項式では次式の通りである。
【００２９】
【数６】
2006268633.tif 000008
【００３０】
パラメータｕの定義域は変更可能であり、上記角度αの設定値を小さくするほど球面の表現範囲が広くなるが、ｕ方向又はｖ方向の微分が０に近くなり、そのため誤差が大きくなり、処理速度も低下するので、現在のコンピュータの精度では、上記角度を約1°以上に設定することが望ましく、この場合でも３次元座標（０，０，１）を中心とし、球面の総面積の約１／１３０００の極めて狭い範囲（以下、ホールという）を除いて球面を表現可能である。
パラメータｖの定義域は−ｖ0〜＋ｖ0であって、ｖ0の定義域はパラメータｕの場合と同様に決定できる。
【００３１】
次に、本発明の球面の制御点Mqについて説明する。
球面の制御点は上記の定義域をパラメータの範囲とするノット列から作成されるb関数と以下の関係になる。
【００３２】
【数７】
2006268633.tif 000009
であるから
【００３３】
【数８】
2006268633.tif 000010
【００３４】
上記の方法で本発明の球面をベジエ曲面で表現する制御点を算出でき、これらの制御点から球面を表現する座標データ構造を得ることができる。  
【００３５】
上記は説明を簡明にするために原点を中心とし半径1の球面で説明しているが、数３の各数式の係数を位相写像（球面の拡大・縮小・移動・回転等）した数式や、パラメータを位相写像（球面の表現範囲の変更）した数式でも成立する。
【００３６】
また、パラメータを位相写像する際に上記数式の係数を異ならせて異方性を持たせた球面（例えば、ラグビーボールや円盤投げの円盤と類似の形状）でも成立する。
【００３７】
上記は、最良の実施形態として、ベジエ曲面の表現形式を用いた実施形態について説明したが、その他多項式を用いた球面の表現形式にも適用可能である。
【実施例】
【００３８】
本発明の実施に要する入力装置、演算装置、記憶装置、出力装置等のハードウェアは一般のＣＧ用コンピュータが既に具備しており、位相写像演算手段４０は、既存のCG用演算装置４１に付属したＣＧソフトウェアに既に組込まれているので、この演算装置４１で本発明の球面の座標データ構造を得るためのプログラムを実行可能である（図１参照）。
また、NURBS曲面の処理やベジエ曲面の処理は、既存のＣＧソフトウェアが備えたプログラム４２で実行可能である。
【００３９】
従って、本発明による位相写像演算手段４０だけの小規模な位相写像プログラム１８を開発して、サブルーチンとして既存のＣＧソフトウェアに組み込むことが可能である。従って、既存のＣＧソフトウェアにサブルーチンとして付加したものとして説明する。
【００４０】
次に、制御点を算出して母曲面としての球面（以下母球面という）２を作成し（図４参照）、同球面２をトリム処理してトリム面４を作成し、同トリム面４をオフセット処理して、オフセット後のトリム面５を作成するまでの手順を示す（図４参照）。
ＣＧ用コンピュータの入力装置に、球面の半径、中心位置、軸方向等の球面に関わる初期設定が入力されるとプログラムが起動する。
【００４１】
制御点の算出について、
１．多項式の係数を行列形式で設定する（ステップ１０）（数２参照）。
２．表現する球面の定義域から、パラメータの定義域を算出する（ステップ１１）。
３．定義域からベジエのｂ関数の係数の行列を算出する（ステップ１２）（数5参照）。
４．ｂ関数の逆行列を算出する（ステップ１３）。
５．ｂ関数の逆行列の転置行列を算出する（ステップ１４）。
６．球面を表現する有理ベジエ曲面の制御点を算出する（ステップ１５）。
以上の演算で制御点が算出され、原点を中心とし，球面の表現しない方向の中心の
座標を（０，０，１）とする１パッチの単位球面１が作成される（図４参照）。
【００４２】
母球面２の作成について、
７．単位球面１を任意の大きさ、位置、方向に変換する行列の係数を算出する（ステップ１６）。              
８．単位球面１を任意の大きさ、位置、方向に変換した母球面２を作成する（ステ          ップ１７）。
このようにして作成された球面２は，出力装置のモニタに図形として表示される（図５参照）。ここまでは、前記初期設定に基づいて自動的に行われる。
【００４３】
トリム処理について、
トリム処理は、一般にモニタの図形を見ながら行われるのであるが、上記図形上の引こうと思う境界線の通過点の必要箇所を、マウスなどの入力装置でポイントすると、次のトリム処理プログラム４４が起動する。            
９．３次元カーブでの境界線３のサンプル点に対応するパラメータを算出し、UVカー                            ブの通過点とする（ステップ２０）。
１０．UVカーブの通過点からUVカーブの境界線を作成する（ステップ２１）（図４参照）。
１１．３次元カーブ、UVカーブ、球面２からトリム面４を作成する（ステップ２２）（図４参照）。
このようにして作成されたトリム面４は、自動的にモニタに図形として表示される。
【００４４】
オフセット処理について、
オフセット処理もモニタの図形を見ながら行われる。マウス等の入力装置で、オフセットするトリム面４をピックすると、オフセット処理プログラム４５が起動し、モニタ画面上に、トリム面４のオフセット方向を矢印等で指示すると共に、オフセットの方向及び量を入力するためのダイアログボックスが表示されるので、これに従って方向及びオフセット量を入力すると、自動的に次の演算が行われる。
１２．上記トリム面４のパラメータ座標ｕ，ｖのそれぞれの偏微分の外積で球面２の法線方向を算出する（ステップ２３）。
１３．球面２上の座標、法線方向、オフセット量からオフセット後の座標を算出する（ステップ２４）。
１４．オフセットした座標を通るオフセット後のトリム面５を作成する（ステップ２５）（図４参照）。
以上の手順でオフセット後のトリム面５が作成される。
上記１〜１４の演算は、位相写像演算手段４０で行うことが可能である。
【００４５】
従来の緯線・経線方式では、トリムの際の極やシームの特殊処理プログラムと、オセットの際の極での法線方向算出の特殊処理プログラムが必要であり、これらの特殊処理プログラムは局面ごとに必要であるから非常に多量になり、更に、新局面に遭遇すると特殊処理プログラムの追加を要していた。しかるに、本発明の座標データ構造では、前述したホールを除いて、トリム処理やオフセット処理の障害となる極やシームがないので、境界線と干渉する確率が極めて低く、更に、球面の軸方向を変更可能であるから、境界線から上記のホールを離隔させることができるので、上記の特殊処理プログラムが全く不要になり、CGソフトウェア全体のサイズを小さくできる。また、局面ごとの特殊処理プログラムの追加を要しない。
【００４６】
更に、シームの箇所でトリム面４が複数に分割されることがなく、オペレータの期待通りのトリム面４が容易に作成され、更に、オフセット処理が支障なく行われてオフセット後のトリム面５が最小の操作で得られるので、オペレータの負担が軽くなる。
特に、本発明をＮＣ工作機用のＣＡＤに適用した場合は、ツールのパスが円滑になり工業製品として望ましい滑らかな形状の製品を製造できる。
【００４７】
図４は、本発明の球面の定義によるプログラムを、サブルーチンとして市販のＣＧソフトウェアに組み込み、当該ＣＧソフトウェアの操作で、単位球面１と所望の大きさの球面２とを作成し、次いで、略螺旋状の境界線３でトリムした形状を示している。
図５は、上記トリム面４を外側方向にオフセットしたオフセット後のトリム面５を示している。
【産業上の利用可能性】
【００４８】
上述したように、極やシームの問題が根本的に解決されるので、極やシームに関わる各問題の対策も不要になり、プログラム開発コストが低減でき、ユーザーでの使用中に上記問題の発生がなくなり、このためのメンテナンスも不要になるばかりでなく、製品としてのＣＧプログラムの信頼性が向上する。
【図面の簡単な説明】
【００４９】
【図１】演算装置の構成を示すブロック図
【図２】位相写像演算手段のフローチャート
【図３】トリム処理及びオフセット処理のフローチャート
【図４】球面を螺旋状にトリムした形状を示す斜視図
【図５】オフセット後のトリム面の形状を示す斜視図
【符号の説明】
【００５０】
１          単位球面
２          球面
３          境界線
４          トリム面
５          オフセット後のトリム面
１０〜１７  位相写像演算プログラムのステップ
１８        位相写像プログラム
２０〜２２  トリム処理演算プログラムのステップ
２３〜２５  オフセット処理演算プログラムのステップ
４０        位相写像手段
４１        既存のＣＧ用演算装置
４２        既存のＣＧ用プログラム
４４        トリム処理プログラム
４５        オフセット処理プログラム
【図１】
2006268633.tif 000013
【図２】
2006268633.tif 000014
【図３】
2006268633.tif 000015
【図４】
2006268633.tif 000016
【図５】
2006268633.tif 000017