JP4032828B2 - 図形表裏設定装置および図形表裏設定方法 - Google Patents
図形表裏設定装置および図形表裏設定方法 Download PDFInfo
- Publication number
- JP4032828B2 JP4032828B2 JP2002151102A JP2002151102A JP4032828B2 JP 4032828 B2 JP4032828 B2 JP 4032828B2 JP 2002151102 A JP2002151102 A JP 2002151102A JP 2002151102 A JP2002151102 A JP 2002151102A JP 4032828 B2 JP4032828 B2 JP 4032828B2
- Authority
- JP
- Japan
- Prior art keywords
- reference vector
- vector
- plane
- view
- normal vector
- 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 - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/80—Technologies aiming to reduce greenhouse gasses emissions common to all road transportation technologies
- Y02T10/82—Elements for improving aerodynamics
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、3次元コンピュータグラフィックス描画装置や3次元CADなどの図形描画装置に適用する図形表裏設定装置および図形表裏設定方法に関する。
【0002】
【従来の技術】
3次元コンピュータグラフィックス描画装置や3次元CADなどの図形描画装置において、3次元立体の幾何モデルの表現方法として、ワイヤーフレームモデル、サーフェスモデル、ソリッドモデルの3種類の表現方法が用いられている。これらの表現方法のうち、シェーディング処理(隠線消去、隠面消去)が可能なのは、サーフェスモデルとソリッドモデルの2種類の表現方法である。
【0003】
サーフェスモデルの表現方法は、ソリッドモデルの表現方法とは違って、厚みを表現することはできないが、表示に必要なデータ量が少なくて済み、また、表示のための計算量も少なくて済むという利点がある。したがって、自動車の車体パネルのような薄板物は、厚みを表現できなくとも実用上の問題は発生しないため、サーフェスモデルの表現方法を用いて描画している。
【0004】
サーフェスモデルの表現方法を用いて物体を描画する場合、その物体を構成する面として、平面、円筒面、自由曲面が一般的に用いられる。なお、サーフェスモデルの表現方法は、1つの物体を表現する場合に、その物体を構成する面と面とが離れていてもモデルとしては成立するという特徴を持っている。
【0005】
サーフェスモデルの表現方法を用いて描画した物体にシェーディング処理を施して、その物体を3次元立体として表示できるようにするためには、まず、その物体を構成しているそれぞれの面の表裏がわからなければならない。
【0006】
視点に対するそれぞれの面の表裏の判断は、たとえば、特開平5−67219号公報に開示されているように、3次元図形に対する視方向ベクトルと3次元図形を構成する面の法線ベクトルとがなす角度から行うものがある。そして、それぞれの面についての表裏の設定は、特開平10−172007号公報に開示されているように、基準パッチの表裏を基準として基準パッチ以外のすべてのパッチの表裏を設定するものがある。また、物体を速く描画できるようにするためには、シェーディング処理が高速で行われるのが好ましい。シェーディング処理の高速化は、たとえば、特開平7−320087号公報に開示されているように、無駄な表示判定処理を行わないようにすることで達成される。
【0007】
サーフェスモデルの表現方法を用いて物体を描画する場合、その物体を描画するための面のデータには、必ずその面の表裏を表すためのデータを含んでいる。一般的には、その面の法線ベクトルの方向が表となる。面の法線ベクトルの方向は、面ごとに存在するため、1つの物体を構成する各面の法線ベクトルの方向が必ず揃うとは限らない。
【0008】
たとえば、折れ曲がった板を構成する3つの面のデータ(面の頂点座標や稜線データ)を入力するときに、面の表裏をそろえることを意識していないでその入力を行ってしまうと、データの入力の順序によっては、本来は表と判断されなければならない面が裏と判断されてしまう場合がある。
【0009】
視点から見て表と判断されるべき面が表と判断されれば、面の法線ベクトルの方向が光線方向を向くことになるので、シェーディング処理後は、3つの面がきれいに表れ、3つの面が立体的に表示されるが、本来は表と判断されるべき面が間違って裏と判断されてしまうと、その面の法線ベクトルの方向は光線方向とは反対の方向を向くことになり、その面には光が当たらなくなる。このため、たとえば、3つの面のうちの真中の面が裏と判断されたときには、シェーディング処理後は、1つの面が存在していないかのような表示がされ、面の抜けが発生してしまう。
【0010】
実際の物体に対してシェーディング処理を行った結果、上記のような面の抜けが発生してしまうと、表示される物体のうち、面の抜けた部分はまだらな模様となって表示されるため、物体は、きれいな3次元立体としては表示されなくなってしまう。
【0011】
シェーディング後の物体がきれいな3次元立体として表示されるようにするため、面の抜けが発生した面の法線ベクトルの方向をオペレータが手作業で反転させたり、コンピュータによって自動的に反転させたりして、間違って裏と判断されてしまった面を、強制的に表と判断させるための作業を行っている。
【0012】
コンピュータによって、面の法線ベクトルの方向を揃える作業は、具体的には、次のような手順で行っている。まず、面を揃えるために基準の面を決定する。基準の面の決定は、人間が任意の面を適当に選択することによって行う。つぎに、選択した基準の面と隣り合う面を探す。隣り合っているかどうかは、面同士の頂点座標の一致、稜線の一致に基づいて図形描画装置が自動的に行う。なお、基準の面と隣り合う面を探すためは、物体を構成している基準の面以外のすべての面に対して、面同士の頂点座標が一致しているか否か、稜線が一致しているか否か、を調べなければならない。このため、隣り合う面を探すために、たとえば自動車の車体パネルを例に取れば、数千の面を対象とすることになり、隣り合う面を探すためにも多くの時間を要する。
【0013】
隣り合う面が見つかると、隣り合う面の向きを基準の面の向きと同じくする。つまり、両面の法線ベクトルの方向を揃える。法線ベクトルの方向を揃える処理が終了した面には、処理済みの印を付けて、基準の面に処理済の面を含める。つまり、処理済の面の集合が基準の面となる。以上のような処理を、物体を構成するすべての面に対して行う。この処理によれば、物体を構成する面がすべて隣接していれば、鋭角的な折れがあったとしても、すべての面の法線ベクトルの方向を揃えることができる。
【0014】
【発明が解決しようとする課題】
しかしながら、上記のような従来の図形描画装置では、ある面を基準として、面同士の頂点座標の一致、稜線の一致に基づいて隣り合う面を見つけるようにしていたため、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面(交差、離れなど)が生じてしまった場合には、法線ベクトルの方向を揃える処理がすべての面に対して実行されず、すべての面の方向を揃えることができなくなってしまうという問題がある。
【0015】
また、上記のような従来の図形描画装置では、隣り合う面を面同士の頂点座標の一致、稜線の一致に基づいて順次探し出さなければならなかったため、隣り合う面を探し出すのに時間がかかるという問題がある。特に、自動車の車体パネルのように自由曲面の数が大きい大規模な物体では、多大の時間がかかることになる。また、面の数が多いと、法線ベクトルの方向を揃える処理にも多大な時間がかかる。
【0016】
本発明は、このような従来の図形描画装置の問題点を解決するために成されたものであり、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能な、図形表裏設定装置および図形表裏設定方法の提供を目的とする。
【0017】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、本発明では、物体を構成する面の面データを入力し、この面データに基づいて物体を構成する面の法線ベクトルを作成する。次に、面データに基づいて物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を、直方体を構成する各辺が、3次元直交座標系のX軸、Y軸、Z軸のいずれかの軸に平行になるように作成し、作成された直方体を構成する面のうち、最も面積が大きい面を選択し、選択された面が、X、Yビュー、Y、Zビュー、Z、Xビューのいずれから見た面であるのかを判断し、X、Yビューであれば、+Zの方向を基準ベクトルの方向に設定し、Y、Zビューであれば、前記選択された面の凸方向を判断して凸方向である+Xまたは−Xの方向を基準ベクトルの方向に設定し、Z、Xビューであれば、+Yの方向を基準ベクトルの方向に設定し、選択された面の基準ベクトルを作成する。そして、作成された法線ベクトルと作成された基準ベクトルとの交差角度が90度であるか否かを判断し、この交差角度が90度であれば、基準ベクトルの方向とは逆の方向から前記物体を見たときに、基準ベクトルとの交差角度が90度の法線ベクトルを有する垂直面に隣接する隣接面を抽出する。さらに、抽出された各隣接面の基準ベクトル方向の高さを比較し、高さが高い面から低い面に向かう方向の基準ベクトルを垂直面に対して作成する。最後に、垂直面に対して作成された基準ベクトルと垂直面の法線ベクトルとの交差角度が90度を超えていれば、垂直面の法線ベクトルの方向を180度反転させる。
【0018】
本発明では、法線ベクトルと基準ベクトルの交差角度が90度の場合に、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えている。したがって、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面(交差、離れなど)が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の方向を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このために、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
【0019】
【発明の効果】
以上説明したように、本発明では、法線ベクトルと基準ベクトルの交差角度が90度の場合に、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えているので、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面(交差、離れなど)が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の方向を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。したがって、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
【0020】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる図形表裏設定装置および図形表裏設定方法の好適な実施の形態を詳細に説明する。
【0021】
図1は、本発明にかかる図形表裏設定装置の概略構成を示すブロック図である。本発明にかかる図形表裏設定装置は、たとえば、3次元コンピュータグラフィックス描画装置や3次元CADなどの図形描画装置内に設置される。
【0022】
データ入力部10は、入力手段として機能する部分であって、物体を構成する面の面データ(たとえば、頂点座標データ、稜線に関するデータ)を入力し、入力した面データを、後段の直方体作成部11、面法線ベクトル作成部12、隣接面抽出部17に出力する。
【0023】
直方体作成部11は、直方体作成手段として機能する部分であって、データ入力部10から出力された面データから、その面データで構成される物体を包含する、最も体積の小さな直方体、あるいは当該直方体と相似形状の直方体を作成する。なお、直方体作成部11は、その直方体を構成する各辺が、3次元直交座標系のX軸、Y軸、Z軸のいずれかの軸に平行になるように直方体を作成する。たとえば、物体が図2の車体パネル25であれば、図3のように、その車体パネル25を包含する直方体30を3次元直交座標系上に作成する。車体パネル25に関するデータと作成された直方体30に関するデータは、後段のビュー面面積演算部13に送られる。
【0024】
面法線ベクトル作成部12は、面法線ベクトル作成手段として機能する部分であって、データ入力部10から出力された面データから、その面の中心付近(中心付近でなくても良いが)の法線ベクトルを、たとえば、特開平5−67219号公報にも開示されているような従来の方法で作成する。面の法線ベクトルの方向は、その面の表裏を表す。たとえば、法線ベクトルの方向がその面から外側に向かう方向であれば、その面は光線の当たる表の面であり、逆に、法線ベクトルの方向がその面に向かう方向であれば、その面は光線の当たらない裏の面である。
【0025】
図2のパネル25に対して法線ベクトルを作成すると、Aに示す方向のベクトルになる。作成された法線ベクトルに関する情報は、後段の交差角度判断部16に送られる。
【0026】
ビュー面面積演算部13は、直方体作成部11によって作成された直方体30の各頂点の座標データに基づいて、図4のように、各ビュー(X、Y、Zの3方向)から見た、直方体30を構成する3つの面(a、b、c)の面積を求める。求めたそれぞれの面の面積は、後段の最大面積ビュー面選択部14に送られる。
【0027】
最大面積ビュー面選択部14は、最大面積ビュー面選択手段として機能する部分であって、ビュー面面積演算部13から送られてきた3つの面(a、b、c)の面積の内、最も面積の大きい面を選択し、その面がどのビューから見たものであるかを判断する。ビュー面面積演算部13から送られてきた3つの面(a、b、c)の面積が図4に示すようなものであれば、最大面積ビュー面選択部14は、最も面積が大きいbの面を選択し、bの面は、YZビューから見た面であると判断する。選択された面の面積と、判断されたビューは、後段のビュー面基準ベクトル作成部15に送られる。
【0028】
ビュー面基準ベクトル作成部15は、ビュー面基準ベクトル作成手段として機能する部分であって、最大面積ビュー面選択部14によって選択された面の基準ベクトルを作成する。この基準ベクトルの作成に当たり、ビュー面基準ベクトル作成部15は、また、最大面積ビュー面選択部14から送られてきた面の面積に基づいて、その物体が大物物品であるか、大物物品でないか(小物物品であるか)を判断する。大物物品であるか、大物物品でないかの判断は、たとえば面の面積が1m2よりも大きいか、小さいかによって行う。
【0029】
大物物品と判断されたときには、最大面積ビュー面選択部14から送られてきたビューに基づいて、基準ベクトルを作成する。すなわち、ビュー面基準ベクトル作成部15は、最大面積ビュー面選択部14によって選択された面が、X、Yビュー、Y、Zビュー、Z、Xビューのいずれから見た面であるのかを判断し、X、Yビューであれば、+Zの方向を基準ベクトルの方向に設定し、Y、Zビューであれば、前記選択された面の凸方向を判断して凸方向である+Xまたは−Xの方向を基準ベクトルの方向に設定し、Z、Xビューであれば、+Yの方向を基準ベクトルの方向に設定する。基準ベクトルの方向は、X軸、Y軸、Z軸のいずれかの軸に沿う方向である。たとえば、図4に示す大物物品のbの面が選択された場合、その面はY、Zビューであるので、+Xまたは−Xの方向(図では+Xの方向)の基準ベクトルBbが作成される。
【0030】
また、ビュー面基準ベクトル作成部15によって大物物品でないと判断されたときには、直方体作成部11が持っている、その物体の面データを入力し、その面データに基づいて、その物体が最大面積ビュー面選択部14から送られてきたビューのどちら側(手前側、奥側)に凸であるかが判断され、その判断に基づいて基準ベクトルを作成する。すなわち、ビュー面基準ベクトル作成部15は、最大面積ビュー面選択部14によって選択された面の凸方向であるX、Y、Zのいずれかの+または−方向を基準ベクトルの方向に設定し、基準ベクトルを作成する。作成された基準ベクトルに関する情報は、後段の交差角度判断部16に送られる。
【0031】
交差角度判断部16は、交差角度判断手段として機能する部分であって、面法線ベクトル作成部12によって作成された任意の面の法線ベクトルとビュー面基準ベクトル作成部15によって作成された基準ベクトルとが成す交差角度を求め、その交差角度が90度であるか否かを判断する。たとえば、図5に示すような形状のパネル27に対して、それぞれの面の法線ベクトルがAa、Ab、Ac、Adの向きに作成され、そのパネル27を包含する直方体から選択された面の基準ベクトルがBbであったとすれば、法線ベクトルAbと基準ベクトルBbとの交差角度は90度である。なお、図4に示す場合では、パネル25に対する法線ベクトルAと直方体30から選択された面の基準ベクトルBbとの交差角度θは90度ではない。交差角度が90度であるときには、このことを後段の隣接面抽出部17に報知する。
【0032】
隣接面抽出部17は、隣接面抽出手段および識別子設定手段として機能する部分であって、交差角度判断部16によって交差角度が90度であると判断されたときに、データ入力部10からの面データに基づきその面データで構成される物体の面を生成する。そして、ビュー面基準ベクトル作成部15で作成された基準ベクトルに関する情報を入力して、その基準ベクトルの方向とは逆の方向から、その物体を見て、その基準ベクトルとの交差角度が90度の法線ベクトルを持つ面(垂直面)に隣接している面(隣接面)を抽出する。そして、その垂直面には識別子を設定しておく。
【0033】
たとえば、図5に示すように、法線ベクトルAbと基準ベクトルBbとの交差角度は90度であるので、面dが垂直面(基準ベクトルBbとの交差角度が90度の法線ベクトルAbを持つ)になり、面dに関する情報には識別子が付加される。そして、その面dに隣接する面e、fが隣接面になる。したがって、隣接面抽出部17は、面dを垂直面として、面e、fを隣接面としてそれぞれ抽出することになる。抽出した隣接面に関する情報は、後段の基準ベクトル方向高さ比較部18に送られる。
【0034】
基準ベクトル方向高さ比較部18は、基準ベクトル方向高さ比較手段として機能する部分であって、隣接面抽出部17によって抽出された各隣接面の基準ベクトル方向の高さを比較する部分である。
【0035】
図5に示した形状のパネル27を正面および側面から見た図を図6に示した。垂直面dと隣接面e、fとの位置関係、基準ベクトルBb、各面の法線ベクトルAa、Ab、Ac、Adの方向の関係は図6に示すようになっている。この場合、基準ベクトル方向高さ比較部18は、隣接面eの基準ベクトルBb方向の高さと隣接面fの基準ベクトルBb方向の高さとを比較することになる。どちらの隣接面の高さが高いかは、後段の垂直面基準ベクトル作成部19に送られる。
【0036】
垂直面基準ベクトル作成部19は、垂直面基準ベクトル作成手段として機能する部分であって、基準ベクトル方向高さ比較部18によって比較された隣接面の、高さが高い面から低い面に向かう方向の基準ベクトルを、隣接面抽出部17によって作成された面の内の垂直面に対して作成する。
【0037】
隣接面eの基準ベクトルBb方向の高さは、隣接面fの基準ベクトルBb方向の高さよりも低いので、垂直面基準ベクトル作成部19は、図7に示すように、隣接面fから隣接面eに向かう方向の基準ベクトルCbを垂直面dに対して作成することになる。
【0038】
なお、垂直面基準ベクトル作成部19は、ビュー面基準ベクトル作成部15によって作成された基準ベクトルの方向が+Xまたは−X、+Yまたは−Yのいずれかの方向であるときには、+Zまたは−Zの方向を垂直面に対して作成する基準ベクトルの方向とし、その基準ベクトルの方向が+Zまたは−Zの方向であるときには、+Xまたは−X、+Yまたは−Yのいずれかの方向を垂直面に対して作成する基準ベクトルの方向とする。
【0039】
面法線ベクトル揃え部20は、垂直面基準ベクトル作成部19によって作成された前記垂直面の基準ベクトルと面法線ベクトル作成部12によって作成されたその垂直面の法線ベクトルとの交差角度が90度を超えていれば、その垂直面の法線ベクトルの方向を180度反転させる。たとえば、図8に示すように、垂直面dの法線ベクトルAbは図6に示すような下向きであり、垂直面基準ベクトル作成部19がその垂直面に対して作成した基準ベクトルCbは図7に示すように上向きである。法線ベクトルAbと基準ベクトルCbとの交差角度180度であるから、法線ベクトルAb方向は180度反転されて、上向きの方向の法線ベクトルAbに変更される。この変更は、垂直面に関する情報に付加されている識別子を頼りに行われる。これによって、光線の当たる面面が垂直面dの上側の面になる。
【0040】
また、面法線ベクトル揃え部20は、ビュー面基準ベクトル作成部15によって作成された直方体30から選択された面の基準ベクトルBbと、面法線ベクトル作成部12によって作成された物体を構成する各面の法線ベクトルとが成す角を求める。その角度が90度よりも大きければ、その面に対する表裏の判断が逆である可能性が高いので、その面の法線ベクトルの向きを180度反転させる。法線ベクトルの向きが揃えられた後の法線ベクトルの方向に関するデータおよびその面の面データはデータ出力部17に送られる。
【0041】
垂直面の法線ベクトルの方向を反転させる処理と、垂直面以外の法線ベクトルの方向を反転させる処理は、どちらを先に行っても良いが、垂直面以外の法線ベクトルの方向を反転させる処理を行った後に垂直面の法線ベクトルを反転させる処理をする場合には、垂直面に関する情報に付加されている識別子を頼りに行う。つまり、識別子の付加されていない面について法線ベクトルの方向を揃える処理をした後に、識別子が付加されている面の法線ベクトルの方向を揃える。
【0042】
データ出力部21は、送られてきた、法線ベクトルの方向に関するデータおよび面データを外部に出力する。
【0043】
図形表裏設定装置を構成する各ブロックの概略の機能は以上のとおりである。つぎに、図9から図11のフローチャートに基づいて、図形表裏設定装置の一連の動作を具体的に説明する。なおこのフローチャートは、図形表裏設定方法の手順を示したものでもある。
【0044】
図形表裏設定装置の動作には、大きく分けて2つの動作がある。1つは、物体を構成する各面の形状を調べて、各面の基準ベクトルの方向を求める第1の処理である。そしてもう1つは、最終的に各面の法線ベクトルの方向を揃える第2の処理である。
【0045】
第1の処理は、図9のフローチャートに示されている処理であり、図1に示した、直方体作成部11、ビュー面面積演算部13、最大面積ビュー面選択部14およびビュー面基準ベクトル作成部15によって実行される。
【0046】
第2の処理は、図10および図11のフローチャートに示されている処理であり、図1に示した、面法線ベクトル作成部12、交差角度判断部16、隣接面抽出部17、基準ベクトル方向高さ比較部18、垂直面基準ベクトル作成部19、面法線ベクトル揃え部20によって実行される。
【0047】
まず、第1の処理について説明する。この処理は、図9に示してあるフローチャートの手順で実行される。ここでは、処理の対象となる物体を、図2に示した車体パネル25とする。
【0048】
データ入力部10は、車体パネル25の面データ(たとえば、頂点座標データ、稜線に関するデータ)を入力し、この面データを、後段の直方体作成部11と面法線ベクトル作成部12に出力する。直方体作成部11は、データ入力部10から出力された面データから、車体パネル25を包含する、最も体積の小さな直方体(あるいは、当該直方体と相似形状の直方体)30(図3参照)を作成する。なお、本実施の形態では、座標系は、図3に示すように幅方向をX、長さ方向をY、高さ方向をZとする3次元の直交座標系を用いている。座標系は、この直交座標系以外に、極座標系、円筒座標系を用いても良い(S1)。
【0049】
つぎに、ビュー面面積演算部13は、直方体作成部11によって作成された直方体30の8つの頂点の座標から、図4のように、各ビュー(X、Y、Zの3方向)から見た、直方体30を構成する3つの面(a、b、c)それぞれの面積を求める。(S2)。
【0050】
最大面積ビュー面選択部14は、ビュー面面積演算部13から送られてきた3つの面(a、b、c)それぞれの面積の内、最も面積の大きい面を選択し、その面がどのビューから見たものであるかを判断する。ビュー面面積演算部13から送られてきた3つの面(a、b、c)の面積の大きさが、図4に示すようなものであれば、最大面積ビュー面選択部14は、最も面積が大きいbの面を選択し、bの面は、YZビューから見た面であると判断する。このように、最も大きな面積の面を、基準ベクトルを作成するための候補として選択するのは、車体パネル25の場合、面積の大きい面が通常は表面または裏面となる可能性が高いからである(S3)。
【0051】
ビュー面基準ベクトル作成部15は、最大面積ビュー面選択部14から送られてきた面の面積から、その物体が大物物品であるか、大物物品でないかを判断する。大物物品であるか、大物物品でないかの判断は、たとえば面の面積が1m2よりも大きいか、小さいかによって行われる(S4)。
【0052】
大物物品であると判断されたときには、ビュー面基準ベクトル作成部15は、最大面積ビュー面選択部14から送られてきたビューを調べる(S5)。
【0053】
判断されたビューが平面ビュー(X、Yビュー)であれば、+Z方向を基準ベクトルに設定する。図4でみれば、面cが選択された場合であり、基準ベクトルBcは、cの面から上に離れる方向に設定される(S6)。一方、認識されたビューが側面ビュー(Y、Zビュー)であれば、さらに、車体パネル25の面データから、車体パネル25を構成するすべての面のX座標の平均値を求め(S7)、求めた平均値が正の値であれば(S8)、+X方向を基準ベクトルに設定する(S9)。一方、求めた平均値が負の値であれば(S8)、−X方向を基準ベクトルに設定する(S10)。このように、X座標の平均値が+か−かを求めるのは、車体パネル25がどちらの方向に凸形状になっているかを判断するためである。また、X座標の平均値が+か−かによって基準ベクトルの方向を決めているのは、車体パネル25の場合、一般的に、凸形状になっている方が表側となる可能性が高いからである。さらに、認識されたビューが正面ビュー(Z、Xビュー)であれば、+Y方向を基準ベクトルに設定する。図4でみれば、面aが選択された場合であり、基準ベクトルBaは、aの面から離れる方向(車両の後ろ方向)に設定される(S11)。
【0054】
大物物品でないと判断されたときには(S4)、ビュー面基準ベクトル作成部15は、直方体作成部11が持っている、車体パネル25の面データを入力し、その面データに基づいて、最大面積ビュー面選択部14から送られてきたビューのどちら側(手前側、奥側)に凸であるかが判断され、その判断に基づいて基準ベクトルを作成する。どちら側に凸であるかの判断は、S8からS10のステップの説明と同じく、車体パネル25を構成するすべての面のX座標の平均値が+か−かを求めることによって行う(S12)。求めた平均値が正の値であれば、+X方向を基準ベクトルに設定する。一方、求めた平均値が負の値であれば、−X方向を基準ベクトルに設定する。つまり、凸形状になっている方の面が表側になるように基準ベクトルを設定する(S13)。
【0055】
車体パネル25の場合、ほとんどは金型プレスで形成されるため、形状の特徴を単品で見ると、どちらかの側が膨らんでいて、閉じているものはほとんどない。また、車体パネル25は、その膨らんでいる面の方を外側にして組みつけられる場合が一般的であり、膨らんでいる面の方を表になるように基準ベクトルを設定したほうが面の抜けが生じる確率が少なくなる。ただし、このような基準ベクトルの設定を、すべてのパネルに対して適用してしまうと、たとえば、ホイールハウス系やフロアー系のパネルでは、必ずしも面の抜けが生じる確率が少なくなるとは限らなくなる。また、一般に、大物と呼ばれる物品は、前述のように、ビューによって表の方向を決定しても、面の抜けが生じる確率は少ない。このように、車体部品の特性を考慮して面の表の方向を決定すれば、本来は表と判断されるべき面が間違って裏と判断されることが少なくなり、現実的な方向の決定ができるようになる。
【0056】
つぎに、第2の処理について説明する。この処理は、図10および図11に示してあるフローチャートの手順で実行される。
【0057】
面法線ベクトル作成部12は、データ入力部10から出力された面データから、1つの面に相当する面データを入手し(S20)、その面の中心付近の法線ベクトルを、たとえば、特開平5−67219号公報にも開示されているような従来の方法で作成する。
【0058】
なお、中心付近の法線ベクトルを求めるのは、車体パネル25の場合、たとえば90度以上の角度で曲がっているような、極端に曲がった曲面を有していることはほとんど考えられないからであり、中心付近の法線ベクトルを求めれば、ほとんどの場合、車体パネル25の面の方向を特定することができるからである。
【0059】
この考え方に基づいて図5に示すような形状のパネル27に対して各面の法線ベクトルを求めると、各面に対して図5および図6に示すような方向の法線ベクトルAa、Ab、Ac、Adが作成されることになる。
【0060】
面の法線ベクトルの方向は、その面の表裏を表す。たとえば、法線ベクトルの方向がその面から外側に向かう方向であれば、その面は光線の当たる表の面となり、逆に、法線ベクトルの方向がその面に向かう方向であれば、その面は光線の当たらない裏の面となる(S21)。
【0061】
その面の法線ベクトルを求めることができたら(S21:YES)、つぎに、交差角度判断部16は、面法線ベクトル作成部12によって作成されたその面の法線ベクトルと、図5に示した、第1の処理で求められた基準ベクトル(X、Y、Zの3方向のいずれか)とが成す角度を求める。つまり、ある面の法線ベクトルと基準ベクトルとの交差角度を求める。図5に示したパネル27の場合、たとえば法線ベクトルAaと基準ベクトルBbとの交差角度が求められる(S22)。
【0062】
なお、S21のステップでその面の法線ベクトルを求めることができなかったときには(S21:NO)処理を終了し、S20のステップに戻って、次の面の面データを入手する。
【0063】
交差角度判断部16は、求めた交差角度が90度を超える場合には(S23:θ>90°)、面法線ベクトル作成部12によって作成された法線ベクトルの方向が反対であると判断し、その法線ベクトルの向きを180度反転させる。つまり、その面の表方向と判断された方向を、裏方向と判断させるようにする(S24)。一方、求めた交差角度が90度よりも小さければ(S23:θ<90°)、作成された法線ベクトルの方向は正しいと判断し、法線ベクトルの方向はそのままにする。そして、S20のステップに戻って、次の面の面データを入手する。さらに、求めた交差角度が90であれば、その法線ベクトルを有する面の識別子を記憶すると共に、その面に関する情報にその識別子の情報を付加する(S25)。以上の処理は、車体パネルを構成するすべての面について1面ずつ行われる。
【0064】
たとえば、以上の処理を図5に示したような形状のパネルに対して行うと、法線ベクトルAaと法線ベクトルAdは基準ベクトルBaに対して90度以上の交差角度を有しているので、法線ベクトルAaの方向は180度反転される。また、法線ベクトルAbは、基準ベクトルBaに対して90度の交差角度を有しているので、その面の識別子が記憶される。
【0065】
以上の処理が終了すると、引き続き、交差角度がちょうど90度であった面(垂直面)の法線ベクトルの方向が正しいか否かを判断するための処理が行われる。まず、隣接面抽出部17は、記憶している面の識別子を取得する(S30)。識別子が記憶されていなければ(S30:ない)、垂直面が存在しないので、処理を終了し、識別子が記憶されていれば(S30:ある)、その垂直面に隣接する面(隣接面)を抽出する。たとえば、図6に示したように、パネル27を基準ベクトルBbとは逆の方向から見たときに、垂直面dに隣接する面は、隣接面e、fであるので、隣接面抽出部17は、隣接面e、fを抽出することになる(S31)。
【0066】
次に、基準ベクトル方向高さ比較部18は、隣接面eの基準ベクトルBb方向の高さと隣接面fの基準ベクトルBb方向の高さとを比較する(S32)。そして、垂直面基準ベクトル作成部19は、基準ベクトル方向高さ比較部18によって比較された隣接面の、高さが高い面から低い面に向かう方向の基準ベクトルを、垂直面dに対して作成する。隣接面eの基準ベクトルBb方向の高さは、隣接面fの基準ベクトルBb方向の高さよりも低いので、垂直面基準ベクトル作成部19は、図7に示すように、隣接面fから隣接面eに向かう方向の基準ベクトルCbを垂直面dに対して作成する(S33)。
【0067】
最後に、面法線ベクトル揃え部20は、垂直面基準ベクトル作成部19によって作成された垂直面dの基準ベクトルCbと面法線ベクトル作成部12によって作成されたその垂直面dの法線ベクトルAbとの交差角度を求める(S34)。その交差角度が90度以下であれば(S35:90度以下)、その法線ベクトル方向が正しいと判断して処理を終了し、識別子の記憶されている次の面に対して処理を行う。一方、その交差角度が90度を超えていれば(S35:90度より大きい)、その垂直面の法線ベクトルの方向を180度反転させる。たとえば、図8に示すように、垂直面dの法線ベクトルAbは図6に示すような下向きであり、垂直面基準ベクトル作成部19がその垂直面に対して作成した基準ベクトルCbは図7に示すように上向きである。法線ベクトルAbと基準ベクトルCbとの交差角度180度であるから、法線ベクトルAb方向は180度反転されて、上向きの方向の法線ベクトルAbに変更される(S36)。
【0068】
以上に説明した第2の処理が行われることによって、当初は各面に対して図のように設定されていた法線ベクトルの方向が(実行前参照)、正しい方向に自動的に揃えられる(実行後参照)。
【0069】
本実施の形態では、次のような効果が期待できる。車体パネルは板を折り曲げて作成されているために、パネル面の法線ベクトルが基準ベクトルと垂直(基準ベクトルとパネル面が平行)な場合でも、隣接面の法線ベクトルから面の方向を規定することができる。このような規定ができるようになった結果、これまでは困難であった、垂直面の向きを正しい向きに変更できるようになった。また、隣接面を隣接関係を使用することなく探すことができるので、面データの精度が不十分な場合でも、対応することができる。
【0070】
また、垂直面の法線ベクトルを正しく揃えるためには、隣接面の法泉ベクトルの方向も正しい方向でなければならないが、本実施形態の処理では、垂直面以外の面の方向を正しく揃えてから、垂直面の向きを揃えているので、すべての面を正しい向きにすることができる。
【0071】
さらに、本実施の形態では、法線ベクトルと基準ベクトルの交差角度にしたがって、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えるようにしたので、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面(交差、離れなど)が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の表裏を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このため、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
【図面の簡単な説明】
【図1】本発明にかかる図形表裏設定装置の概略構成を示すブロック図である。
【図2】自動車の車体パネルの形状の一例を示す図である。
【図3】車体パネルを包含する直方体を作成する処理の説明に供する図である。
【図4】直方体の各ビューの面積を求める処理の説明に供する図である。
【図5】垂直面と隣接面を抽出する処理の説明に供する図である。
【図6】垂直面と隣接面との位置関係、法線ベクトルと基準ベクトルとの方向を示す図である。
【図7】垂直面に対して基準ベクトルを引く処理の説明に供する図である。
【図8】垂直面に対して引かれた法線ベクトルを180度反転させる処理の説明に供する図である。
【図9】基準ベクトルの方向を求める第1の処理を示すフローチャートである。
【図10】各面の法線ベクトルの方向を揃える第2の処理を示すフローチャートである。
【図11】各面の法線ベクトルの方向を揃える第2の処理を示すフローチャートである。
【符号の説明】
10…データ入力部、
11…直方体作成部、
12…面法線ベクトル作成部、
13…ビュー面面積演算部、
14…最大面積ビュー面選択部、
15…ビュー面基準ベクトル作成部、
16…面法線ベクトル揃え部、
17…隣接面抽出部、
18…基準ベクトル方向高さ比較部、
19…垂直面基準ベクトル作成部、
20…面法線ベクトル揃え部、
21…データ出力部、
25、27…車体パネル、
30…直方体。
Claims (6)
- 物体を構成する面の面データを入力する入力手段と、
前記面データに基づいて、前記物体を構成する面の法線ベクトルを作成する面法線ベクトル作成手段と、
前記面データに基づいて、前記物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を、直方体を構成する各辺が、3次元直交座標系のX軸、Y軸、Z軸のいずれかの軸に平行になるように作成する直方体作成手段と、
作成された直方体を構成する面のうち、最も面積が大きい面を選択する最大面積ビュー面選択手段と、
前記最大面積ビュー面選択手段によって選択された面が、X、Yビュー、Y、Zビュー、Z、Xビューのいずれから見た面であるのかを判断し、X、Yビューであれば、+Zの方向を基準ベクトルの方向に設定し、Y、Zビューであれば、前記選択された面の凸方向を判断して凸方向である+Xまたは−Xの方向を基準ベクトルの方向に設定し、Z、Xビューであれば、+Yの方向を基準ベクトルの方向に設定し、前記最大面積ビュー面選択手段によって選択された面の基準ベクトルを作成するビュー面基準ベクトル作成手段と、
前記面法線ベクトル作成手段によって作成された法線ベクトルと前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルとの交差角度が90度であるか否かを判断する交差角度判断手段と、
前記交差角度が90度であれば、前記基準ベクトルの方向とは逆の方向から前記物体を見て、前記基準ベクトルとの交差角度が90度の法線ベクトルを有する垂直面に隣接する隣接面を抽出する隣接面抽出手段と、
抽出された各隣接面の前記基準ベクトル方向の高さを比較する基準ベクトル方向高さ比較手段と、
高さが高い面から低い面に向かう方向の基準ベクトルを前記垂直面に対して作成する垂直面基準ベクトル作成手段と、
前記垂直面基準ベクトル作成手段によって作成された前記垂直面の基準ベクトルと前記垂直面の法線ベクトルとの交差角度が90度を超えていれば、前記垂直面の法線ベクトルの方向を180度反転させる面法線ベクトル揃え手段とを有することを特徴とする図形表裏設定装置。 - 前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物物品であるか、小物物品であるかを判断し、小物物品であれば、前記選択された面の凸方向を判断して凸方向であるX、Y、Zのいずれかの+または−方向を基準ベクトルの方向に設定することを特徴とする請求項1に記載の図形表裏設定装置。
- 前記垂直面基準ベクトル作成手段は、前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルの方向が+Xまたは−X、+Yまたは−Yのいずれかの方向であるときには、+Zまたは−Zの方向を前記垂直面に対して作成する基準ベクトルの方向とし、前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルの方向が+Zまたは−Zの方向であるときには、+Xまたは−X、+Yまたは−Yのいずれかの方向を前記垂直面に対して作成する基準ベクトルの方向とすることを特徴とする請求項1に記載の図形表裏設定装置。
- 前記交差角度判断手段によって、前記法線ベクトルと前記基準ベクトルとの交差角度が90度であると判断されたときには、前記基準ベクトルとの交差角度が90度の法線ベクトルを有する垂直面に識別子を設定する識別子設定手段をさらに有し、前記面法線ベクトル揃え手段は、前記識別子を頼りに前記垂直面の法線ベクトルの方向を180度反転させることを特徴とする請求項1に記載の図形表裏設定装置。
- データ入力部によって、物体を構成する面の面データを入力する段階と、
前記面データに基づいて、前記物体を構成する面の法線ベクトルを、面法線ベクトル作成部によって作成する段階と、
前記面データに基づいて、前記物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を、直方体を構成する各辺が、3次元直交座標系のX軸、Y軸、Z軸のいずれかの軸に平行になるように、直方体作成部によって作成する段階と、
作成された直方体を構成する面のうち、最も面積が大きい面を、最大面積ビュー面選択部によって選択する段階と、
前記最大面積ビュー面選択部によって選択された面が、X、Yビュー、Y、Zビュー、Z、Xビューのいずれから見た面であるのかを判断し、X、Yビューであれば、+Zの方向を基準ベクトルの方向に設定し、Y、Zビューであれば、前記選択された面の凸方向を判断して凸方向である+Xまたは−Xの方向を基準ベクトルの方向に設定し、Z、Xビューであれば、+Yの方向を基準ベクトルの方向に設定し、前記最大面積ビュー面選択部によって選択された面の基準ベクトルを、ビュー面基準ベクトル作成部によって作成する段階と、
作成された法線ベクトルと作成された基準ベクトルとの交差角度が90度であるか否かを、交差角度判断部によって判断する段階と、
前記交差角度が90度であれば、前記基準ベクトルの方向とは逆の方向から前記物体を見て、前記基準ベクトルとの交差角度が90度の法線ベクトルを有する垂直面に隣接する隣接面を、隣接面抽出部によって抽出する段階と、
抽出された各隣接面の前記基準ベクトル方向の高さを、基準ベクトル方向高さ比較部によって比較する段階と、
高さが高い面から低い面に向かう方向の基準ベクトルを、垂直面基準ベクトル作成部によって前記垂直面に対して作成する段階と、
前記垂直面に対して作成された基準ベクトルと前記垂直面の法線ベクトルとの交差角度が90度を超えていれば、前記垂直面の法線ベクトルの方向を、面法線ベクトル揃え部によって180度反転させる段階と、
を含むことを特徴とする図形表裏設定方法。 - 前記交差角度が90度であるか否かを判断する段階の後に、当該段階で、当該交差角度が90度であると判断されたときには、前記隣接面抽出部によって、前記基準ベクトルとの交差角度が90度の法線ベクトルを有する垂直面に識別子を設定する段階をさらに含み、
前記垂直面の法線ベクトルの方向を180度反転させる段階では、前記識別子を頼りに、面法線ベクトル揃え部によって、前記法線ベクトルの方向を反転させることを特徴とする請求項5に記載の図形表裏設定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002151102A JP4032828B2 (ja) | 2002-05-24 | 2002-05-24 | 図形表裏設定装置および図形表裏設定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002151102A JP4032828B2 (ja) | 2002-05-24 | 2002-05-24 | 図形表裏設定装置および図形表裏設定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003346174A JP2003346174A (ja) | 2003-12-05 |
JP4032828B2 true JP4032828B2 (ja) | 2008-01-16 |
Family
ID=29768787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002151102A Expired - Fee Related JP4032828B2 (ja) | 2002-05-24 | 2002-05-24 | 図形表裏設定装置および図形表裏設定方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4032828B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4765063B2 (ja) * | 2005-04-04 | 2011-09-07 | 国立大学法人電気通信大学 | 3次元cadシステム及びソリッドモデルの作成方法 |
JP4774955B2 (ja) * | 2005-11-28 | 2011-09-21 | 大日本印刷株式会社 | 面データの法線方向変更方法、面データの法線方向変更装置及び処理プログラム等 |
CN113658246A (zh) * | 2021-07-27 | 2021-11-16 | 中航西安飞机工业集团股份有限公司 | 一种曲面正侧判定和调整方法 |
-
2002
- 2002-05-24 JP JP2002151102A patent/JP4032828B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003346174A (ja) | 2003-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111275820B (zh) | 基于二维平面绘制三维墙体方法、装置、终端和存储介质 | |
JP4776531B2 (ja) | 地図情報生成装置、地図情報生成方法、および地図情報生成プログラム | |
US20230015214A1 (en) | Planar contour recognition method and apparatus, computer device, and storage medium | |
US6844876B2 (en) | Apparatus and method for generating 3D graphics | |
JP4973447B2 (ja) | 差異強調プログラム、差異強調処理方法及び差異強調処理装置 | |
JPH0749960A (ja) | ソリッドモデル合成装置及び合成方法 | |
JP4032828B2 (ja) | 図形表裏設定装置および図形表裏設定方法 | |
JP2000235407A (ja) | 表示方法及び表示プログラムを記録したコンピュータ読み取り可能な記録媒体及び表示装置 | |
JP3900839B2 (ja) | 図形表裏設定装置および図形表裏設定方法 | |
CN112692833B (zh) | 一种标定块、机器人标定方法、标定装置以及存储介质 | |
CN114581292A (zh) | 一种二维图像的三维标注方法及装置 | |
JP4101677B2 (ja) | 動作シミュレーション装置 | |
JP2001265834A (ja) | 板金製造設備全体にわたって設計製造情報を管理し分配する装置及び方法 | |
KR20020027581A (ko) | 투명체의 동적 투시 변형 평가방법 및 투명체의 삼차원형상 설계 지원 방법 | |
JP4840018B2 (ja) | 形状データ検索プロブラム及び方法 | |
JP4630485B2 (ja) | 隠線処理方法 | |
JP3490169B2 (ja) | 三次元アニメーション処理システム及び処理方法 | |
CN107871043B (zh) | 奇异点的识别方法及装置 | |
JPS625482A (ja) | 三次元ワイヤ−フレ−ムモデルの隠線処理方法 | |
JP3715680B2 (ja) | 幾何形状モデルの表示方法及びその装置 | |
JPS60201473A (ja) | 三面図入力装置 | |
CN114692258A (zh) | 建筑模型处理方法及装置 | |
CN116263975A (zh) | 一种箭头处理方法、装置、存储介质及计算机设备 | |
CN116305681A (zh) | 包络线生成方法、装置、电子设备及存储介质 | |
JP2002042160A (ja) | 3次元形状処理装置、3次元形状処理方法およびその方法を実施するためのプログラムを記憶した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070731 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070913 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071015 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |