(57)【特許請求の範囲】
【請求項１】
点要素、並びに、直線座標、面積座標及び体積座標パラメータでそれぞれ定義される線要素、面要素及び立体要素を、基本図形要素として設定する手段であって、各座標パラメータは、それぞれ、線要素、面要素及び立体要素を、当該要素上の任意の点と当該要素の端点、周囲線及び周囲面との間で形成される線分、面及び立体に分割したとき、分割された線分、面及び立体の長さ比、面積比及び体積比により、該任意の点を表現するものと、
設定された複数の基本図形要素を、互いの境界を共有することにより、連接して基本図形を設定する手段と、
設定された基本図形を構成する基本図形要素を直接的に変形して、点要素を除き連続微分可能性を保持した所望の立体図形を生成する手段と
を具備することを特徴とする３次元ＣＡＤシステム。
【請求項２】
点要素を除く基本図形要素は、座標パラメータに関するｎ次結合（ｎは、３以上の整数）の総てを加算した形式である座標パラメータの総ｎ次形式により表現されることを特徴とする請求項１に記載の３次元ＣＡＤシステム。
【請求項３】
点要素は、直接的にその位置を表わす３次元位置座標データをもち、線要素は、両端の点要素を指示するデータ及び中間制御点の相対位置を表わすデータをもち、面要素は、面を構成する線要素を指示するデータ及び面内制御点の相対位置座標を表わすデータをもち、立体要素は、立体を構成する面要素を指示するデータを表わすデータをもち、点要素、線要素及び面要素は、さらに、他のいくつの要素から当該要素が参照されているかを示すリファレンス計数データをもつことを特徴とする請求項１又は２に記載の３次元ＣＡＤシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、３次元ＣＡＤ（3 Dimentional-Computer Aided Design ：３Ｄ−ＣＡＤ）システム、より詳しくいうと、「トポロジーＣＡＤ」（位相幾何学応用ＣＡＤ）と呼ばれる基本的な幾何学理論を応用した３次元ＣＡＤシステムに関する。
【０００２】
【従来の技術】
現在、コンピュータで３次元設計図を描く「３次元ＣＡＤ」と呼ばれるシステムが脚光を浴びている。現用の３Ｄ−ＣＡＤのほとんどは「ブール演算方式のソリッドＣＡＤ」と呼ばれる方式である。
【０００３】
このブール演算方式ＣＡＤの方法では、例えば、図１〔１〕に示すように、四角い箱ＢＸの上に円筒ＣＹが貫いたような立体図形を定義する場合、円筒ＣＹと立体ＢＸの二つの基本図形を重ね合わせ、面Ｓ１と面Ｓ２との交差部の曲線（トリム線）ＴＬを求め、面の不必要な部分を切り取る「トリム処理」を行う。また、ブール演算では、角張った図形が形成されることが多く、図１〔２〕に示すように、角面に丸みを付けてフィレット面ＦＳを生成する「フィレット処理」と呼ばれる処理が必要となる。しかしながら、一般的に、トリム線ＴＬもフィレット面ＦＳも近似解で、面は厳密には相互に繋がっていない。
【０００４】
一般に、実空間を表わすｘ、ｙ、ｚ軸の３次元直交座標系における３次元曲面は、数式上では、次式（１）のように表わされる：
ｆ（ｘ，ｙ，ｚ）＝０                                      …（１）
しかし、ＣＡＤ方式では、通常、媒介変数（α，β）を使い、直交座標系における点（ｘ，ｙ，ｚ）として次式（２）のように表現する：
（ｘ，ｙ，ｚ）＝Ｓ（α，β）                              …（２）
ここで、Ｓはベクトル関数である。
いま、（α，β）で定義される平面を「パラメータ平面」と呼ぶことにし、また、このパラメータ平面（α，β）に対応して点（ｘ，ｙ，ｚ）の無限点群の集合で定義される実空間上の面を「写像面」と呼ぶことにする。
【０００５】
この場合、普通のＣＡＤ方式では、図２に示すように、パラメータ平面（α，β）は直交座標軸上の正四角形〔頂点（０，０），（１，０），（１，１），（０，１）〕で定義され、パラメータ平面（α，β）の内部で写像面を定義し、通常、０≦α，β≦１の範囲で実空間の面が表現される。図２は、パラメータ平面（α，β）において、α方向にα＝０，α＝α１，α＝α２，…，α＝１の（ｍ＋１）点、β方向にβ＝０，β＝β１，β＝β２，…，β＝１の（ｎ＋１）点、総計（ｍ＋１）×（ｎ＋１）点の制御点が設定され、これらの制御点に対応して写像面（頂点Ｐｏｏ，Ｐｍｏ，Ｐｍｎ，Ｐｏｎ）が定義されることを表わしている。実空間の写像面上の点Ｐ（ｘ，ｙ，ｚ）は、直交座標系を使用したパラメータα，βの関数であり、次式（３）のように表わされる：
ｘ＝Ｘ（α，β）    ｙ＝Ｙ（α，β）    ｚ＝Ｚ（α，β）  …（３）
【０００６】
現在実用化されているＣＡＤ方式が使用している自由曲面のほとんどは、ＮＵＲＢＳ（Non-Uniform Rational B-Spline ：ナーブス）曲面と呼ばれるもので、次式（４）のような数式で表現されている：
【数１】
0003829972.tif 000002
ここで、
Ｎik（α），Ｎjk（β）：Ｂスプライン関数と呼ばれるもので、例えば、α方向にｍ個の制御点がある面では、（ｍ−１）次の多項式で表される関数、
Ｗij：重み付け関数、
Ｐij：面制御点（位置ベクトル）、
ｍ＋１，ｎ＋１：α，β方向の制御点の数、制御点の総数は（ｍ＋１）×（ｎ＋１）。
【０００７】
従来のＣＡＤ方式では、図２のように、パラメータ平面（α，β）に直交座標系を用いており、複雑な局部形状を持つ面を定義する場合には、複雑さの程度に応じて、制御点の数ｎ×ｍを１０×１０，…，５０×１００というように増大して対応している。
【０００８】
また、パラメータ平面（α，β）において縦軸及び横軸に平行に描かれた直線〔即ち、直線α＝０、α＝１、β＝０又はβ＝ｌ（実空間での面の境界を表わす）、或いは、αが一定又はβが一定の値で表現される直線〕は、写像空間（実空間）ではパラメータα，βの高次関数で表わされる。例えば、３次ベジェ（Bezier）パッチやクーンズ（Coons ）パッチ等の方式のような場合、パラメータ平面（α，β）におけるこれらの直線は、実空間上では、３次ベジェ曲線：３次のパラメトリック曲線で表現することができる。しかしながら、この方式の場合でも、α＝βで表現されるパラメータ平面（α，β）を斜めに切るような直線（ｕ＝α＝β）に対応する実空間の写像曲線は、パラメータ（ｕ）の６次式で表わされる６次関数になってしまう。
【０００９】
このような曲線で表現される曲面を使用して、複数面を上下左右に連続的に定義することは可能であるが、複数面を斜めに繋ぐことはできない。すなわち、無限の３次のベジェ曲線の集合で定義された３次のベジェ曲面は、見方によっては、６次のベジェ曲線の集合のようにも見えてしまうと云うことであり、３次曲線と６次曲線との境界を共有することは不可能である。従って、このような条件は、図形を生成する上で極めて厳しい制約となる。
【００１０】
一般に、境界線で表現された面はその内部がどのように定義されているかが分からない。面を平面で切った断面線（線図）で面の形状を評価することもあるが、色染め（shading ：シェーディング、陰影付け）で面の形状を目で確かめる事が自然な方法である。また、この数学的に定義された面に沿ってＮＣ工作機械で加工すると、コンピュータの中の仮想の面は実物になる。
【００１１】
種々の面を使用するソリッドＣＡＤ方式や、複雑な数式で定義された従来の自由曲面においては、論理的な演算処理を一貫して実行するのが不可能なことから、最終的には、図３に示されるように、最小の自由度で表現される面素、即ち、微小平面〔通常、細かな三角の平面要素〕ＰＴに分解する。つまり、立体の全ての曲面を微小平面ＰＴに分解してその集まり〔「多面体（ポリゴン）」と呼ばれる〕ＰＰで近似するような線形離散化処理を用いて演算処理を行うので、演算結果は平面や折線で近似されたものになる。このように、現用のＣＡＤ方式では、無限に広がって定義される平面の一部を切り取った三角形ＰＴの繋ぎ合わせたポリゴンＰＰで曲面が近似表現され、この微少三角平面ＰＴの並び方を制御するために、広い空間を表現する曲面表現式（ＮＵＲＢＳ曲面等）が利用されているということができる。
【００１２】
また、現用のＣＡＤ方式やＣＧ（Computer Graphics ）により色染めを行う場合には、多面体（ポリゴン）の角点の色（陰影度）を計算し、残りの部分は連続的なぼかし処理（グローシェード、フォンシェード）を行っている。従って、現用のコンピュータ技術では目視による面の連続性を評価することができない。このように、従来のＣＡＤ技術における線形離散化近似は、工作機械を制御して形状を削り出すＮＣ加工においても重大な問題を内包している。
【００１３】
このように、ソリッドＣＡＤ方式においては、
（１）円筒や円錐、六面体等という２〜２．５次元の基本図形（プリミティブ）の重ね合わせを行うブール演算により図形を作成する、
（２）面と面の重なる部分にはフィレット面を張る必要があり、このフィレット処理には無理があり、意匠設計に不向きである、
（３）曲面処理では、ほぼ四角の面を定義し、トリム処理を施して面の形状を整える必要がある、
（４）これらの演算処理はポリゴン近似（線形離散化近似）を行って線形代数論を応用して近似計算を行っている
等の特徴をもつので、設計のプロセスを最初から再現するという長所があるものの、データ量が多大であってコンピュータの演算処理の負荷が過大であり、また、面の取扱いに一貫性がない等の欠点がある。
【００１４】
【発明が解決しようとする課題】
この発明は、このような事情に鑑み、「トポロジー」と呼ばれる基本的な理論を３次元ＣＡＤシステムに応用することにより、データ量を大幅に低減し、コンピュータの演算処理の負荷を減少させ、しかも、面の取扱いに一貫性をもたせた３次元ＣＡＤシステムを提供することを目的とする。
【００１５】
【課題を解決するための手段】
この発明の主たる特徴に従うと、点要素、並びに、直線座標、面積座標及び体積座標パラメータでそれぞれ定義される線（直線を含む曲線）要素、面（平面を含む曲面）要素及び立体要素を、基本図形要素として設定する手段であって、各座標パラメータは、それぞれ、線要素、面要素及び立体要素を、当該要素上の任意の点と当該要素の端点、周囲線及び周囲面との間で形成される線分、面及び立体に分割したとき、分割された線分、面及び立体の長さ比、面積比及び体積比により、該任意の点を表現するものと、設定された複数の基本図形要素を、互いの境界を共有することにより、連接して基本図形を設定する手段と、設定された基本図形を構成する基本図形要素を直接的に変形して、点要素を除き連続微分可能性を保持した所望の立体図形を生成する手段とを具備する３次元ＣＡＤシステム〔請求項１〕が提供される。
【００１６】
ここで、点要素を除く基本図形要素は、好ましくは、座標パラメータに関するｎ次結合（ｎは、３以上の整数）の総てを加算した形式である座標パラメータの総ｎ次形式により表現される〔請求項２〕。従って、生成される立体図形は、座標パラメータの同一次数（ｎ）の線形結合で表現される空間座標をもつ点群で定義される。
【００１７】
また、点要素は、直接的にその位置を表わす３次元位置座標データを持ち、線要素は、両端の点要素を指示するデータ（端点ポインタ）及び中間制御ポイントの相対位置を表わすデータ（中間点制御ベクトル／線制御ベクトル）をもち、面要素は、面を構成する線（境界線／外周線／周囲線）要素を指示するデータ（境界線／外周線／周囲線ポインタ）及び面内制御ポイント（内部制御ベクトル）の相対位置座標を表わすデータをもち、立体要素は、立体を構成する面（境界面／外周面／周囲面）要素を指示するデータ（境界面／外周面／周囲面ポインタ）を表わすデータをもち、点要素、線要素及び面要素は、さらに、他のいくつの要素から当該要素が参照されているかを示すリファレンス計数データ（参照カウント／依存親数）をもつ〔請求項３〕。
【００１８】
なお、この発明の主たる特徴に従えば、直線座標、面積座標及び体積座標パラメータでそれぞれ定義される線要素、面要素及び立体要素を基本図形要素として設定するステップであって、各座標パラメータは、それぞれ、線要素、面要素及び立体要素を、当該要素上の任意の点と当該要素の端点、周囲線及び周囲面との間で形成される線分、面及び立体に分割したとき、分割された線分、面及び立体の長さ比、面積比及び体積比により、該任意の点を表現するものと、設定された複数の基本図形要素を、互いの境界を共有することにより、連接して基本図形を設定するステップと、設定された基本図形を構成する基本図形要素を直接的に変形して、点要素を除き連続微分可能性を保持した所望の立体図形を生成するステップとから成る手順をコンピュータに実行させるためのプログラムを記録した３次元ＣＡＤシステムのためのコンピュータ読み取り可能な記録媒体が提供される。
【００１９】
〔作用〕
この発明によると、直線座標、面積座標又は体積座標パラメータでそれぞれ定義される線要素、面要素又は立体要素を基本図形要素（実施例では「要素図形」）として設定し、これらの基本図形要素を相互に連接して、複数の座標パラメータで連続的に定義される基本図形（実施例では「部品図形」又は「パーツ」）を設定し、設定された基本図形を変形して所望の立体図形を生成する。これにより、面要素は、従来のＣＡＤ方式における面処理方式に対比して、広い領域を一つのパッチ（最小の自由度で表現される面素）で表現することが可能になる。また、パッチが連続的に繋がった空間図形、即ち、連続微分可能な空間図形が定義され、しかも、このパッチで全ての面を近似表現するようにしているので、面の取扱いに一貫性をもたせることができる。従って、図形を記述するためのデータ量を大幅に低減し、コンピュータの演算処理の負荷を減少させることができる。
【００２０】
さらに、この発明によると、生成される立体図形が、座標パラメータの総３次形式で表現される空間座標をもつ点群で定義される場合は、演算数を必要以上に増大せずに、面端の接線を連続的に接合する関係を維持しつつ面を制御し、十分に実用的な３次元図形表現を得ることができる。
【００２１】
さらに、この発明によると、点要素は３次元座標データをもち、線要素は端点ポインタ及び中間制御点データをもち、面要素は外周線ポインタ及び面内制御点データをもち、立体要素は、外周面ポインタを表わすデータをもち、点要素、線要素及び面要素は、リファレンス計数データをもたせている。従って、或る要素を削除しようとする場合、レファレンス計数データを参照して当該要素が他の要素の構成要因になっているか否かを確認し、削除の可否を有効に判別することができる。
【００２２】
【発明の実施の形態】
以下、図面を参照しつつ、この発明の好適な実施例を詳述する。なお、以下の実施例は単なる一例であって、この発明の精神を逸脱しない範囲で種々の変更が可能である。
【００２３】
〔形状モデルデータの構造〕
この発明の一実施例による３次元ＣＡＤシステムにおいて、形状モデルデータは、図４に示すように、ベースクラスを頂点とするクラス階層を持つオブジェクト群であり、ベースクラスから派生するオブジェクト群を大きく分類すると、所謂形状を持つ図形を表わす図形データ〔これらの集合体である部品図形（パーツ）も含む〕、及び、形状を持たない属性データの二種類に分けられ、さらに、ＮＣ加工に用いるカッターパスも形状モデルデータの一種として含めて、三種類とすることができる。また、図形データは、形状モデルを構成している本来の形状図形データ、及び、それらに付随する補助図形データ（寸法線など）に分けられる。
【００２４】
先ず、形状図形データは、点要素ＰＥ、線（曲線）要素ＬＥ、面要素ＳＥ及び立体要素ＶＥといった要素図形（基本トポロジー）から成り、面要素ＳＥは、例えば、三角面要素（三角パッチ）ＳＥｔ及び四角面要素（四角パッチ）ＳＥｑに分けられ、立体要素ＶＥは、例えば、４つの三角面からなる四面体要素ＶＥｑ、２つの三角面と３つの四角面からなる五面体要素ＶＥｐ、及び、６つの四角面からなる六面体要素ＶＥｈに分けられる。これらの基本図形要素群は、それ単独でモデル形状を表現するのではなく、これらが集合し合成された部品図形（以下「パーツ」も呼ぶ。）により形状モデルが構成されており、これら基本図形要素自体はパーツに含まれる一要素となっている。
【００２５】
パーツは、点、線など要素図形以外に、例えば、寸法線等の補助図形やグループ選択情報など形状以外のデータもその中に含めて持つことができる。さらに、他のパーツもその中に含むことができる。つまり、パーツは、再帰的な階層構造を作ることができ、形状モデル全体は、このパーツの階層構造によって表現される。
【００２６】
また、補助図形データには、例えば、寸法線、寸法線に付随する引出し線（寸法線用引出線、Ｒ線用引出線等）、面の法線ガイドなどがあり、属性データには、図形ではないが図形を表現し管理するために必要な座標系や図形グループ選択情報などがある。
【００２７】
以上述べた形状モデルデータの派生オブジェクトに対して、ベースクラスには、派生オブジェクトの全てに共通する基本属性データが格納されている。このベースクラスのクラス定義には、例えば、オブジェクトのデータ型（所属クラス）を識別する「データタイプ」、自身へのポインタ、親座標系情報（親座標系ポインタ、親座標系Ｉ／ＯシーケンスＮｏ）、自身の図形がある相対位置関係を持って乗っかっているという関係にあることを表わすための親図形（親亀）情報（親図形ポインタ、親図形データタイプ、親図形Ｉ／ＯシーケンスＮｏ）、表示や編集操作を制御するためのフラグ類を含む各種状態情報〔選択属性、表示モード（表示／非表示）、移動可否、実体／コピー、表示・非表示（フラグ）、依存親数（リファレンス計数値）、穴となる図形か否か（穴となる図形は、レンダリング過程で内部の或る範囲を色染めしない）を判別するための正データ／負データ判別フラグ〕、外部ファイルＩ／Ｏ用情報（Ｉ／ＯシーケンスＮｏ）などの基本属性データがある。
【００２８】
なお、「依存親数（リファレンス計数値）」は、他のモデルデータからの参照数を示すもので、この値が０ならば、他のどのオブジェクトからも参照されていない単独オブジェクトであることを意味する。また、複数から参照されることもあるので、この値は２以上になることもある。このカウンタは、他のオブジェクトから参照される。つまり、例えば、図形の合成（親子関係の成立）により、そのオブジェクトのポインタが、参照する側のポインタ変数に代入される度に１だけカウントアップされる。また、例えば、図形の分割（親子関係の解消）により、参照が切れる（つまり、参照されなくなるか、それ以外のオブジェクトへの参照に変更される）とき１だけカウントダウンされる。
【００２９】
〔部品図形（パーツ）〕
前述したように、形状モデルはパーツの組み合わせとして表現され、これらパーツは再帰的な階層構造を成すことによって、比較的簡単な部分形状から複雑な全体形状へとモデルを階層的に構成することができる。また、パーツ自身は、後で詳述する点要素や線（曲線）要素、面要素および立体要素の要素図形（基本トポロジー）の組合せとして表現される。パーツの属性には、例えば、親パーツ情報（親となるパーツのポインタ及びＩ／ＯシーケンスＮｏ．）、パーツローカル座標系（パーツローカル座標系、ローカル座標系Ｉ／ＯシーケンスＮｏ．）、パーツの構成情報（パーツ形状データブロック、パーツ名称）、表示制御フラグ（座標系表示フラグ、パーツ表示フラグ）などがある。
【００３０】
親パーツ情報は、これを辿ることによりパーツの再帰的な階層構造を表現している。それぞれのパーツは、また、ローカル座標系を持ち、そのパーツの親パーツのローカル座標系での位置、姿勢及びスケールを保持している。そして、パーツを構成する形状要素群は、下位のパーツ（子パーツ）も含めて、このパーツローカル座標系の中に配置されることになる。従って、パーツの階層は座標系の階層でもある。因みに、親を持たない最上位のパーツはワールド座標系に配置されていることになる。さらに、パーツは、人間に理解できる文字列形式の名称を持つことができ、これにより利用の便を図る。
【００３１】
パーツは、それを構成する全ての要素図形群、補助図形群及び下位パーツ群をリスト形式で保持しており、また、グループ選択情報など図形以外のデータ群についても同様の形式で保持している。パーツを構成しているモデルデータには、例えば、各要素図形単位の要素図形構成リスト〔点リスト、線（曲線）リスト、面（三角面、四角面など）リスト、立体（四面体、五面体、六面体など）リスト〕、下位パーツリスト、補助図形リスト（寸法線リスト、引出し綴リスト）、グループ選択リストなどがあり、レイヤーＮｏ．等とともに、それぞれの種別毎にリストとして格納される。
【００３２】
〔ローカル座標系〕
ローカル座標系は、ベースクラスの派生クラスで、属性にのみ注目すると、例えば、座標系変換マトリクス（親座標系相対）〔平行移動（ｘ，ｙ，ｚ）、回転（ｘ、ｙ、ｚ各軸周り回転角度）〕、軸（メッシュ）表示制御情報（各軸方向の目盛り幅、各軸と垂直方向の目盛り幅、各軸の長さ、各軸方向のメッシュ数、各軸と垂直方向のメッシュ数）、表示制御用データ（描画データ保持エリア、画面のちらつき防止用）、表示の際に使用する計算値（ワールド変換マトリクス）〔原点位置ベクトル、Ｘ軸（１，０，０）ベクトル、Ｙ軸（０，１，０）ベクトル、Ｚ軸（０，０，１）ベクトル〕などが定義される。
【００３３】
座標系の変換は、親座標系上での原点位置（平行移動）および各軸（Ｘ，Ｙ，Ｚ軸）周りの回転量で表現される。また、オブジェクトを画面に表示する場合、ローカル座標系Ｐｌ（ｘ，ｙ，ｚ）からワールド座標系Ｐｗ（Ｘ，Ｙ，Ｚ）への座標変換は、予め座標系の階層を反映して計算されたワールド変換マトリクスＴｗを使い、次式（５）により一気に行う：
Ｐｗ（Ｘ，Ｙ，Ｚ）  ＝    Ｐｌ（ｘ，ｙ，ｚ）×  Ｔｗ      …（５）
【００３４】
〔グループ選択情報〕
グループ選択情報は、パーツ内部のオブジェクトを何等かの理由でグループとして纏めるための情報であり、グループに属するオブジェクト群を集合として持つことができる。グループ選択情報のデータ構造は、例えば、対象データリストグループ名、選択図形Ｉ／ＯシーケンスＮｏ．リスト等から成る。グループに属すオブジェクト群は、メモリ上では、オブジェクトへのポインタのリストを持つことにより管理する。しかし、外部ファイルに格納された状態ではポインタ使用できないので、各オブジェクトのＩ／ＯシーケンスＮｏ．を文字列形式のリストとして保存し、読み込み時に、このシーケンスＮｏ．をオブジェクト群のポインタへ変換する。
【００３５】
〔座標パラメータと基本図形要素（要素図形）〕
この発明の一実施例による３次元ＣＡＤシステムにおいては、基本図形要素（基本トポロジー）となる要素図形として、大きく分類して、０次元要素である点要素ＰＥ、１次元要素である線（曲線）要素ＬＥ、三角面、四角面などの２次元要素である面（曲面）要素ＳＥ、及び、四面体、五面体、六面体などの３次元要素である立体要素ＶＥが設定される。これらの要素図形は、全てベースクラスの派生クラスとして定義され、それぞれ、ベースクラスの属性を引き継ぐと共に、各々独自の属性データを付加している。また、要素図形は面積座標パラメータα，β，γ，…で定義される。すなわち、より厳密にいうと、線要素ＬＥ、面要素ＳＥ又は立体要素ＶＥは、それぞれ、直線座標パラメータα１，β１、面積座標パラメータα２，β２，γ２（，δ２，…）、体積座標パラメータα３，β３，γ３，δ３，…で定義される。
【００３６】
〔１〕点要素ＰＥ
点要素ＰＥに付加されるデータで本質的なものは、ローカル座標系での３次元座標値、親図形での面積座標値、親図形からの相対オフセットであり、例えば、点要素ＰＥのデータ構造は、図形形状データ〔点の三次元座標値、親図形での面積座標パラメータ、オフセット長さ、オフセット（変形）〕や、表示用／編集用ワークエリア（描画データ保持エリア、画面のちらつき防止用）などである。
【００３７】
点要素ＰＥの親となる図形は、他の点要素ＰＥ、線要素ＬＥ及び面要素ＳＥの何れかであり、点要素ＰＥの三次元空間上での座標値Ｐ（ｘ，ｙ，ｚ）は、親図形を持たない最上位図形である場合、図５（１）に示すように、ベクトルＰｏで表わされ、親図形を持つ場合は、次式（６）により求めることができる：
Ｐ（ｘ，ｙ，ｚ）  ＝  Ｐｐ（α，β，…）＋Ｐｏ            …（６）
【００３８】
ここで、Ｐｐ（α，β，…）は、親図形での点の面積座標パラメータ（α，β，…）から計算された三次元空間座標である。つまり、親図形上で面積座標値（α，β，…）を移動させると、図５（２）に示すように、オフセットＰｏをもって点要素ＰＥが親図形Ｐに沿って移動することを意味している。なお、特殊なケースとして親図形が他の点要素ＰＥである場合は、Ｐｐ（α，β，…）＝親の座標（ｘ，ｙ，ｚ）として扱う。
【００３９】
〔２〕線要素ＬＥ
線（曲線）要素ＬＥの場合、その形状を表現するデータは、線の２端点、端点での接線ベクトルに応じた制御ベクトル〔線制御ベクトル、（中間）制御点ベクトルともいう〕、制御点のオフセットベクトルであり、これらのデータを用い、面積座標（α、β）をパラメータとする所与の総ｎ次式（例えば、３次式）で曲線の形状を表現する。ここで、線には直線と曲線の区別はなく、直線は曲線の特別なケースと見なす。また、以下、線要素ＬＥについて、面積座標パラメータα，βとして特に記号α１，β１を用いて説明する。
【００４０】
図６（１）に示すように、長さ値が「１」の直線ＡＢを２つの線分ＡＬ，ＬＢに区分し、各の線分ＬＢ，ＬＡの長さα１，β１を表わす直線座標値を面積座標パラメータ（厳密にいえば、直線座標パラメータ）とし、実空間（ｘ，ｙ，ｚ）に写像される線要素ＬＥ上の位置ベクトルＰを次式（７）で表現する：
Ｐ  ＝  Ｐ（α１，β１）                                  …（７）
ただし、条件より、常に、次式（８）の関係が成り立つ：
１−（α１＋β１）  ＝  ０                                …（８）
従って、式（８）から、一方のパラメータ（例えば、α１）の値が決まれば、残りのパラメータ（例えば、β１）の値は定まる（α１＝１−β１，β１＝１−α１）。
【００４１】
なお、これに一般的に説明を加えると、長さ値が「１」の直線ＡＢに対して点Ｌｏを想定して、直線ＡＢを底辺とする三角形△ＬｏＡＢの面積Ｓａｂ及び形状計数ｋ１を導入し、次式（９）で表わされる直線座標パラメータ値α１，β１を考慮する：
１−（α１＋β１）  ＝  ｋ１・Ｓａｂ                      …（９）
ここで、点Ｌｏを直線ＡＢへの垂線に沿って直線ＡＢに近づけて行き点Ｌに至らせた場合、直線ＡＢを底辺とする三角形△ＬＡＢの面積Ｓａｂ＝０となり、式（９）から式（８）が得られる。
【００４２】
面積座標（α１、β１）は、
α１  ＋  β１  ＝  １                                  …（１０）
という関係を満たすものとしている。これは、単純に言うと、線（曲線）要素ＬＥ上の点Ｐが端点ＰＡ，ＰＢに対してどこの位置あるかについて、面積座標パラメータ空間上で考えて、それぞれの端点からの距離比を表現すると解釈することができる。ただし、点Ｐが線分（弧）の外にある場合は、何れかが負の値になる。また、面積座標（α１，β１）から三次元空間座標Ｐ（ｘ，ｙ，ｚ）への写像は、例えば、面積座標パラメータ（α１，β１）について対称な総三次式により計算する。
【００４３】
面積パラメータ空間（α１，β１）に対応して実空間（ｘ，ｙ，ｚ）に写像される線要素ＬＥ上の位置ベクトルＰは、これら２つの面積座標パラメータα１，β１を利用して、面要素ＳＥ上の点Ｐの３次元相対位置座標値で表わされ、総３次表現形式にて記述される場合は、次式（１１）で表わされる：
0003829972.tif 000003
ここで、係数ベクトルＡ10〜Ａ13は、２つ（端点ＰＡ，ＰＢ）の端点ベクトル及び２つ（端点ＰＡ，ＰＢ）における（線）制御ベクトル（中間制御点ベクトル）Ｔab，Ｔbaの計４個の制御変数から算出される。係数ベクトルＡ10，Ａ11は、Ａ10＝端点ＰＡの実空間座標値、Ａ11＝端点ＰＢの実空間座標値とし、Ａ12，Ａ13については、例えば、Ａ12＝３×（Ａ10＋Ｔab）、Ａ13＝３×（Ａ11＋Ｔba）とするのがよい。
【００４４】
このように係数ベクトルＡ10〜Ａ13を設定した場合、図６（１）において、線要素ＰＥ上におけるパラメータ値α１＝２／３，β１＝１／３の点Ｐａｂ、及び、α１＝１／３，β２＝２／３の点Ｐｂａは、それぞれ、制御ベクトルＴab，Ｔbaに対応する。制御ベクトルＴab，Ｔbaは、この設定例の場合、端点ＰＡ，ＰＢでの線要素ＬＥの接線ベクトルＴβａ，Ｔαｂの１／３倍とされる。ここで、接線ベクトルＴβａは、α１＝１，β１＝０のときのｄＰ／ｄβ１であり、接線ベクトルＴαｂは、α１＝０，β１＝１のときのｄＰ／ｄα１である。
【００４５】
なお、真に直線の場合は、
Ｔab  ＝  （ Ａ11 − Ａ10 ）／ ３
Ｔba  ＝  （ Ａ10 − Ａ11 ）／ ３
であるので、
Ａ12  ＝  ２．０×Ａ10 ＋ Ａ11
Ａ13  ＝  Ａ10 ＋ ２．０×Ａ11
となり、これを上記した写像式（１１）に直接当てはめると、
Ｐ（ｘ，ｙ，ｚ）  ＝  Ａ10 α１  ＋  Ａ11 （１−α１）
または
Ｐ（ｘ，ｙ，ｚ）  ＝  Ａ10 （１−β１） ＋  Ａ11 β１
となり通常の直線表現が得られる。
【００４６】
この写像をもう少し詳しく説明すると、（α１，β１）＝（１，０）のときＰ（ｘ，ｙ，ｚ）＝Ａ10となり、（α１，β１）＝（０，１）のときＰ（ｘ，ｙ，ｚ）＝Ａ11となるので、線要素ＬＥは、それぞれ係数ベクトルＡ10，Ａ11で表わされる端点ＰＡ，ＰＢを通ることが分かる。また、写像式（１１）をパラメータβ１で微分すると、点ＰＡから点ＰＢに向かう線要素ＬＥ上の接線ベクトルＴβ＝ｄＰ／ｄβ１について、次式(１２）が得られる：
0003829972.tif 000004
【００４７】
端点ＰＡでの線要素ＬＥの接線ベクトルＴβａは、上式（１２）で、（α１，β１）＝（１，０）とすることにより、
Ｔβａ  ＝  ３× Ｔab
が導かれる。また、端点ＰＢでの線要素ＬＥの接線ベクトルＴαｂについては、同様にして、点ＰＢから点ＰＡに向かう線要素ＬＥ上の接線ベクトルＴα＝ｄＰ／ｄα１において（α１，β１）＝（０，１）とすると、
Ｔαｂ  ＝  ３× Ｔba
が得られる。従って、ベクトルＴβａ，Ｔαｂは、制御ベクトルＴab，Ｔbaの３倍となる。
【００４８】
つまり、端点ＰＡでの接線連続性を保ちつつ線要素ＬＥを変形する場合には、端点ＰＢでの端点ベクトルＡ11及び制御ベクトルＴbaを任意に変化することができ、端点ＰＢでの接線連続性を保ちつつ線要素ＬＥを変形する場合には、端点ＰＡでの端点ベクトルＡ10及び制御ベクトルＴabを任意に変化することができる。なお、端点ＰＡ又は端点ＰＢにおける曲率ベクトルは、それぞれ、曲率ベクトルｄＰ2／ｄβ１2又はｄＰ2／ｄα１2の式に（α１，β１）＝（１，０）又は（０，１）を代入することにより得られるが、端点ＰＡ又は端点ＰＢで曲率連続までも保持しつつ線要素ＬＥを変形する場合には、端点ＰＢの端点ベクトルＡ11のみ又は端点ＰＡの端点ベクトルＡ10のみしか変化することができない。
【００４９】
また、線要素ＬＥのデータ構造は、上述した図形形状データ〔線の２端点、直線化フラグ、制御点ベクトル、制御点オフセット（変形）〕の外、例えば、計量計算用分割数、制御ベクトル選択フラグ、表示／編集用のワークエリア（描画データ保持エリア、画面のちらつき防止用）、端点Ｉ／ＯシーケンスＮｏ．等を備える。
【００５０】
図６（２）は、直線を表わす２つの線要素ＬＥ１，ＬＥ２を共通の端点ＰＢで接線連続にして連続化する場合のイメージを示している。つまり、２つの線要素ＬＥ１，ＬＥ２を接線連続にするには、端点ＰＢにおける制御ベクトルＴba，Ｔbcを相互に逆向きにすればよい。また、曲率まで連続させるには、制御ベクトルＴba，Ｔbcの長さ｜Ｔba｜，｜Ｔbc｜を同じにすればよい。
【００５１】
〔２〕面要素ＳＥ
次に、面要素ＳＥにおいては、面の境界となる線（曲線）（境界線、外周線、周囲線ともいう）、内部制御点ベクトル（面内制御ベクトル）、制御点オフセット（変形）の３データで形状を表現し、これらの属性値から決定される係数ベクトルを用い面積座標（α，β，γ，…）をパラメータとする所与の総ｎ次式（例えば、３次式）で曲面の形状を表現する。
【００５２】
面要素ＳＥのデータ構造は、具体的には、三角面や四角面などの各面要素毎に、以下三角面要素（三角パッチ）ＳＥｔや四角面要素（四角パッチ）ＳＥｑの項で詳しく説明する図形形状データ〔面のｎ頂点（ｎ＝３，４，…）、面のｎ境界線（曲線）、内部制御点ベクトル〕の外、例えば、計量計算用分割数、制御点オフセット（変形）、内部制御点選択フラグ、色パレットＮｏ．、マイナスパッチ用（穴表示）データ（ｚバッファー手前／奥距離等）、表示／編集用のワークエリア（描画データ保持エリア、画面のちらつき防止用）、頂点及び境界線Ｉ／ＯシーケンスＮｏ．等を備える。ここで、面要素ＳＥのｎ個の頂点もデータとして持つようにしているが、これらは、面要素ＳＥの境界線の端点を表わすデータである。これらの頂点データは、境界線の繋がり状態を考慮して境界線の端点を配置したものであり、各々どれか２本の境界線の端点且つ交差点となっている。
【００５３】
なお、面要素ＳＥについては、任意の多角形（ｎ角形）面積座標パラメータα，β，γ，…を用いることができるが、特に、前掲した三角面要素ＳＥｔ及び四角面要素ＳＥｑは利便性が高い。以下、各面要素ＳＥについて、面積座標パラメータα，β，γ，…として特に記号α２，β２，γ２，…を用いて説明する。
【００５４】
（Ａ）三角面要素（三角パッチ）ＳＥｔ：三角面要素ＳＥｔにおいては、その形状を表現しているデータは、面の境界となる３つの線（曲線）、内部制御点ベクトル、制御点オフセット（変形）の３つであり、これらの属性値から決定される係数ベクトルを用いて、面積座標（α２，β２，γ２）をパラメータとして、例えば、所与の総３次式で三角曲面の形状を表現する。
【００５５】
三角形（ｎ＝３）面積座標パラメータを用いる場合には、図７に示すように、面積の値が「１」の正三角形△ＡＢＣに対してポイントＳを定め、３つの小三角形△ＳＡＢ，△ＳＢＣ，△ＳＣＡに区分し、各小三角形△ＳＡＢ，△ＳＢＣ，△ＳＣＡの面積Ｓａｂ，Ｓｂｃ，Ｓｃａを
Ｓａｂ  ＝  １ − （α２＋β２）                        …（１３）
Ｓｂｃ  ＝  １ − （β２＋γ２）                        …（１４）
Ｓｃａ  ＝  １ − （γ２＋α２）                        …（１５）
とすると、値α２，β２，γ２は面積Ｓｂｃ，Ｓｃａ，Ｓａｂを間接的に表わす面積座標値である。この面積座標値α２，β２，γ２をポイントＳについての三角形面積座標パラメータとし、実空間（ｘ，ｙ，ｚ）に写像される面要素ＳＥ上の位置ベクトルＰを次式（１６）で表現する：
Ｐ  ＝  Ｐ（α２，β２，γ２）                          …（１６）
ただし、条件より、常に、次式（１７）の関係が成り立つ：
１−（α２＋β２＋γ２）  ＝  ０                        …（１７）
【００５６】
極端な例を挙げると、ポイントＳを頂点Ａ上においた場合、各三角形面積座標パラメータの値は、α２＝１，β２＝γ２＝０となり、頂点Ｂ上においた場合は、α２＝０，β２＝１，γ２＝０となり、頂点Ｃ上においた場合は、α２＝β２＝０，γ２＝１となる。従って、式（１７）から、２つの三角形面積パラメータ（例えば、α２，β２）の値が決まれば、残りの三角形面積パラメータ（例えば、γ２）の値は定まる。
【００５７】
このように、三角面を表わすための面積座標（α２，β２，γ２）には、
α２ ＋ β２ ＋ γ２  ＝  １                            …（１８）
という関係があり、３つの頂点ＰＡ，ＰＢ，ＰＣは、面積座標（α２，β２，γ２）＝（１，０，０），（０，１，０），（０，０，１）に対応する。また、単純に表現すれば、三角面要素ＳＥｔは、各頂点ＰＡ，ＰＢ，ＰＣ間に３つの境界線Ｌａｂ，Ｌｂｃ，Ｌｃａを持ち、後述するように、形状を制御するために面内制御ベクトル（内部制御点ベクトル）Ｖｓを付加したものであるということができる。
【００５８】
面積座標（α２，β２，γ２）は、面が本質的に二次元である故、実は２つの独立なパラメータ（ｐ，ｑ）から計算できる筈なので、これらの関係は、
α２  ＝  １ − β２ − γ２
β２  ＝  ｐ
γ２  ＝  ｑ
で定義することができる。この定義によると、任意の点（ｐ，ｑ）に対してα＋β＋γ＝１の関係が成立することから、座標（α２，β２，γ２）は何らかの３つの量の比を表わしていると考えられる。実際、図７のように、或る三角形△ＡＢＣについて、その内点Ｓ（ｐ，ｑ）で分割したときの３つの三角形の面積比を表わしている。また、このように面積座標（α２，β２，γ２）が決まると、パラメータ（ｐ，ｑ）に対応する点の三次元空間での座標Ｐ（ｘ，ｙ，ｚ）は、例えば、次に説明するような面積座標（α２，β２，γ２）の総三次式により計算される。
【００５９】
図７に示すように、三角形面積パラメータ空間（α２，β２，γ２）に対応して実空間（ｘ，ｙ，ｚ）に写像される面要素ＳＥ上の位置ベクトルＰは、これら３つの面積座標パラメータα２，β２，γ２を利用して、例えば、総３次表現形式で記述される場合は、面要素ＳＥ上の点Ｐの３次元位置座標値として、次式（１９）で表わされる：
0003829972.tif 000005
【００６０】
ここで、係数ベクトルＡ20〜29は、３つ（頂点＝境界線の交差点ＰＡ，ＰＢ，ＰＣ）の頂点ベクトル、６つ（各頂点間線分＝境界線の両端）の端点における線制御ベクトル（中間点制御ベクトル）Ｔab，Ｔba，Ｔbc，Ｔcb，Ｔca，Ｔac、及び、１つの面内制御ベクトル（内部制御点ベクトル）Ｖｓの計１０個の制御変数から算出される。つまり、Ａ20〜Ａ22＝頂点ＰＡ〜ＰＣの実空間座標値、Ａ23＝３×（Ａ20＋Ｔab）、Ａ24＝３×（Ａ21＋Ｔba）、Ａ25＝３×（Ａ21＋Ｔbc）、Ａ26＝３×（Ａ22＋Ｔcb）、Ａ27＝３×（Ａ22＋Ｔca）、Ａ28＝３×（Ａ20＋Ｔac）、Ａ29＝２×（Ａ20＋Ａ21＋Ａ22＋Ｔab＋Ｔba＋Ｔbc＋Ｔcb＋Ｔca＋Ｔac＋３×Ｖｓ）である。なお、この計算式はモデル座標系上のものであり、ローカル座標系で計算するときは、頂点ベクトルＡ20〜Ａ22及び制御ベクトルＴab，Ｔba；Ｔbc，Ｔcb；Ｔca，Ｔac；Ｖｓをそれぞれローカル座標系に変換せねばならない。
【００６１】
上述の変換式（１９）は、三角面要素ＳＥｔの境界線上では線（曲線）要素ＬＥの写像式（１１）に一致しなければならないが、実際、境界線Ｌａｂについては、
α２  ＋  β２  ＝  １    および    γ２  ＝  ０
が成立するので、これを式（１９）に代入すると、式（１１）が導かれる。同様に、他の境界線Ｌｂｃ，Ｌｃａについてもサイクリックに変数を置換すると、同じ変換が成立していることが解る。つまり、この写像式（１９）は、三角面要素ＳＥｔの境界線Ｌａｂ〜Ｌｃａを含む曲面を表現している。なお、式（１９）において面積座標パラメータ（α２，β２，γ２）を夫々（１，０，０）、（０，１，０）、（０，０，１）とすれば、頂点ベクトルＡ20〜Ａ22で表わされる頂点ＰＡ，ＰＢ，ＰＣを三角面が通過することは、容易に理解することができる。
【００６２】
図７において、頂点ＰＡ，ＰＢ間の境界線Ｌａｂ上におけるパラメータ値α２＝２／３，β２＝１／３，γ２＝０の中間点Ｐａｂ、及び、α２＝１／３，β２＝２／３，γ２＝０の中間点Ｐｂａは、それぞれ、制御ベクトルＴab，Ｔbaに対応する点であり、他の境界線Ｌｂｃ，Ｌｃａの中間点Ｐｂｃ，Ｐｃｂ；Ｐｃａ，Ｐａｃについても、同様である。また、面内制御ベクトルＶｓは、図７に“×”印で示すα２＝１／３，β２＝１／３，γ２＝１／３の点Ｓｏを写像した面内制御点に対応し、三角面要素ＳＥｔの重心付近での膨らみ／凹みを制御するものである。
【００６３】
式（１９）において、（α２，β２，γ２）＝（１／３，１／３，１／３）とすると、
Ｐ（ｘ，ｙ，ｚ）  ＝  （１／３）（ Ａ20 ＋ Ａ21 ＋ Ａ22 ）
＋ （５／２７）（ Ｔab ＋ Ｔba ＋ Ｔbc ＋ Ｔcb ＋ Ｔca ＋ Ｔac ）
＋（２／９）Ｖｓ                                       …（２０）
となり、平面からのずれが境界線と内部制御点ベクトルＶｓにどのように影響されているかを推察することができる。ここで、例えば、境界線Ｌａｂが直線であるとすれば、
Ｔab  ＝  （ Ａ21 − Ａ20 ）／３
Ｔba  ＝  （ Ａ20 − Ａ21 ）／３
となり、
Ｔab ＋ Ｔba  ＝  ０
となる。同様に、他の境界線Ｌｂｃ，Ｌｃａも直線であるとすれば、
0003829972.tif 000006
となるので、真の平面からのずれは２／９Ｖｓとなることが解る。つまり、内部制御点ベクトルＶｓがＶｓ＝０のときは、面は平面を表わし、この意味で内部制御点ベクトルＶｓは重心付近の脹らみと凹みを制御するものである。なお、内部制御点ベクトルＶｓの基準値（デフォルト値）としてＶｓ＝０を用意しておくことができる。
【００６４】
〔Ｂ〕四角面（四角パッチ）要素ＳＥｑ：四角面要素ＳＥｑにおいて、その形状を表現しているデータは、面の境界となる４つの線（曲線）、４つの内部制御点ベクトル、制御点オフセット（変形）である。これらの属性値から決定される係数ベクトルを用いて、面積座標（α２，β２，γ２，δ２）をパラメータとして、例えば、所与の総３次式で四角曲面の形状を表現する。
【００６５】
四角形（ｎ＝４）面積座標パラメータを用いる場合には、例えば、図８に示すように、各辺の長さが「１」つまり面積が「１」の正四角形ＡＢＣＤに対してポイントＳを定め、各辺に対応する４つの三角形△Ｓａｂ，Ｓｂｃ，Ｓｃｄ，Ｓｄａに区分し、各三角形の面積を次式（２２）〜（２５）のように書き表わす：
Ｓａｂ  ＝  （１／２）｛１−（α２＋β２）｝            …（２２）
Ｓｂｃ  ＝  （１／２）｛１−（β２＋γ２）｝            …（２３）
Ｓｃｄ  ＝  （１／２）｛１−（γ２＋δ２）｝            …（２４）
Ｓｄａ  ＝  （１／２）｛１−（δ２＋α２）｝            …（２５）
ポイントＳについて、このような面積座標パラメータα２，β２，γ２，δ２によって、実空間（ｘ，ｙ，ｚ）に写像される面要素ＳＥを定義し、立体図形の１曲面要素（曲面四角パッチ）として取り扱うことが可能である。
【００６６】
なお、四角形面積座標パラメータα２，β２，γ２，δ２にも次式（２６）に示す関係がある：
１−（α２＋β２＋γ２＋δ２）＝  ０                    …（２６）
また、２つの四角形面積パラメータ（例えば、α２，β２）の値が決まれば、４つの三角形の頂点Ｓの位置が決まることから、残りの四角形面積パラメータ（例えば、γ２，δ２）の値は定まる。さらに、三角形の三つの面積座標（α２，β２，γ２）を四つの面積座標系（α２，β２，γ２，δ２）に線形変換することにより、同じ面要素を四角形面積座標系（α２，β２，γ２，δ２）で表現することができる。
【００６７】
三角面要素ＳＥｔの場合と同様に、四角形面積座標（α２，β２，γ２，δ２）は、面が本質的に二次元である故、実は２つの独立なパラメータ（ｐ，ｑ）でから計算できる筈なので、図９に示すように、これらの関係は、
α２  ＝  １ − ｐ− ｑ ＋ γ２
β２  ＝  ｐ − γ２
γ２  ＝  ｐ × ｑ
δ２  ＝  ｑ − γ２
で定義することができる。この定義によると、任意の（ｐ，ｑ）に対してα２＋β２＋γ２＋δ２＝１の関係が成立することから、三角面要素ＳＥｔについて述べたように、座標（α２，β２，γ２，δ２）は何らか四つの量の比を表していると考えられるが、実際、図８のように、単位長さの正方形ＡＢＣＤを面上の２次元直行座標（ｐ，ｑ）で分割したときの分割面それぞれの面積（又は面積比）に対応していることが解かる。また、四角形面積座標（α２，β２，γ２，δ２）から三次元空間座標Ｐ（ｘ，ｙ，ｚ）への写像は、例えば、面積座標（α２，β２，γ２，δ２）について対称な総３次式を用いて行う。
【００６８】
図８に示すように、四角形面積座標パラメータに対応して実空間（ｘ，ｙ，ｚ）に写像される面要素ＳＥ上の位置ベクトルＰは、前述した直線（曲線）や三角面要素ＳＥｔの式（１１），（１９）と同様に、総３次形式で次式（２７）のように表現することができ、面の複雑さにおいては、ＮＵＲＢＳ曲面のｎ×ｍ＝４×４制御点で定義される面に対応する：
0003829972.tif 000007
【００６９】
ここで、係数ベクトルＡ50〜Ａ55は、４つ（頂点＝境界線の交差点ＰＡ，ＰＢ，ＰＣ，ＰＤ）の頂点ベクトル、８つ（各頂点間線分＝境界線の両端）の線制御ベクトルＴab，Ｔba，Ｔbc，Ｔcb，Ｔcd，Ｔdc，Ｔda，Ｔad、及び、４つの面内制御ベクトルＶsa，Ｖsb，Ｖsc，Ｖsdの計１６個の制御変数から算出される。つまり、Ａ40〜Ａ43＝頂点ＰＡ〜ＰＤの実空間座標値、Ａ44＝３×（Ａ40＋Ｔab）、Ａ45＝３×（Ａ41＋Ｔba）、Ａ46＝３×（Ａ41＋Ｔbc）、Ａ47＝３×（Ａ42＋Ｔcb）、Ａ48＝３×（Ａ42＋Ｔcd）、Ａ49＝３×（Ａ43＋Ｔdc）、Ａ50＝３×（Ａ43＋Ｔda）、Ａ51＝３×（Ａ40＋Ｔad）、Ａ52＝９×（Ａ40＋Ｔab＋Ｔad＋Ｖsa）、Ａ53＝９×（Ａ41＋Ｔbc＋Ｔba＋Ｖsb）、Ａ54＝９×（Ａ42＋Ｔcd＋Ｔcb＋Ｖsc）、Ａ55＝９×（Ａ43＋Ｔda＋Ｔdc＋Ｖsd）である。なお、この計算式もモデル座標系上のものであり、ローカル座標系で計算するときは、頂点ベクトルＡ40〜Ａ43及び制御ベクトルＴab，Ｔba；Ｔbc，Ｔcb；Ｔcd，Ｔdc；Ｔda，Ｔad；Ｖsa，Ｖsb，Ｖsc，Ｖsdをそれぞれローカル座標系に変換せねばならない。
【００７０】
この変換式（２７）も各々の境界線については、連続性の点から線分の変換式（１１）に一致しなければならないが、例えば、境界線Ｌａｂ上では、
α２ ＋ β２  ＝  １  および  γ２ ＝ δ２ ＝ ０
が成立するので、これを式（２７）に代入すると、実際、式（１１）が導かれる。同様に、他の境界線Ｌｂｃ〜Ｌｄａについてもサイクリックに変数を置換すると、同じ変換が成立していることが解る。つまり、この写像式は、四角面要素ＳＥｑの境界線Ｌａｂ〜Ｌｄａを含む曲面を表現している。なお、式（２７）において（α２，β２，γ２，δ２）を（１，０，０，０）、（０，１，０，０）、（０，０，１，０）、（０，０，０，１）とすれば、それぞれ、頂点ベクトルＡ40〜Ａ43が得られることから、四角面が頂点ＰＡ〜ＰＤを通過することは容易に解る。
【００７１】
なお、線制御ベクトルＴab，Ｔba，Ｔbc，Ｔcb，Ｔcd，Ｔdc，Ｔda，Ｔadについては三角面要素ＳＥｔで説明したものと同様である。面内制御ベクトルＶsa，Ｖsb，Ｖsc，Ｖsdは、図８に“×”印で示す四角形面積座標パラメータ（α２，β２，γ２，δ２）が、それぞれ、（４／９，２／９，１／９，２／９）〔ｐ＝１／３，ｑ＝１／３）、（２／９，４／９，２／９，１／９）〔ｐ＝２／３，ｑ＝１／３）、（１／９，２／９，４／９，２／９）〔ｐ＝２／３，ｑ＝２／３）、（２／９，１／９，２／９，４／９）〔ｐ＝２／３，ｑ＝１／３）の点を写像した面内制御点に対応し、主として、これらの制御点近傍の膨らみ／凹みを制御するものである。また、内部制御点ベクトルＶsa，Ｖsb，Ｖsc，Ｖsdの基準値（デフォルト値）としてＶsa＝Ｖsb＝Ｖsc＝Ｖsd＝０を用意しておくことができ、このデフォルト値を使用して定義される四角面要素ＳＥｑは、ツイストベクトルがゼロのクーンズパッチと同じ内容を表わしている。
【００７２】
図１０は、正方形の境界線Ｌａｂ〜Ｌｄａを接線連続にして円形状の図形を作るときの線制御ベクトルＴab，Ｔba，Ｔbc，Ｔcb，Ｔcd，Ｔdc，Ｔda，Ｔadの変化を示している。図１０において、図６（２）の線要素ＬＥの接線連続化で説明した場合と同じように、境界線Ｌａｂ〜Ｌｄａの端点ＰＡ〜ＰＤにおける制御ベクトルＴad，Ｔab；Ｔba，Ｔbc；Ｔcb，Ｔcd；Ｔdc，Ｔdaを、互いに接する境界線Ｌｄａ，Ｌａｂ；Ｌａｂ，Ｌｂｃ；Ｌｂｃ，Ｌｃｄ；Ｌｃｄ，Ｌｄａ；の間で方向を一致させ逆向きにすることにより、境界線Ｌａｂ〜Ｌｄａを正方形（ａ）から、端点ＰＡ〜ＰＤで接線が連続した円形状（ｂ）へと変形させている。
【００７３】
〔Ｃ〕ｎ角面要素：面要素ＳＥは、一般的に説明すると、図１１に示すように、面積値「１」の正ｎ角形ＡＢＣ…Ｎを用いるｎ角形面積座標パラメータによりｎ角形の面要素ＳＥを定義する場合、次式（２８），（２９）が成立し、ｎ個の面積座標パラメータの値は、２つの三角形の面積（例えば、Ｓａｂ，Ｓｎａ）の値が定まれば、他の全ての面座標パラメータの値は定まる：
Ｐ  ＝  Ｐ（α２，β２，γ２，…，ν２）                …（２８）
１−（α２＋β２＋γ２＋…＋ν２）＝  ０                …（２９）
なお、式（２９）は、次式（３０）〜（３２）の関係から導出される：
１−（α２＋β２）  ＝  ｋ２ Ｓａｂ
１−（β２＋γ２）  ＝  ｋ２ Ｓｂｃ
１−（γ２＋δ２）  ＝  ｋ２ Ｓｃｄ
……
１−（ν２＋α２）  ＝  ｋ２ Ｓｎａ
…（３０）
Ｓａｂ＋Ｓｂｃ＋Ｓｃｄ＋…＋Ｓｎａ  ＝  １              …（３１）
ｋ２  ＝  ｎ − ２                                      …（３２）
ただし、Ｓａｂ，Ｓｂｃ，Ｓｃｄ，…，Ｓｎａは、辺ＡＮ，ＢＣ，ＣＤ，…，ＮＡの上に立つ小三角形△ＳＡＢ，△ＳＢＣ，△ＳＣＤ，…，△ＳＮＡの面積であり、形状計数ｋ２は、例えば、三角形ＡＢＣ（ｎ＝３）の場合ｋ２＝１、四角形ＡＢＣＤ（ｎ＝４）の場合ｋ２＝２となるのである。
【００７４】
〔３〕立体要素ＶＥ
立体要素ＶＥについては、同様に、一般に、体積値「１」の正ｎ面体についてポイントＶを定め、ポイントＶを頂点とし各多角形表面を底面とする各多角錐の体積値Ｖａ，Ｖｂ，Ｖｃ，…，Ｖｎから多面体（ｎ面体）体積座標パラメータ値α３，β３，γ３，…，ν３が定まり、これにより立体要素ＶＥを定義することができる。この場合、次式（３３），（３４）が成立し、ｎ個の多面体体積座標パラメータ（例えば、α３，β３，γ３…，ν３）の値は定まる：
Ｐ  ＝  Ｐ（α３，β３，γ３，…，ν３）                …（３３）
１−（α３＋β３＋γ３＋…＋ν３）＝  ０                …（３４）
なお、式（３４）は、次式（３５）〜（３７）の関係から導出される：
１−（α３＋β３＋γ３＋…  ）  ＝  ｋ３・Ｖａ
１−（β３＋γ３＋…  ＋…  ）  ＝  ｋ３・Ｖｂ
１−（γ３＋…  ＋…  ＋…  ）  ＝  ｋ３・Ｖｃ
……
１−（…  ＋…  ＋ν３＋α３）  ＝  ｋ３・Ｖｎ
…（３５）
Ｖａ＋Ｖｂ＋Ｖｃ＋…＋Ｖｎ  ＝  １                      …（３６）
ｋ３  ＝  ｎ−３                                        …（３７）
【００７５】
ただし、Ｖａ，Ｖｂ，Ｖｃ，…，Ｖｎは、各多角形表面ＡＢ…，ＢＣ…，…の上に立つ角錐の体積であり、形状計数ｋ３は、例えば、正四面体（ｎ＝４）の場合はｋ３＝１となり、これに基づいて四面体要素ＶＥｑを定義することができ、また、図１２（１）のような正六面体ＡＢＣＤＥＦＧＨ（ｎ＝６）の場合にはｋ３＝３となり、これに基づいて六面体要素ＶＥｈを定義することができる。また、この多面体（ｎ面体）体積座標パラメータに対応して実空間（ｘ，ｙ，ｚ）に写像される立体要素ＶＥ内部の位置ベクトルＰ（α３，β３，γ３，…，ν３）は、式（１９），（２７）と同様に、例えば、総３次形式で表現することができる。また、四面体要素ＶＥｑや六面体要素ＶＥｈなどの境界線（稜線）は式（１１）に一致し、境界面は式（１９），（２７）に一致することが確かめらることができる。
【００７６】
例えば、六面体要素ＶＥｈについては、８つの六面体体積座標パラメータα３，β３，γ３，δ３，ε３，ζ３，η３，θ３は、図１２（２）のように、体積「１」の正六面体ＡＢＣＤＥＦＧＨを内点Ｖ（ｐ，ｑ，ｒ）で分割して（内点Ｖを通りｐ，ｑ，ｒ軸に平行な面で区切って）得られる８つの小直方体（端点Ａ〜Ｈとは、その対向に当たるものが順次対応する。例えば、パラメータα３は、端点Ａの対向に当たる斜線部の小直方体が対応する。）の体積を意味しており、
0003829972.tif 000008
の関係がある。そして、正六面体ＡＢＣＤＥＦＧＨの内部の点Ｖ（ｐ，ｑ，ｒ）対角について次式（３９）のような写像式が得られる：
【００７７】
0003829972.tif 000009
0003829972.tif 000010
【００７８】
ここで、係数ベクトルＡ60〜ＡC3は、六面体を構成する８つの頂点及び６つの境界面及び境界面に関する各データ（各頂点ベクトル、各線制御ベクトル、各面制御ベクトルや内部制御ベクトル等、計６４個の制御変数）から算出されるが、詳細は省略する。なお、仮に、ｒ＝０即ちε３＝ζ３＝η３＝θ３＝０としてみると、四面体要素ＳＥｑで述べた四角形面積座標ＡＢＣＤそのものとなり、これを写像式（３９）に当てはめると、四面体要素ＳＥｑの写像式（２７）の表現に一致する。他の境界面についても同様な方法でこれを確かめることができる。従って、写像式（３９）は六面体の境界面をその表現に含んでいる。
【００７９】
実用上は、立体要素ＶＥ内部の点は必要とされる場合が少ないので、四面体要素ＶＥｑ、五面体要素ＶＥｐ及び六面体要素ＶＥｈを面要素ＳＥで立体要素ＶＥの表面を表現する手法が簡便であり、これで十分に有用し得る。従って、以下に説明する実用的な立体要素ＶＥのデータ構造は、具体的には、四面体、五面体や六面体などの各立体要素毎に、図形形状データ〔頂点、境界線（曲線）、境界面〕の外、例えば、計量計算用分割数、制御点オフセット（変形）、表示／編集用のワークエリア（描画データ保持エリア、画面のちらつき防止用）、頂点、境界線及び境界面Ｉ／ＯシーケンスＮｏ．等を備える。ここで、面要素ＳＥのｎ個の頂点もデータとして持つようにしているが、これらは、面要素ＳＥの境界線の端点を表わすデータである。これらの頂点データは、境界線の繋がり状態を考慮して境界線の端点を配置したものであり、各々どれか２本の境界線の端点且つ交差点となっている。
【００８０】
〔Ａ〕四面体要素ＶＥｑ：四面体要素ＶＥｑは、三角面が４つ張り合わさった立体として表現されるもので、形状を表現するためのデータは、単純に、これら４つの境界面のデータである。形状表現データには、境界面を構成する面の頂点と境界線のデータも持っている。これらのデータは面の繋がりを配慮して配置している。
【００８１】
〔Ｂ〕五面体要素ＶＥｐ：五面体要素ＶＥｐは、上下２つの三角面と、これらの三角面に繋がる３つの四角面が張り合わさった立体として表現されるもので、形状を表現するためのデータとしては、合計５つのこれら境界面データを持っており、四面体要素ＶＥｑと同様、境界面を構成する面の頂点や境界線のデータも含まれる。
【００８２】
〔Ｃ〕六面体要素ＶＥｈ：六面体要素ＶＥｈは、上下２つの四角面と、これらの四角面に繋がる４つの四角面が張り合わさった立体として表現されるもので、形状を表現するためのデータとしては、合計６つのこれら境界面データを持っており、他の立体要素ＶＥｑ，ＶＥｐと同様、境界面を構成する面の頂点や境界線のデータも含まれる。
【００８３】
この発明の一実施例においては、以上説明した面積座標パラメータ（α，β，γ，…）に関する総ｎ次（特に、総３次）形式による線（曲線）及び面（曲面）の表現を利用し、親図形に子図形を相対的に記述して親図形上に子図形を定義する。この発明の総３次形式を利用した一実施例においては、これらの座標パラメータ（以下、記号α，β，…で統一的に表記する。）に対応して実空間（ｘ，ｙ，ｚ）に写像される各要素の位置ベクトルＰは、通常、式（１１），（１９），（２７）と同様に、座標パラメータα，β，…の３次結合“ααα”，“ααβ”，“αββ”，…の全てに夫々ベクトル係数Ａ１，Ａ２，Ａ３，…を掛けた総和を示す座標パラメータα，β，γ，…の総３次式で表現される。すなわち、線要素ＬＥ上及び面要素ＳＥ上の点Ｐの３次元座標値は、次式（４０）のような総３次表現式で表現され、立体要素ＶＥ内部の点Ｐの３次元座標値についても、同式で表現することができる：
0003829972.tif 000011
【００８４】
このような総３次表現式は、面端の接線を連続的に接合する関係を維持しつつ面を制御することができる最低次数の表現形式であり、総３次表現式を用いると、演算数を必要以上に増大せずに、十分に実用的な３次元図形表現を得ることができる。しかしながら、更に次数を増大した高次関数を利用して更に高い表現力をもたせることもできる。なお、接線連続条件を厳密に考えず表現力の自由度が低くくてもよい場合は、次式（４１）のように、総２次式で表現することもできる：
0003829972.tif 000012
【００８５】
この発明の３次元ＣＡＤシステムでは、このように、直線座標パラメータ、面積座標パラメータ等の座標パラメータを利用することによって、パラメータ平面内の任意の直線は、全て同じ表現形式の写像曲線に変換することができ、従来のＣＡＤ方式におけるベジェ３次及び６次曲線境界の共有というような制約から開放される。そして、これによって、多様な面同士の連続性に関する制御機能を持たせることが可能になる。
【００８６】
〔各要素図形のデータ構造〕
従来のＣＡＤシステムにおいては、境界を接する面や線が二重に定義される場合が多かったが、立体、面、線等が連続的に定義されるためには、境界を接する面、線、点等が二重定義されるようなことは、回避されなければならない。このための一つの解決策として、この発明の一実施例においては、点要素ＰＥ、線要素ＬＥ、面要素ＳＥ及び立体要素ＶＥを表現するデータ構造として図１３に示すように、ポインタＬＰ，ＳＰ，ＶＰを用いて階層的な結合関係を持たせる形式のデータ構造を採用している。
【００８７】
図１３において、点要素ＰＥを表わす点リストＰＬは、設定されている当該点要素の３次元座標値（ｘ，ｙ，ｚ）を表わす座標値データＰＣなどをもち、線要素ＬＥを表わす線リストＬＬは、当該線要素ＬＥの両端点を指示する端点ポインタＬＰ、当該線要素ＬＥの両端における接線ベクトルに対応した線制御ベクトルデータ（若しくは中間制御ポイントを相対座標で表わす中間制御点データ）ＬＶ（相対定義）などをもつ。また、面要素ＳＥを表わす面リストＳＬは、境界線として当該面要素ＳＥを構成する線要素を指示する周囲線ポインタＳＰ、当該面要素の面内制御ベクトル（若しくは面内制御ポイントを相対座標で表示する面内制御点データ）ＳＶ（相対定義）などをもち、立体要素ＶＥを表わす立体リストＶＬは、境界面として当該立体要素ＶＥを構成する面要素を指示する外周面ポインタＶＰなどをもつ。そして、点リストＰＬ、線リストＬＬ及び面リストＳＬリストには、レファレンスカウンタＲＣが設けられ、このリファレンスカウンタＲＣには、いくつの要素から参照されているかというレファレンス計数データ（参照親数）が記録されるようになっている。
【００８８】
このような結合関係を持つたデータ構造を採用すると、各要素ＶＥ，ＳＥ，ＬＥを削除する場合に、削除しようとする要素が、他の要素の構成要因になっていないことを確認した上、関連する面要素ＳＥ，線要素ＬＥ、点要素ＰＥのデータを削除することになる。この発明の一実施例では、点リストＰＬ、線リストＬＬ及び面リストＳＬリストにはレファレンスカウンタＲＣが設けられているので、このような場合、例えば、或る要素のレファレンス計数データが計数値“０”を示すと当該要素を削除するといように、削除の可否を有効に判別することができる。
【００８９】
〔システムの概要〕
図１４は、この発明による３次元ＣＡＤシステムのハードウエア構成例を示すブロック図である。この例では、システムは、ＣＰＵ（中央処理装置）１、記憶装置２、キーボードやマウス等の入力操作装置３、ディスプレイ等の表示装置４を備え、これらの装置１〜４は、バス５を介して互いに接続されている。システム全体を制御するＣＰＵ１は、所定のプログラムに従って種々の制御を行い、特に、この発明による３次元図形処理を中枢的に遂行する。記憶装置２は、基本プログラム、各種図形処理プログラムや固定データ／パラメータを記憶したＲＯＭ（読出専用メモリ）、各種データ等を一時記憶するＲＡＭ（ランダムアクセスメモリ）の外、ハードディスクドライブ（ＨＤＤ）やＣＤ−ＲＯＭドライブ／ＦＤ（フロッピィディスク）ドライブ等の外部記憶装置から成り、これらの外部記憶装置には、各種図形処理プログラムや各種図形データ／パラメータが記憶されている。
【００９０】
また、入力操作装置３は、ディスプレイ４に表示される各種画面を視認しつつ操作することにより、３次元図形処理を遂行することができる。この例では、バス５にインターフェイス６を介してプリンタ７やプロッタ８等の出力装置が接続され、例えば、プロッタ８により３次元図形を作図することができる。
【００９１】
〔図形生成の概要〕
図１５は、この発明による３次元ＣＡＤシステムにおいて実行される立体図形の作成処理の一例を示す。この発明の一実施例では、例えば、図１６〜図２０に示すように、面積座標パラメータを含む各種座標パラメータα，β，γ，δ，…を用いて面要素ＳＥ等の基本図形要素を設定し、設定された複数の基本図形要素を連続的に繋ぎ合わせて基本図形（基本トポロジー図形）ＢＴを生成し、生成された基本図形ＢＴを微分可能に変形して所望の立体図形（同一トポロジー図形）ＨＴを生成する。これにより、この基本図形要素のサイズは、図３に示すような従来のＣＡＤ方式における平面三角パッチＰＴに比べて十分大きくし、また、基本図形要素間の境界部を連続的に繋ぎ合わせることが可能になる。
【００９２】
より詳しくいえば、この発明の３次元ＣＡＤシステムでは、図１６〜図２０に示すように、基本的には、上述した曲面三角パッチや曲面四角パッチなどの面要素ＳＥを繋ぎ合せて基本トポロジー図形ＢＴを定義する。なお、既に述べたように、基本図形要素には、三角面要素ＳＥｔや四角面要素ＳＥｑ等の面要素ＳＥの外、点要素ＰＥ、線要素ＬＥ、四面体、五面体、六面体等の立体要素ＶＥを用いることができる。このシステムは、このような基本トポロジー図形ＢＴを基にして演算処理を行い所望の３次元図形を得ようとするものである。
【００９３】
〔図形処理の例〕
以下、図１５に示す立体図形生成処理例に基づき、図１６〜図２０に沿って、簡単な図形処理の一例を説明しよう。図１５の処理フロー例では、先ず、ルーチンＲ１において、基本データとして、点要素ＰＥ、線要素ＬＥ、面要素ＳＥ、立体要素ＶＥ等の基本図形要素についてのデータを入力する。ここで、面要素ＳＥには三角面要素ＳＥｔや四角面要素ＳＥｑがあり、立体要素ＶＥには四面体、五面体（三角柱状）、六面体がある。
【００９４】
（１）基本図形要素の入力
先ず、ディスプレイ４上に基本作図画面を呼び出し入力操作装置３を操作して基本図形要素を入力する。例えば、基本作図画面において基本作図メニューボックス（図示しないが、図４上部に例示した要素名が選択可能に並べられている。）に表示された基本図形要素の項目から「六面体」を指定すると、直角六面体の場合は、２つの対角点Ｐ１，Ｐ２をキーボードの数値入力或いはマウスカーソル操作により指示する（任意の直線六面体の場合は、対角点Ｐ１，Ｐ２を含む８つの頂点を指示する）と、図１６（ａ）のような六面体図形が表示され、また、点要素ＰＥとして２点Ｐ１，Ｐ２及び自動計算された残りの６頂点が、線要素ＬＥとして１２本の線が、面要素ＳＥとして６つの四角面（ＳＥｑ）が、そして、立体要素ＶＥとして六面体（ＶＥｈ）が、図１３のような形式で、それぞれ、システムに自動入力される。
【００９５】
なお、上述した方法では当初から六面体（ＶＥｈ）を指示して作画したが、別の手順を用いることもできる。例えば、基本作図メニューボックスから「点」を指定して先ず８頂点を作成し、次に、この８頂点の中から順次４頂点ずつ組指定して６つの四角面（ＳＥｑ）を作り、これら６つの四角面（ＳＥｑ）を選択指定して立体化する。或いは、メニューボックスから「四角面」を指定して先ず上下の面となる２つの四角面（ＳＥｑ）を作成し、次に、上下２つの四角面（ＳＥｑ）の間に４つの四角面（ＳＥｑ）を作成〔上下各面の頂点から面を生成〕し、これらの６つの四角面（ＳＥｑ）を選択指定して立体化する。
【００９６】
続いて、同様の処理により別の六面体（ＶＥｈ）を入力すると、図１６（ｂ）のように２つの六面体が生成される。このように、六面体を構成するための頂点を先ず定義することが、本質的であり、基本図形作成の一つの基本となる。
【００９７】
（２）基本図形の設定及び生成
ルーチンＲ２においては、基本図形要素の合成／結合や分割により、基本図形ＢＴの設定及び生成を行う。例えば、図１６（ｂ）の上部の六面体（ＶＥｈ）は、底面を除去し底面の４つの境界（周囲）線の共有を解いて、上面と４つの側面から成る（底面を除く）５つの四角面（ＳＥｑ）に分割し、底面を有しない六面体を表わす四角面組Ａを生成する。また、下部の六面体（ＶＥｈ）は、上面を除去し４つの境界（周囲）線の共有を解いて、底面と４つの側面から成る（上面を除く）５つの四角面（ＳＥｑ）に分割し、上面を有しない六面体を表わす四角面組Ｂを生成する。これにより、図１６（ｂ）の２つの六面体（ＶＥｈ）を、底面又は上面を有しない四角面組Ａ，Ｂに分割することができる。或いは、基本作図の当初段階（ルーチンＲ１）において、基本作図メニューボックスから「点」又は「四角面」を指定する前述の手法を用いて、５つの四角面（ＳＥｑ）を２組作成し各組の四角面（ＳＥｑ）を合成／結合する〔各組の四角面（ＳＥｑ）に境界（周囲）線を共有させる〕ことによって、底面又は上面がない六面体を表わす四角面組Ａ，Ｂを作成することができる。
【００９８】
次に、このようにして得られた上部四角面組（底面なし六面体）Ａの下側４頂点と下部四角面組（上面なし六面体）Ｂの上側４頂点とを結ぶ４つの「線」を新たに定義し、さらに、これらの「線」並びに両四角面組Ａ，Ｂの下辺及び上辺を形成する各４境界（周囲）線を用いて、両四角面組Ａ，Ｂ間に、図１７（ｃ）のように、４つの四角面（ＳＥｑ）Ｃを定義する。これにより、夫々５つの四角面より成る２つの四角面組Ａ，Ｂ間を４つの四角面（ＳＥｑ）Ｃで繋いだ内空の基本図形ＢＴを設定することができる。なお、図１６（ａ），（ｂ）に示されるような何ら分割／合成しない基本図形要素そのものも、もちろん、基本図形ＢＴとして取り扱うことができる。
【００９９】
（３）基本図形の変形
ルーチンＲ３では、基本図形ＢＴにおける基本図形要素の種々の制御ベクトルを調整することにより、基本図形ＢＴの変形が行われる。基本作図画面の変形メニューボックスで「線分の拡大／縮小」を指定し所望の頂点及び移動先（量）を指示すると、図１７（ｃ）の基本図形ＢＴの対応する頂点ベクトルが制御され、例えば、下部四角面組Ｂの水平な境界（周囲）線を拡大させる処理により、図１７（ｄ）のような内空の変形図形ＨＴを生成することができる。また、図１７（ｄ）の変形図形ＨＴに対して、上部四角面組Ａの垂直な境界（周囲）線を均等に拡大し、下部四角面組Ｂの垂直な境界（周囲）線を不均等に拡大する処理により、図１８（ｅ）のような内空の変形図形ＨＴを生成することができる。
【０１００】
図１８（ｅ）のような変形図形ＨＴに対して、さらに、例えば、角筒状の上部及び下部の四角面組Ａ，Ｂに丸みを付けて、円筒、或いは、丸みのある角部を有する角筒に変形することができる。このためには、基本作図画面の変形メニューボックスで「連続化」を指定し、上部四角面組Ａについては、１２本の境界線から、４本の垂直な境界線を除く８本の上下部の境界線を選択すると、各境界線について、互いの接続点における互いの線制御ベクトル（接線ベクトル）ＬＶを、方向が逆で大きさが同一とする接線連続化処理が実行されて、図１９（ｆ）の上部に示すように、各境界線が滑らかに接続され、上部四角面組Ａが円筒状に変形される。
【０１０１】
これと同様の接線連続化処理を下部四角面組Ｂについても適用し、互いに同一にされる線制御ベクトル（接線ベクトル）ＬＶの大きさを、上部四角面組Ａの処理の場合よりも、大きくすると、図１９（ｆ）の下部に示すように、滑らかに境界線が接続され、下部四角面組Ｂは、角部に丸みが付けられた角筒に変形される。このようにして同図に示されるような変形図形ＨＴが得られる。つまり、図１８（ｅ）の両四角面組Ａ，Ｂの上部及び下部の境界線の連接部に、線制御ベクトルＬＶの方向及び大きさ（曲率）を合わせる連続化処理を、上下部では異なる曲率で施すと、図１９（ｆ）のように、両四角面組Ａ，Ｂの４つの四角面（ＳＥｑ）を滑らかに繋ぎ合わせ、処理径に応じて、上部四角面組Ａを円筒化し、下部四角面組Ｂの側面角部にフィレット処理と同様の丸み付けを行うことができる。
【０１０２】
さらに、上下各四角面組Ａ，Ｂの縦方向の境界線と、中間の四角面組Ｃの境界線との接続部において、互いの境界線の線制御ベクトルＬＶを逆方向とし異なる大きさ（曲率）とする接線連続化処理を行うと、図２０（ｇ）のような変形図形ＨＴが得られる。つまり、図１９（ｆ）において、上部四角面組（円筒部）Ａ−中間四角面組（繋ぎ部）Ｃ−下部四角面組（丸み付き角筒部）Ｂ間で、縦方向に連接する部分に、線制御ベクトルＬＶの方向を合わせる連続化処理を各連接部では異なる曲率で施すと、図２０（ｇ）のように、これらの四角面組Ａ，Ｂ，Ｃが滑らかに繋ぎ合わされた変形図形ＨＴが得られる。
【０１０３】
この発明では、面と面との間の接続部分の微分値は、他の変形処理があっても保存される。つまり、この発明によると、各接線連続処理により得られた面間の滑らかな繋合せは変形後も保存されるので、連続性を保ちつつ図形を種々に変形することができる。
【０１０４】
（４）シェーディング（色塗り、影付け）
ルーチンＲ４においては、これまでのルーチンＲ１〜Ｒ３で得られ基本図形ＢＴや変形図形ＨＴの表面に対して、光源及び視点の位置及び方向を設定し、周知のシェーディング（色塗り、影付け）処理を行う。図２１は、図２０（ｇ）に類似した変形図形に対してシェーディング処理を施した場合の実際の画面表示例を示す。
【０１０５】
以上説明したように、この発明の一実施例による３次元ＣＡＤシステムでは、以下の（１）〜（９）のような特徴を有する。
（１）図１６〜図２０に示すように、面要素ＳＥで定義された基本トポロジー図形ＢＴを変形して新たな連続空間図形（同一トポロジー図形）ＨＴを次々と生成していくことができる。従って、面が連続的に定義され、ＣＡＭの加工面やＣＡＥのメッシュデータがＣＡＤデータと共有することが可能となる。つまり、基本的に、ベクトル係数（Ａ１〜Ａ１０等）を決定して設定した位置ベクトル関数Ｐにより表わされる多数の曲面ＳＥによって基本トポロジー図形ＢＴを作成し、さらに、作成された基本トポロジー図形を変形し更にこれを変形して同一トポロジーを有する同一トポロジー図形ＨＴを順次生成することができる。この場合、基本トポロジー図形ＢＴや変形トポロジー図形ＨＴ上で連続した面は、これを変形した後の同一トポロジー図形ＨＴにおいても連続しており、面の接線連続を保つ機能や、面の曲率の連続性を制御する機能を持っている。
【０１０６】
この発明の３次元ＣＡＤシステムでは、また、離散化近似を行わず、面要素ＳＥや立体要素ＶＥを連続して定義することから、形状データベースをＣＡＤ，ＣＡＭ，ＣＡＥで一貫して共有することが可能となるので、ＣＡＤシステムで表現される曲面を用いて、直接、工作機械を制御することができ、「ＣＡＤ  ｔｏ  Ｄｉｒｅｃｔ  Ｍａｃｈｉｎｅ Ｃｏｎｔｒｏｌ」と呼び得る次世代の工作機械技術に寄与する。
【０１０７】
（２）基本要素である三角面要素ＳＥｔや四角面要素ＳＥｑ等の面要素ＳＥ自体が曲面を表現しているので、曲面表現のためのデータ量が非常に少ない。例えば、この発明による３次元ＣＡＤシステムにおける１つの曲面四角パッチにより、従来ＣＡＤ方式のポリゴン近似における平面三角パッチの数十〜数百個分に相当する曲面を表現することができる。また、このシステムで表現される円筒は、厳密な円ではなく、例えば、Ｈ７程度の誤差をもって表現されるが、この誤差は、円筒面の分割数を増やすことにより、減少することができる。
【０１０８】
この発明の３次元ＣＡＤシステムにおける曲面処理の体系は、形状を記述するデータ量が極めて少なくするという利点をもっており、例えば、同規模図形に対して、従来のＣＡＤ方式の１／１００のデータ量となる。これにより、このシステムによる曲面処理は、平面近似処理ではＣＰＵの能力が発展した最近のパーソナルコンピュータでも実現できないような複雑な立体図形についても、パーソナルコンピュータを用いて実行することができる。また、例えば、データ量の制約の大きなインターネットを介したデータの授受にも大いに有利となり、例えば、従来のＣＡＤ方式では不可能であったＣＡＬＳ（Computer-aided Acquisition and Logistics Support）対応の図面転送を行うことができる。
【０１０９】
（３）最初に図形を近似表現するが、その後の演算処理では一切近似計算をしないことを原則とする。このように、原則として、最初に図形を近似表現した後には近似計算を行わないことは、図形定義上の制約になることがあるが、２次元製図のコンパスと定規のような制約に過ぎず、この制約以上に、演算処理の負荷を大幅に軽減するという効果が得られる。
【０１１０】
（４）面の分割手法として、面の上に接線連続面を相対的に定義することが可能であり、相対的に定義された面を、親面の変形に応じて相対的に変形することができる。つまり、面の上に局部的な面を張り付けて複雑な局部形状を表現するので、張り付けた面は親面の上を滑らせて移動することが可能であり、親面を変形させると、それに応じて、相対的に定義された子面も変形することができる。このように、局部的な細部形状に依存して面の分割が全域に及ばないことから、面を定義するデータ量が大幅に低減される。
【０１１１】
（５）図形のあらゆる部分を掴んで変形することが可能である。
（６）円形面の表現にトリム処理を必要としない。
（７）連続面の一部に徐々に曲率が変化するフィレット面を定義することができる。つまり、フィレットは、面の一部に自動的に作成され、複雑なフィレット形状を一つの面データ表現することができる。
（８）面の連続性は、曲率の連続性に関して制御する機能を有し、高度な意匠設計に対応することができる。
（９）曲面処理に近似計算を行わず、レンダー処理も独自の曲面レンダリングを採用することができる。レンダリング技術に関しても新技術の世界を切り開く可能性がある。例えば、表示されるピクセル点の全てについて法線ベクトルを計算することにより、「リアルシェード」と呼ぶ完璧な色染め（シェーディング）を行うことができる。
等々。
【０１１２】
演算処理には、一般的に、線形代数論が多用されているが、コンピュータは、本来、線形代数論（マトリクス演算：陰解法）が不得意であり、この発明の３次元ＣＡＤシステムの曲面処理のように、出来る限り陽解法で演算処理を行うのが有利である。なお、どうしても陰解法が必要なときには、単純な収束計算で解を求めることができる。この発明のシステムは、このように、コンピュータ処理を前提として、線形代数論から非線形計算力学へという新たな技術の流れに従って、線形図形処理から非線形図形処理への変革を実現するものである。
【０１１３】
また、一般的な工学上の解析計算に於いても、従来の線形代数論を応用した処理ロジックよりも、非線形問題を直接時系列現象として模擬する非線形計算力学に有利な技術環境を作り出している。この発明による曲面処理や非線形処理ロジックは、論理性よりも感性に馴染む性格を持っており、ヒューマン・インターフェースという問題で有利な点が多い。
【０１１４】
【発明の効果】
以上説明したように、この発明によれば、直線座標、面積座標又は体積座標パラメータでそれぞれ定義される線要素、面要素又は立体要素を基本図形要素として設定し、これらの基本図形要素を相互に連接して、複数の座標パラメータで連続的に定義される基本図形を設定し、設定された基本図形を変形して所望の立体図形を生成する。これにより、面要素は、従来のＣＡＤ方式における面処理方式に対比して、広い領域を一つのパッチで表現することが可能になる。また、パッチが連続的に繋がった空間図形、即ち、連続微分可能な空間図形が定義され、しかも、このパッチで全ての面を近似表現するようにしているので、面の取扱いに一貫性をもたせることができる。従って、図形を記述するためのデータ量を大幅に低減し、コンピュータの演算処理の負荷を減少させることができる。
【０１１５】
さらに、この発明によれば、生成される立体図形は、座標パラメータの総３次形式で表現される空間座標をもつ点群で定義されるので、演算数を必要以上に増大せずに、面端の接線を連続的に接合する関係を維持しつつ面を制御し、十分に実用的な３次元図形表現を得ることができる。
【０１１６】
さらに、この発明によれば、点要素は３次元座標データをもち、線要素は端点ポインタ及び中間制御点データをもち、面要素は外周線ポインタ及び面内制御点データをもち、立体要素は、外周面ポインタを表わすデータをもち、点要素、線要素及び面要素は、リファレンス計数データをもたせている。従って、或る要素を削除しようとする場合、レファレンス計数データを参照して当該要素が他の要素の構成要因になっているか否かを確認し、削除の可否を有効に判別することができる。
【０１１７】
そして、これらの特徴的な効果に付随して、さらに、次のような特筆すべき技術上の諸効果を生みだす：
（１）従来のＣＡＤ方式に比べて、データ量を大幅に低減し、例えば、１／１００程度に激減することができ、例えば、インターネットを利用したデータ転送が可能になる。
（２）コンピュータの演算処理の負荷を減少させ、総合的システムコストを低減させることができ、例えば、低位のパーソナルコンピュータで十分実用化することができる。
（３）面の取扱いに一貫性をもたせることができ、意匠設計からＣＡＭ、ＣＡＥに共通のデータを提供することができる。
【図面の簡単な説明】
【図１】図１は、従来の３次元ＣＡＤ方式により作成される図形の特徴を表わす図である。
【図２】図２は、従来の３次元ＣＡＤ方式におけるパラメータ平面及び写像曲面を表わす図である。
【図３】図３は、従来の３次元ＣＡＤ方式における多面体（ポリゴン）近似を表わす図である。
【図４】図４は、この発明の一実施例による３次元ＣＡＤシステムにおける形状モデルデータクラス構造を表わす図である。
【図５】図５は、この発明の一実施例による３次元ＣＡＤシステムにおける点要素を説明するための図である。
【図６】図６は、この発明の一実施例による３次元ＣＡＤシステムにおける線（曲線）要素及び直線座標パラメータを説明するための図である。
【図７】図７は、この発明の一実施例による３次元ＣＡＤシステムにおける三角形面積座標パラメータ平面及び写像曲面を表わす図である。
【図８】図８は、この発明の一実施例による３次元ＣＡＤシステムにおける四角形面積座標パラメータ平面及び写像曲面を表わす図である。
【図９】図９は、この発明の一実施例による３次元ＣＡＤシステムにおける四角形面積座標パラメータの意味を説明するための図である。
【図１０】図１０は、この発明の一実施例による３次元ＣＡＤシステムにおける四角面要素の境界線の接線連続化の一例を表わす図である。
【図１１】図１１は、この発明の一実施例による３次元ＣＡＤシステムにおける多角形面積座標パラメータを一般的に説明するための図である。
【図１２】図１２は、この発明の一実施例による３次元ＣＡＤシステムにおける多面体体積座標パラメータを説明するための図である。
【図１３】図１３は、この発明の一実施例による３次元ＣＡＤシステムにおける各基本図形要素のデータ構造を表わす図である。
【図１４】図１４は、この発明の一実施例による３次元ＣＡＤシステムのハードウエア構成例を表わすブロック図である。
【図１５】図１５は、この発明の一実施例による３次元ＣＡＤシステムにおいて実行される立体図形の作成処理の一例を示す図である。
【図１６】図１６は、この発明の一実施例による３次元ＣＡＤシステムでの立体図形生成処理過程の具体的図形を例示的に表わす図の第１部分である。
【図１７】図１７は、この発明の一実施例による３次元ＣＡＤシステムの立体図形生成処理過程での具体的図形例を表わす図の第２部分である。
【図１８】図１８は、この発明の一実施例による３次元ＣＡＤシステムの立体図形生成処理過程での具体的図形例を表わす図の第３部分である。
【図１９】図１９は、この発明の一実施例による３次元ＣＡＤシステムの立体図形生成処理過程での具体的図形例を表わす図の第４部分である。
【図２０】図２０は、この発明の一実施例による３次元ＣＡＤシステムの立体図形生成処理過程での具体的図形例を表わす図の第５部分である。
【図２１】図２１は、この発明の一実施例による３次元ＣＡＤシステムの立体図形生成処理により得られた実際の画面表示例である。
【符号の説明】
α１，β１  直線座標パラメータ、
α２，β２，γ２，δ２  面積座標パラメータ、
α３，β３，γ３，…  体積座標パラメータ、
ＰＥ，ＬＥ，ＳＥ，ＶＥ  点要素、線要素、面要素及び立体要素（基本図形要素）、
ＰＡ，ＰＢ，ＰＣ，ＰＤ  頂点ベクトル、
ＰＬ，ＬＬ，ＳＬ，ＶＬ  点リスト、線リスト、面リスト及び立体リスト、
ＲＣ  リファレンスカウンタ、
ＢＴ  基本図形（基本トポロジー図形）、
ＨＴ  変形後の種々の立体図形（同一トポロジー図形）。
【図１】
0003829972.tif 000013
【図２】
0003829972.tif 000014
【図３】
0003829972.tif 000015
【図４】
0003829972.tif 000016
【図５】
0003829972.tif 000017
【図６】
0003829972.tif 000018
【図７】
0003829972.tif 000019
【図８】
0003829972.tif 000020
【図９】
0003829972.tif 000021
【図１０】
0003829972.tif 000022
【図１１】
0003829972.tif 000023
【図１２】
0003829972.tif 000024
【図１３】
0003829972.tif 000025
【図１４】
0003829972.tif 000026
【図１５】
0003829972.tif 000027
【図１６】
0003829972.tif 000028
【図１７】
0003829972.tif 000029
【図１８】
0003829972.tif 000030
【図１９】
0003829972.tif 000031
【図２０】
0003829972.tif 000032
【図２１】
0003829972.tif 000033