JP2828759B2 - Free-form surface division method - Google Patents

Free-form surface division method

Info

Publication number
JP2828759B2
JP2828759B2 JP2249579A JP24957990A JP2828759B2 JP 2828759 B2 JP2828759 B2 JP 2828759B2 JP 2249579 A JP2249579 A JP 2249579A JP 24957990 A JP24957990 A JP 24957990A JP 2828759 B2 JP2828759 B2 JP 2828759B2
Authority
JP
Japan
Prior art keywords
polygon
points
base
point
polygons
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
Application number
JP2249579A
Other languages
Japanese (ja)
Other versions
JPH04127378A (en
Inventor
エイドン・オーニール
晃市 今野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2249579A priority Critical patent/JP2828759B2/en
Publication of JPH04127378A publication Critical patent/JPH04127378A/en
Application granted granted Critical
Publication of JP2828759B2 publication Critical patent/JP2828759B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】 技術分野 本発明は、グラフィックスや3次元CAD(Computed Ai
ded Design)システムにおける自由曲面の分割方法に関
し、より詳細には、シェイディング(shading;陰付け)
や隠れ線等において曲面をポリゴンに分割する方法に関
する。
Description: TECHNICAL FIELD The present invention relates to graphics and three-dimensional CAD (Computed Ai
ded Design) For more information on how to divide a free-form surface in a system, see shading.
The present invention relates to a method of dividing a curved surface into polygons at a hidden line or a hidden line.

従来技術 従来技術には、トリムド曲面をレンダリング(描写)
するための方法はほとんど存在していなかった。トリム
ド曲面とは、設計の段階で2曲面間の干渉計算や平面で
の切断等で曲面の境界が変更されたり、また曲面上に穴
をあけたりしてできあがった曲面をいう。トリムド曲面
の利点は曲面の境界が変更されたとしても、もとの曲面
データが保持されることである。
Conventional technology Conventional technology renders (depicts) a trimmed surface
There were few ways to do this. The trimmed surface refers to a surface formed by changing the boundary of the surface by calculation of interference between two surfaces, cutting by a plane, or making a hole in the surface at the design stage. The advantage of the trimmed surface is that the original surface data is retained even if the boundary of the surface is changed.

本発明は、このような曲面を簡単に3角形分割できる
ように設計してある。トリムド曲面をポリゴンに分割す
る従来の方法は、曲面自身を分割してその曲面をリパッ
チし、この分割した曲面をさらに3角形分割していた。
この方法の問題は、リパッチした曲面データを正確でな
いためにあらさの問題がでてきる。また、リパッチング
によって生成されたパッチ間のG1接続(面と隣の面との
連続性−滑らかさ−の度合)にも問題がある。
The present invention is designed so that such a curved surface can be easily divided into triangles. In a conventional method of dividing a trimmed surface into polygons, the surface itself is divided, the surface is re-patched, and the divided surface is further divided into triangles.
The problem with this method is that the re-patched surface data is not accurate, which causes a problem of roughness. Also, G 1 connections between patches generated by Ripatchingu is (continuity of the surface and the adjacent surface - degree - smoothness) on the problem.

Rockwoodらは、実時間でトリムドリパッチをviewing
座標系で分割し、レンダリング(描写)するモジュラア
プローチについて述べている。この方法はトリミング範
囲を、パラメータ空間で各範囲を含む曲線の単一の閉ル
ープに分割している。これらの範囲に分割するために
は、Newton法を使ってトリミング曲線の局所的な最大と
最小を見つけなければならない。Newton法の繰り返しに
よるオーバーヘッドがあり、また、トリミング範囲が分
割されるためにこの方法ではクラッキングが生じる。本
発明における方法は初めにベースとなる1つのポリゴン
を作るだけでトリミング範囲をパッチには分割しない。
Rockwood and colleagues view trimmed patches in real time
It describes a modular approach to segmenting and rendering in a coordinate system. This method divides the trimming range into a single closed loop of curves containing each range in parameter space. To divide into these ranges, we must find the local maxima and minima of the trimming curve using the Newton method. There is overhead due to the repetition of the Newton method, and cracking occurs in this method because the trimming range is divided. The method of the present invention does not divide the trimming area into patches, but only creates one base polygon first.

多くのCADシステムでは、その曲面表現としてNURBS
(non−uniform rational B−spline)を用いている。
従ってNURBSを扱う多くのアプリケーションが提案され
ている。修正前進差分を使ったトリムドNURBSをレンダ
リングする方法も提案されているが、それはたいへん複
雑である。
Many CAD systems use NURBS as their surface representation
(Non-uniform rational B-spline).
Therefore, many applications dealing with NURBS have been proposed. Rendering of trimmed NURBS using modified forward difference has also been proposed, but it is very complex.

目的 本発明は、上述のごとき実情に鑑みてなされたもの
で、単純な手法によって曲面のポリゴンを三角形に分割
することを対象としている自由曲面の分割方法を提供す
ることを目的としてなされたものである。
The present invention has been made in view of the above situation, and has been made to provide a method of dividing a free-form surface, which is intended to divide a polygon of a curved surface into triangles by a simple method. is there.

構成 本発明は、上記目的を達成するために、3次元CADシ
ステムにおいて、曲面の境界と穴の境界曲線をポリライ
ンに分割して、すべての境界曲線の曲面をポリラリン化
し、該ポリラリン・データを曲面の2次元パラメータ空
間にマップし、2次元パラメータ空間へマップされた外
側の曲面境界をベースのポリゴンとして、2次元パラメ
ータ空間上でベースポリゴンと曲面の穴を構成するポリ
ゴンとの最短距離になる点を探し、その最短距離をなす
点同士を結び穴を構成するポリゴンをベースポリゴンに
つなげて、3次元空間上の曲面の境界を2次元パラメー
タ空間上で1つのポリゴンにし、曲面に対応する2次元
パラメータ空間のポリゴンに含まれる点を除いて、3次
元空間での曲面の点に対応する2次元パラメータ空間上
の内部点を加え、必要なとき前記内部点をも使ってメイ
ン・ポリゴンを三角ポリゴンに分骨し、該分割されたポ
リゴンを2次元パラメータ空間からもとの3次元空間に
戻すようにし、トリムされた自由曲面をポリゴンに変換
することを特徴としたものである。以下、本発明の実施
例に基づいて説明する。
In order to achieve the above object, the present invention provides a three-dimensional CAD system in which a boundary curve of a curved surface and a boundary curve of a hole are divided into polylines, all the curved surfaces of the boundary curves are poly-lined, and the poly-line data is converted to a curved surface. The point that becomes the shortest distance between the base polygon and the polygon that forms the hole in the curved surface in the two-dimensional parameter space, using the outer surface boundary mapped to the two-dimensional parameter space as the base polygon. , Connect the points that form the shortest distance to each other, connect the polygons that make up the hole to the base polygon, convert the boundary of the curved surface in three-dimensional space into one polygon in two-dimensional parameter space, Except for the points included in the polygon in the parameter space, add the internal points in the two-dimensional parameter space corresponding to the points of the curved surface in the three-dimensional space, When necessary, the main polygon is divided into triangular polygons using the internal points, and the divided polygons are returned from the two-dimensional parameter space to the original three-dimensional space. It is characterized by being converted into. Hereinafter, a description will be given based on examples of the present invention.

本発明は、次の処理(A),(B)を行う。 The present invention performs the following processes (A) and (B).

(A)曲面の境界からポリゴンを作る。(A) Create a polygon from the boundary of a curved surface.

曲面の境界とすべての穴をたどりながら、ポリゴンを生
成する。
Generate polygons, following the surface boundaries and all holes.

(B)メイン・ポリゴンの三角形分割をする。(B) Triangulate the main polygon.

もとのポリゴンが3角形ポリゴンになるまで、分割を繰
り返す。
The division is repeated until the original polygon becomes a triangular polygon.

ここで上記の2つの処理(A),(B)は深さ方向で
考える。以下に、前記処理(A),(B)の各処理を順
に説明する。
Here, the above two processes (A) and (B) are considered in the depth direction. Hereinafter, each of the processes (A) and (B) will be described in order.

第1図は、本発明による自由曲面の分割方法の処理
(A)を説明するためのフローチャートである。以下、
処理(A)について説明する。
FIG. 1 is a flowchart for explaining the process (A) of the method for dividing a free-form surface according to the present invention. Less than,
The processing (A) will be described.

処理(A);曲面の境界からポリゴンを作る この処理(A)の目的は、もとの曲面境界とその曲面
の穴を表す曲線をたどっていくことによってポリゴンを
作ることにある。ポリゴンのエッジはすべて直線分であ
り、すべての曲線稜線は一定の分割数で直線分に分割さ
れる。ポリゴンを格納する構造体は以下に示す第1表の
ようである。
Process (A): Creating a polygon from a boundary of a curved surface The purpose of this process (A) is to create a polygon by following a curve representing an original curved surface boundary and a hole of the curved surface. All edges of the polygon are straight segments, and all curved ridges are divided into straight segments by a fixed number of divisions. The structure for storing polygons is as shown in Table 1 below.

この処理(A)が終了したときのこの構造は、3次元
空間中の点が配列ptabRに格納され、2次元のパラメー
タ空間中の点はptabPに格納される。パラメータ空間中
の点は画面上の点におけるパラメータu,vによって表さ
れており、その点は2次元空間で表される。この概念に
よって第2ステージでポリゴンを3角形分割するとき大
変スピードアップできる。
In this structure when this processing (A) is completed, points in the three-dimensional space are stored in the array ptabR, and points in the two-dimensional parameter space are stored in ptabP. Points in the parameter space are represented by parameters u and v at points on the screen, and the points are represented in a two-dimensional space. With this concept, the speed can be greatly increased when the polygon is divided into triangles in the second stage.

この処理(A)では、画面の分割数に応じた個数の内
部点を生成する。この内部点を付加する目的は生成され
るポリゴンの形状ができるだけ正三角形に近づくように
するためである。
In this process (A), the number of internal points corresponding to the number of screen divisions is generated. The purpose of adding the internal points is to make the shape of the generated polygon as close as possible to an equilateral triangle.

この処理(A)は、次のステップから構成される。 This processing (A) includes the following steps.

step1;曲面の境界からベースとなるポリゴンを作る。step1; Create a base polygon from the boundary of the curved surface.

step2〜4;それぞれの穴を個々のポリゴンとする。step2-4; Each hole is made into an individual polygon.

step5;ベース・ポリゴンに他の生成されたすべてのポリ
ゴンを結合する。
step5; Join all other generated polygons to the base polygon.

step6;内部点を加える 以下、各stepについて順に説明する。step6; add internal points Hereinafter, each step will be described in order.

step1;ベース・ポリゴンを作る。step1; Make a base polygon.

曲線の各境界の稜線に対して、終端点とその終端点の
曲面上のパラメータ値を求め、ポリゴン構造体にすべて
のデータを格納する。ポリゴンの変数tabsize1は、格納
した点の数を記憶しておく。すべての曲線稜線はさらに
直線分に分割される。ポリゴン変数bondは、この処理で
すべての直線分に対して1を設定する。格納されたすべ
ての点は、配列構造ptabPとptabRにあるその点の座標の
アドレスに対応した唯一の数id(頂点)を与えられる。
このポリゴンをベース・ポリゴンと呼ぶ。この処理で
は、すべての点で変数bondは1の状態である。第3図
(a)の例では、ベースポリゴンのidは1,2,3,4であ
る。
For the ridge line at each boundary of the curve, the terminal point and the parameter values on the curved surface at the terminal point are obtained, and all data are stored in the polygon structure. The polygon variable tabsize1 stores the number of stored points. All curved edges are further divided into straight line segments. The polygon variable bond is set to 1 for all straight line segments in this process. Every stored point is given a unique number id (vertex) corresponding to the address of that point's coordinates in the array structures ptabP and ptabR.
This polygon is called a base polygon. In this processing, the variable bond is 1 at all points. In the example of FIG. 3A, the ids of the base polygons are 1, 2, 3, and 4.

step2,3,4;それぞれの穴からポリゴンを生成する。step2,3,4; Generate polygons from each hole.

曲面上のそれぞれの穴に対して、上記のプロセスと同
様にして個々にポリゴンを作り、各ポリゴンのonepoly
にリンクして結合する。実際には、構造体One Polygon
のポインタnextにポリゴンを結合する。このステップで
もbondフラッグは、すべての点に対して1になる。第3
図(a)の例では、穴のidは、5,6,7としてポリゴンに
作られる。
For each hole on the curved surface, create polygons individually in the same way as the above process, and
Link to and join. In fact, the structure One Polygon
Join the polygon to the pointer next. In this step, the bond flag is set to 1 for all points. Third
In the example of FIG. 7A, the ids of the holes are created in the polygon as 5, 6, and 7.

step5;ベース・ポリゴンに他の生成されたすべてのポリ
ゴンを結合する。
step5; Join all other generated polygons to the base polygon.

ベース・ポリゴンがリンクされているリストonepoly
に他の生成されたポリゴンを結合する。
List onepoly to which the base polygon is linked
To other generated polygons.

結合の手順は次の様になっている。 The joining procedure is as follows.

ベース・ポリゴンの任意の点からベース・ポリゴン以
外のすべてのポリゴンに対して、最も近い距離のポリゴ
ンを見つける。結合する両端点の状態を調べ、もしいず
れかの点が2の状態(すでに他のポリゴンと結合されて
いる場合)であれば、その点は捨てる。また2つの点の
間に新しいエッジがベース・ポリゴンまたは候補のポリ
ゴンのいずれかと交差していないかどうかを調べ、交差
していれば、他の点を調べる。新しく作られたエッジの
bondフラグは、それがもとの境界ではないから値0を設
定する。2つの選ばれた点がすべての条件を満足したと
き、ベース・ポリゴン上の点と候補となったポリゴン上
の点を結び、2つのポリゴンをリンクする。2つのポリ
ゴンをリンクする時に、ベース・ポリゴンは反時計回り
に、候補ポリゴンは時計回りにたどることができること
に注意する必要がある。一緒にした2つのポリゴンは新
しいベース・ポリゴンとなり、ベース・ポリゴンはいつ
も反時計回りにたどれるように生成される。
Find the polygon that is the closest distance from any point of the base polygon to all polygons other than the base polygon. The state of both end points to be connected is checked, and if any point is in the state of 2 (when already connected to another polygon), the point is discarded. It also checks whether the new edge between the two points does not intersect with either the base polygon or the candidate polygon, and if so, checks the other points. Of newly created edges
The bond flag is set to a value of 0 because it is not the original boundary. When the two selected points satisfy all the conditions, a point on the base polygon is connected to a point on the candidate polygon, and the two polygons are linked. Note that when linking two polygons, the base polygon can be traced counterclockwise and the candidate polygon can be traced clockwise. The two polygons taken together become the new base polygon, and the base polygon is always generated in a counterclockwise fashion.

このstpe5は他のすべての候補について繰り返され、
最終的には1つのベース・ポリゴンのみが生成されるこ
とになる。
This stpe5 is repeated for all other candidates,
Eventually, only one base polygon will be generated.

第3図(b)の例では、ベース・ポリゴンの点2と穴
の点7の間の距離は最短であるから、2と7とは結合さ
せられ、ポリゴンが生成される。ポリゴンのidの配列id
sは、「1,2,7,5,6,7,2,3,4]である。状態フラグの意味
を第2表に示す。
In the example of FIG. 3B, since the distance between the point 2 of the base polygon and the point 7 of the hole is the shortest, 2 and 7 are combined to generate a polygon. Array id of polygon id
s is “1,2,7,5,6,7,2,3,4.” Table 2 shows the meanings of the status flags.

step6;内部点を加える。 step6; Add interior points.

曲面の型が平面の時を除いて、曲面の内部点をポリゴ
ン・データ構造に加える。これらの内部点は、ポリゴン
を作る上で曲面形状に近いポリゴンで且つ、ポリゴンの
形状がなるべく正三角形に近い形状にするために補助的
なデータとして追加する。また、各内部点は、ptabPとp
tabRにおける点の座標のアドレスに対応しているidを与
えられる。加えることのできる点の最大数は(divnum−
1)*(divnum−1)である。たとえば、分割数が4で
あるならば、点の最大数は9である。これらの内部点は
曲面のパラメータ空間上で一定の距離を持つように、曲
面パラメータu,vの増分をもとにした単純な手順を使っ
て生成される。任意の点が曲面上の穴に含まれているか
どうかをチェックして、含まれている場合はその点を採
用しない。
Add the interior points of the surface to the polygon data structure except when the surface type is flat. These internal points are added as auxiliary data in order to make the polygon a shape close to a curved surface when forming the polygon and to make the shape of the polygon as close to an equilateral triangle as possible. Also, each interior point is ptabP and p
Given an id corresponding to the address of the coordinate of the point in tabR. The maximum number of points that can be added is (divnum-
1) * (divnum-1). For example, if the number of divisions is four, the maximum number of points is nine. These interior points are generated using a simple procedure based on the increment of the surface parameters u and v so as to have a certain distance in the parameter space of the surface. Check if any point is included in the hole on the curved surface, and if so, do not use that point.

内部点がポリゴンに含まれているかどうかは、次のよ
うにして調べる。それはその点が曲面ポリゴンの中にあ
り、且つその曲面上のすべての穴の外にあるかどうかを
調べることである。この手順は2次元のライン・セグメ
ントの交差をもとにしており、手順自身は大変単純で速
いものである。
Whether or not an internal point is included in a polygon is checked as follows. That is, to check if the point is inside the surface polygon and outside any holes on the surface. This procedure is based on the intersection of two-dimensional line segments, and the procedure itself is very simple and fast.

パラメータ空間における2次元の任意の点を作る。Create an arbitrary two-dimensional point in the parameter space.

その点をチェックすべき点と結んで直線を作る 曲面ポリゴンのすべてのエッジとの交差をカウントす
る。
Make a straight line by connecting that point to the point to be checked. Count the intersections with all edges of the curved polygon.

そのカウントが偶数で終わったら、曲面境界の外側の
点である。
If the count ends with an even number, it is a point outside the surface boundary.

それぞれの穴に対して、穴ポリゴンのすべてのエッジ
との交差をカウントする。
For each hole, count the intersections with all edges of the hole polygon.

そのカウントが奇数で終わったら、穴の中にある点で
ある。
If the count ends in an odd number, it is in the hole.

第3図(c)は、点の状態つきのポリゴンを示してい
る。内部点はxで印されている。残りの点はポリゴンに
含まれていないので、分割数は4ではあるが、7個の点
が有効となっている。
FIG. 3 (c) shows a polygon with point states. Interior points are marked with x. Since the remaining points are not included in the polygon, the number of divisions is four, but seven points are valid.

内部点のidを格納するテーブルは、第3表の様に定義
している。
The table storing the ids of the internal points is defined as shown in Table 3.

また、メイン・ポリゴンの構造体にある変数tabsize
は、内部点の個数を格納してある。
Also, the variable tabsize in the structure of the main polygon
Stores the number of internal points.

第2図は、本発明による自由曲面の分割方法の処理
(B)を説明するためのフローチャートである。以下、
処理(B)について説明する。
FIG. 2 is a flowchart for explaining the process (B) of the method for dividing a free-form surface according to the present invention. Less than,
The processing (B) will be described.

処理(B);メイン・ポリゴンの三角形分割をする。Process (B): The main polygon is triangulated.

この処理(B)の第2段階では、ベース・ポリゴンを
3角形ポリゴンに分割する。内部点は3角形ポリゴンの
生成に使われる。この段階を終わると、ポリゴン・テー
ブルには、三角形分割されたすべてのポリゴンがリンク
されている。ここがスピードの評価のしどころである。
In the second stage of the processing (B), the base polygon is divided into triangular polygons. Interior points are used to generate triangular polygons. At the end of this step, the polygon table is linked to all triangulated polygons. This is where speed is evaluated.

この段階の手順は、次のステップから構成されてい
る。以下、各ステップに従って順に説明する。
The procedure at this stage includes the following steps. Hereinafter, the steps will be sequentially described.

step1;ベース・ポリゴンのベースエッジを割り当てる。step1; Allocate the base edge of the base polygon.

ベース・エッジはポリゴンのとこであっても良い。こ
こでは1番目と2番目の点を開始点とする。ベース・エ
ッジは3角形ポリゴンの1つのエッジを形作る。そのた
めに、3角形を形成するベース・エッジと繋げる第3の
点を見つける。
The base edge may be a polygon. Here, the first and second points are set as starting points. The base edge forms one edge of the triangular polygon. To do so, find a third point that connects to the base edge forming the triangle.

step2;処理するポリゴンがなければ終了する。step2; If there are no polygons to be processed, the process ends.

すべてのポリゴンは3つのエッジを持つ。 Every polygon has three edges.

step3,4;ポリゴンが3つのエッジを持つならば、次のポ
リゴンの新しいベース・エッジを得る。
step3,4; If the polygon has three edges, get a new base edge for the next polygon.

まず、ベース・ポリゴンで開始する。ベース・ポリゴ
ンの処理を続けていくと、たくさんのポリゴン(そのう
ちのいくつかは3以上のエッジを持っている)がリスト
にリンクされる。
First, start with the base polygon. As you continue to process the base polygons, many polygons (some of which have more than two edges) are linked to the list.

step5;ベース・エッジからすべての可能な候補点を得
る。
step5; Get all possible candidate points from the base edge.

ベースの点に結合可能な点はたくさんあるが、いくつ
かの点はベース・ポリゴンと交差するので不適当であ
る。ベース・エッジに近接したエッジに関係するすべて
の候補点を見つける。
There are many points that can be joined to the base point, but some are inappropriate because they intersect the base polygon. Find all candidate points related to edges that are close to the base edge.

step6;1点を選択する。step6; Select one point.

ベース・エッジに対して最大の角度を持つ候補点から
1点を選ぶ。すなわち、ベース・エッジの両端点に繋げ
るとき最大の角度を与えるものである。
One point is selected from candidate points having the maximum angle with respect to the base edge. That is, it gives the maximum angle when connecting to both end points of the base edge.

step7;3角分割したポリゴンを形成し、リストにリンク
する。
step7: Form a triangulated polygon and link to the list.

3角形ポリゴンを作るために、選んだ点とベース・エ
ッジとを結ぶ。このポリゴンをリストにリンクする。
Connect the selected point to the base edge to create a triangular polygon. Link this polygon to the list.

step8;ベース・ポリゴンとベース・エッジを変更して前
記step2へ戻る。
step8; Change the base polygon and base edge and return to step2.

ベース・ポリゴンは3角形ポリゴンを生成するために
更新する。3角形ポリゴンは、ベース・ポリゴンを分割
して、2つのポリゴンにしても良い。このうちの1つは
新しいベース・ポリゴンとなり、もう一つは後で処理す
るためにリストにリンクする。新しいベース・エッジを
更新する。
The base polygon is updated to generate a triangular polygon. The triangular polygon may be divided into two polygons by dividing the base polygon. One of these will be the new base polygon and the other will link to the list for later processing. Update a new base edge.

次に前記step5,6,8についてさらに詳しく説明する。 Next, the steps 5, 6, and 8 will be described in more detail.

step5;適切な候補点の選択 ベース・エッジに近接したエッジに依存して、適切な
候補点を選ぶ。第4表に示す構造が現在のベース・エッ
ジを保持するのに使われる。
step5; Selection of appropriate candidate point An appropriate candidate point is selected depending on the edge close to the base edge. The structure shown in Table 4 is used to hold the current base edge.

各近接するエッジとの角度には、凸または凹の2つの
場合が存在する。選択したすべての点は、ベース・エッ
ジに対して定義された境界を内側としなければならな
い。あるエッジに対する角度が凹であれば90度を使い、
その角度が凸であれば自分自身の角度を使う。もし点が
定義した境界の内部になければ、凹の角は90度ではなく
180度を使う。適切な点が見つからないときには、新し
いベース・エッジを選んで、この処理を繰り返す。ベー
ス・エッジとして同じ線上の点は、領域がゼロの3角形
となってしまうので選ばれないように気をつける。
There are two cases, convex or concave, at the angle with each adjacent edge. All selected points must be inside the boundary defined for the base edge. If the angle to a certain edge is concave, use 90 degrees,
If the angle is convex, use your own angle. If the point is not inside the defined boundary, the concave corner is not 90 degrees
Use 180 degrees. If no suitable point is found, select a new base edge and repeat this process. Care should be taken not to select a point on the same line as the base edge because the area will be a zero triangle.

第4図(a)は、2つの凸の角が存在する時の探索空
間を矢印で示している。
FIG. 4 (a) shows the search space when there are two convex corners with arrows.

第4図(b)は、凸の角と凹の角とが存在する時の探
索空間を矢印で示している。
FIG. 4 (b) shows the search space when there are convex corners and concave corners with arrows.

第4図(c)は、2つの凹の角が存在する時の探索空
間を矢印で示している。凹の角では90度であるが、探索
空間が点を持たないときはその角を180度に増やす。候
補点を選択するときに、使われるベース・エッジの構造
中の点については、その角だけである。これは選択過程
を独立に行わせるので、大変コンパクトとなる。
FIG. 4 (c) shows the search space when there are two concave corners with arrows. The angle is 90 degrees for a concave corner, but if the search space has no points, the angle is increased to 180 degrees. When selecting a candidate point, the only point in the structure of the base edge used is its corner. This makes the selection process independent and therefore very compact.

step6;選択過程で1つの点を選ぶ ベース・エッジの両端点と点との間で作る角度のうち
で最大の角を与える点を選ぶ。この様子を第5図(a)
に示す。ふたつの候補点3と4が存在する。ベース・エ
ッジと点3とから形成される角度はベース・エッジと点
4とで作る角度よりも大きい。従って点3を選び、点3
で作られるポリゴンは点3,10,11から形成される。この
様子を第5図(b)に示す。
step6; Select one point in the selection process Select the point that gives the largest angle among the angles made between the points and both ends of the base edge. This situation is shown in FIG.
Shown in There are two candidate points 3 and 4. The angle formed by the base edge and point 3 is greater than the angle formed by the base edge and point 4. Therefore, choose point 3 and point 3
Is formed from points 3,10,11. This is shown in FIG. 5 (b).

step8;ベースのポリゴンの更新 ベース・エッジと結合する時に選ぶことのできる点に
は2つ型がある。すなわち現在のベース・ポリゴンの境
界上の点と内部点である。境界上の点が拾われると、ベ
ース・ポリゴンを拾った点の左の部分と右の部分との2
つの部分に分ける。このアルゴリズムでは、2つの部分
に分けるときには、たくさんの点を持つ部分をベース・
ポリゴンとして残し、他の部分は後で処理するためにポ
リゴン・テーブルに保持され、新しいポリゴンとなる。
この保持されたポリゴンの点は新しいベース・ポリゴン
から消去し、点の状態を更新しなければならない。もし
選択した点が、2つ状態を持つ(すなわち重複してい
る)ならば、ベース・ポリゴンの部分を決定するのに特
別なチェックをする。
step8; Updating the base polygon There are two types of points that can be selected when combining with the base edge. That is, the points on the boundary of the current base polygon and the interior points. When a point on the boundary is picked up, two parts, the left part and the right part of the point that picked up the base polygon,
Divided into two parts. In this algorithm, when dividing into two parts, the part with many points is
The other parts are kept in a polygon table for later processing and become new polygons.
This retained polygon point must be deleted from the new base polygon and the point state updated. If the selected point has two states (ie, overlaps), a special check is made to determine the portion of the base polygon.

ベース・ポリゴンの更新については、以下に詳しく説
明する。
Update of the base polygon will be described in detail below.

点と状態の更新 ベース・ポリゴンを更新するときには、以下の3つの
ケースがある。
Updating points and states There are three cases when updating a base polygon.

(ケース1):ベース・エッジに近接した点を拾う場合 ベース・エッジの点の1つをベース・ポリゴン・リス
トから消す。第6図(a)と第6図(b)の例では、点
14はベース・エッジに近接しているので拾われる。更新
されたベース・ポリゴンにはベースエッジの残りの点を
含めない。
(Case 1): When picking up a point close to the base edge One of the points of the base edge is deleted from the base polygon list. In the example of FIGS. 6 (a) and 6 (b),
14 is picked up because it is close to the base edge. The updated base polygon does not include the remaining points of the base edge.

(ケース2):内部点を拾う場合 選択した点はベース・ポリゴン・リストに加えられ、
内部点の状態は1となる。第6図(c)と第6図(d)
の例では、更新されたベース・ポリゴンは、新たに作ら
れた2つのベース・エッジの内側に内部点を含んでい
る。
(Case 2): When picking up internal points The selected points are added to the base polygon list,
The state of the internal point is 1. FIG. 6 (c) and FIG. 6 (d)
In the example, the updated base polygon contains interior points inside the two newly created base edges.

(ケース3):ベース・ポリゴンを分けるポリゴン上の
点を拾う場合 ベース・ポリゴンは、1つは新しいベース・ポリゴン
となる部分と、後の処理のためにポリゴン・リストにく
わえられる他の部分との2つに分かれる。第6図(e)
と第6図(f)の例では、もとのポリゴンは新しい3角
形ポリゴンと2つのポリゴン(まだ処理しなければなら
ない)とに分けられる。左の部分のポリゴンのidは13,1
4,15,16,9であり、右の部分のポリゴンのidは10,11,12,
13である。左の部分のポリゴンは、たくさん点を含むの
で新しいベース・ポリゴンとなる。右の部分のポリゴン
は3点以上持っているので後の処理のためにポリゴン・
リストにリンクされる。
(Case 3): When picking up points on the polygon that separates the base polygon The base polygon is divided into two parts: a part that becomes a new base polygon and another part that is added to the polygon list for later processing. Divided into two. FIG. 6 (e)
In the example of FIG. 6 (f), the original polygon is divided into a new triangular polygon and two polygons (still to be processed). The id of the polygon on the left is 13,1
4,15,16,9, and the id of the polygon on the right is 10,11,12,
It is 13. The polygon on the left is a new base polygon because it contains many points. Since the polygon on the right has three or more points,
Linked to the list.

重複した点を拾うときには注意しなければならない。
2の状態を持つ点(重複した点)からポリゴンを生成す
る場合には、生成されたポリゴンが反時計回りになるよ
うに、特別な逆チェックが必要になる。
You have to be careful when picking up duplicate points.
When a polygon is generated from points having a state of 2 (overlapping points), a special reverse check is required so that the generated polygon is counterclockwise.

第7図(a)と第7図(b)の例では、点13が重複し
ており、生成された3角形ポリゴンの部分として選ばれ
てしまう。この場合、点13がポリゴンidリストに2度現
れるのでポリゴンを生成する上で注意しなければならな
い。この問題に対しては、候補点を拾いだした速い凹/
凸角アルゴリズムの逆アルゴリズムを採用することで解
決する。
In the example of FIGS. 7A and 7B, the point 13 overlaps and is selected as a part of the generated triangular polygon. In this case, since the point 13 appears twice in the polygon id list, care must be taken in generating the polygon. In order to solve this problem, a fast concave /
The problem is solved by employing the inverse algorithm of the convex angle algorithm.

この例では、点12,13,14からなるエッジをまとめて使
う。ベース・エッジの点9と10が凹/凸角アルゴリズム
によって適切な候補点であるかどうかを調べる。それら
が適切でないときは、他の点12,13,15からなるエッジが
正しくなければならない。
In this example, edges composed of points 12, 13, and 14 are used collectively. Check whether the base edge points 9 and 10 are suitable candidate points by the concave / convex angle algorithm. If they are not appropriate, the edge consisting of the other points 12, 13, 15 must be correct.

また、このアルゴリズムは円錐の頭の先端の点の問題
については、円錐曲面タイプを特別な場合とする。
The algorithm also makes the conical surface type a special case for the problem of the point at the tip of the cone head.

円錐型曲面のために、円錐のエッジは分割数を大きく
して細かく分割する。これは直線エッジで分割している
場合であり、この分割は円錐曲面に対してよい品質のポ
リゴンを作り出す。また、普通の点における特殊な処理
においても、円錐の頭の先端点でのことが必要となる。
Due to the conical surface, the edges of the cone are subdivided by increasing the number of divisions. This is the case when dividing by straight edges, which produces good quality polygons for conical surfaces. In addition, special processing at ordinary points also requires the point at the tip of the head of the cone.

例として、ポリゴンに分割された曲面のいくつかの例
を第8図(a)〜(c)に示してある。
As examples, some examples of curved surfaces divided into polygons are shown in FIGS. 8 (a) to 8 (c).

効果 以上の説明から明らかなように、本発明によると、3
角形分割の手法は、大変簡単であり、密な3角形ポリゴ
ンとするために内部点を使用している。それは大変単純
かつ直載的であり、すべての曲面のタイプに適用でき
る。
Effect As is apparent from the above description, according to the present invention, 3
The method of polygonal division is very simple and uses internal points to make a dense triangular polygon. It is very simple and straightforward and applicable to all surface types.

【図面の簡単な説明】[Brief description of the drawings]

第1図は、本発明による自由曲面の分割方法の一実施例
である曲面境界からポリゴンを作る処理を説明するため
のフローチャート、第2図は、本発明による自由曲面の
分割方法の一実施例であるメイン・ポリゴンの3角形分
割の処理を説明するためのフローチャート、第3図は、
穴からポリゴンを生成する工程を示す図で、図(a)は
穴を含む表面を示す図、図(b)は単一のポリゴンの生
成を示す図、図(c)は状態と内部点を有するポリゴン
を示す図、第4図は、凹凸の角が存在する時の探索空間
を示す図、第5図は、最大角度による候補点の選択プロ
セスと3角形分割されたポリゴンの生成を示す図、第6
図は、ベース・ポリゴンの更新を説明するための図、第
7図は、重複点からポリゴンを生成する場合を示す図、
第8図は、ポリゴンに分割された曲面のいくつかを示す
図である。
FIG. 1 is a flowchart for explaining a process of forming a polygon from a curved surface boundary which is an embodiment of the free-form surface dividing method according to the present invention, and FIG. 2 is an embodiment of the free-form surface dividing method according to the present invention. FIG. 3 is a flowchart for explaining the process of dividing the main polygon into triangles.
FIGS. 7A and 7B are diagrams showing a process of generating a polygon from a hole, FIG. 7A is a diagram showing a surface including a hole, FIG. 8B is a diagram showing generation of a single polygon, and FIG. FIG. 4 is a diagram showing a search space when there are irregular corners, and FIG. 5 is a diagram showing a candidate point selection process based on the maximum angle and generation of a triangulated polygon. , Sixth
FIG. 7 is a diagram for explaining updating of a base polygon, FIG. 7 is a diagram showing a case where a polygon is generated from overlapping points,
FIG. 8 is a diagram showing some of the curved surfaces divided into polygons.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】3次元CADシステムにおいて、曲面の境界
と穴の境界曲線をポリラインに分割して、すべての境界
曲線の曲面をポリライン化し、該ポリライン・データを
曲面の2次元パラメータ空間にマップし、2次元パラメ
ータ空間へマップされた外側の曲面境界をベースのポリ
ゴンとして、2次元パラメータ空間上でベースポリゴン
と曲面の穴を構成するポリゴンとの最短距離になる点を
探し、その最短距離をなす点同士を結び穴を構成するポ
リゴンをベースポリゴンにつなげて、3次元空間上の曲
面の境界を2次元パラメータ空間上で1つのポリゴンに
し、曲面に対応する2次元パラメータ空間のポリゴンに
含まれる点を除いて、3次元空間での曲面の点に対応す
る2次元パラメータ空間上の内部点を加え、必要なとき
前記内部点をも使ってメイン・ポリゴンを三角ポリゴン
に分割し、該分割されたポリゴンを2次元パラメータ空
間からもとの3次元空間に戻すようにし、トリムされた
自由曲面をポリゴンに変換することを特徴とする自由曲
面の分割方法。
In a three-dimensional CAD system, a boundary curve of a curved surface and a boundary curve of a hole are divided into polylines, all the curved surfaces of the boundary curves are polylined, and the polyline data is mapped to a two-dimensional parameter space of the curved surface. Using the outer curved surface boundary mapped to the two-dimensional parameter space as a base polygon, find a point at the shortest distance between the base polygon and the polygon constituting the hole of the curved surface in the two-dimensional parameter space, and form the shortest distance The polygons that connect the points to each other and form a hole are connected to the base polygon, and the boundary of the curved surface in the three-dimensional space is made into one polygon in the two-dimensional parameter space. , Except for the internal points in the two-dimensional parameter space corresponding to the points of the curved surface in the three-dimensional space, and use the internal points when necessary. A free-form surface characterized by dividing a main polygon into triangular polygons, returning the divided polygons from a two-dimensional parameter space to an original three-dimensional space, and converting the trimmed free-form surface into a polygon. Split method.
JP2249579A 1990-09-19 1990-09-19 Free-form surface division method Expired - Fee Related JP2828759B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2249579A JP2828759B2 (en) 1990-09-19 1990-09-19 Free-form surface division method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2249579A JP2828759B2 (en) 1990-09-19 1990-09-19 Free-form surface division method

Publications (2)

Publication Number Publication Date
JPH04127378A JPH04127378A (en) 1992-04-28
JP2828759B2 true JP2828759B2 (en) 1998-11-25

Family

ID=17195107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2249579A Expired - Fee Related JP2828759B2 (en) 1990-09-19 1990-09-19 Free-form surface division method

Country Status (1)

Country Link
JP (1) JP2828759B2 (en)

Also Published As

Publication number Publication date
JPH04127378A (en) 1992-04-28

Similar Documents

Publication Publication Date Title
US10504284B2 (en) Method for automatic modeling of complex buildings with high accuracy
CN109711018B (en) Two-dimensional to three-dimensional house type design method
US8130221B2 (en) Method and system for repairing triangulated surface meshes
US6307555B1 (en) Boolean operations for subdivision surfaces
JPH05342310A (en) Method and device for three-dimensional conversion of linear element data
CA2553508A1 (en) Transfer of attributes between geometric surfaces of arbitrary topologies with distortion reduction and discontinuity preservation
CN109003333B (en) Interactive grid model cutting method and device based on texture and modeling equipment
JP2002245098A (en) Method and device for generating hexahedral mesh
EP1547020B1 (en) Irregular mesh and embedded geometric description in a computer graphics system
JP2828759B2 (en) Free-form surface division method
Jensen et al. Practical curves and surfaces for a geometric modeler
JP3153578B2 (en) Offset curved surface generating device and offset solid generating device
US6760022B1 (en) Simple soft creases for subdivision surfaces
Málková et al. An intuitive polygon morphing
Jan et al. Shortest path-planning on polygonal surfaces with O (nlog n) time
US6587103B1 (en) Method and apparatus for determining coincident lines
Freitag et al. Enhancements in blending algorithms
EP0619904B1 (en) Method using relational entities for object-oriented computer-aided geometric design
Lin et al. Rapid prototyping through scanned point data
Alciatore et al. Importing and reshaping digitized data for use in rapid prototyping: a system for sculpting polygonal mesh surfaces
JPH0944696A (en) Polygon mesh connector
JP2002328958A (en) Mesh generation method, program, recording medium, and mesh generation system
JPH08287286A (en) Plane image mapping method
JP2999497B2 (en) Fillet surface generation method
Yau et al. NC tool-path generation based on surfel models constructed from random scanned data

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080918

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080918

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090918

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090918

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100918

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees