JPH1011590A - Method for geometrically dividing recessed polygon - Google Patents

Method for geometrically dividing recessed polygon

Info

Publication number
JPH1011590A
JPH1011590A JP16788896A JP16788896A JPH1011590A JP H1011590 A JPH1011590 A JP H1011590A JP 16788896 A JP16788896 A JP 16788896A JP 16788896 A JP16788896 A JP 16788896A JP H1011590 A JPH1011590 A JP H1011590A
Authority
JP
Japan
Prior art keywords
concave
vertex
polygon
vertices
convex
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP16788896A
Other languages
Japanese (ja)
Inventor
Gen Kumamoto
玄 隈元
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.)
Daikin Industries Ltd
Original Assignee
Daikin Industries 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 Daikin Industries Ltd filed Critical Daikin Industries Ltd
Priority to JP16788896A priority Critical patent/JPH1011590A/en
Publication of JPH1011590A publication Critical patent/JPH1011590A/en
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

PROBLEM TO BE SOLVED: To prevent the generation of an error in advance by equalizing the number of projecting polygons with the number of triangles obtained by a triangle dividing method at the worst and to mostly make it less than the number of the triangles. SOLUTION: Whether each vertex of a recessed polygon is recessed or projected is judged, all the recessed vertexes are stored (SP 1) in a recessed vertex list and whether a recessed vertex exists in the recessed vertex list is judged (SP 2). When the recessed vertex exists, the recessed vertex is fetched (SP 3) from the head of the recessed vertex list, three vertexes consecutive in a prescribed direction including the fetched recessed vertex are noticed (SP 4) and whether a triangle formed by these three vertexes can be cut off or not is judged (SP 5). Then when it is judged that the triangle can be cut off, whether an N-polygon can be cut off not is judged. (SP 6). When it is possible, the N-polygon is cut off (SP 7) but when it is impossible on the contrary, the triangle is cut off (SP 8).

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は凹ポリゴン(何れ
かの頂点の内角が180°を越えるポリゴン、または何
れかの頂点の内角が180°以上のポリゴン)の幾何学
的分割方法に関し、さらに詳細にいえば、予め設定した
頂点数を越えない範囲において頂点数が最も多い複数個
の多角形に凹ポリゴンを分割するための新規な方法に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for geometrically dividing a concave polygon (a polygon having an interior angle of any vertex exceeding 180 ° or a polygon having an interior angle of any vertex of 180 ° or more). The present invention relates to a novel method for dividing a concave polygon into a plurality of polygons having the largest number of vertices within a range not exceeding a preset number of vertices.

【0002】ここで、凹ポリゴンの定義を上述のように
定めたのは、コンピュータ・グラフィックス・システム
によっては、何れかの頂点の内角が180°を越えるポ
リゴンを凹ポリゴンとする場合と、何れかの頂点の内角
が180°以上のポリゴンを凹ポリゴンとする場合とが
あるからである。
Here, the definition of a concave polygon is defined as described above, depending on the computer graphics system, when a polygon whose interior angle at any vertex exceeds 180 ° is a concave polygon, This is because a polygon having an inner angle of 180 ° or more at that vertex may be a concave polygon.

【0003】[0003]

【従来の技術】従来から、ぬりつぶし描画の高速化を達
成するために、凹ポリゴンを凸ポリゴン(全ての頂点の
内角が180°以下のポリゴン、または全ての頂点の内
角が180°未満のポリゴン)に分割する方法が提案さ
れている。このような凹ポリゴン分割方法としては、
(1)凹ポリゴンを複数個の三角形に分割する方法(い
わゆる三角形分割法、特開昭63−184882号公
報、特開平3−50686号公報参照)、および(2)
凹ポリゴンを複数個の台形に分割する方法(いわゆる台
形分割法、特開昭62−36690号公報参照)が提案
されている。
2. Description of the Related Art Conventionally, in order to achieve high-speed drawing, a concave polygon is formed as a convex polygon (a polygon having an inner angle of all vertices of 180 ° or less, or a polygon having an inner angle of all vertices of less than 180 °). Has been proposed. As such a concave polygon division method,
(1) A method of dividing a concave polygon into a plurality of triangles (a so-called triangulation method, see JP-A-63-184882 and JP-A-3-50686), and (2)
A method of dividing a concave polygon into a plurality of trapezoids (a so-called trapezoidal division method, see Japanese Patent Application Laid-Open No. Sho 62-36690) has been proposed.

【0004】前記三角形分割法は、凹ポリゴンの全ての
頂点から、凹頂点(内角が180°を越える頂点、また
は内角が180°以上の頂点)を基準として、隣合う3
つの頂点を選択して三角形を切り取り、この処理を反復
することにより元の凹頂点を凸頂点(内角が180°以
下の頂点、または内角が180°未満の頂点)にする方
法である。もちろん、凸ポリゴンになった後も三角形の
切り取りを行って最終的に元の凹ポリゴンを複数個の三
角形に分割する。
In the triangulation method, three adjacent vertices are selected from all vertices of a concave polygon with reference to concave vertices (vertexes having an internal angle exceeding 180 ° or vertices having an internal angle of 180 ° or more).
This is a method in which one vertex is selected, a triangle is cut out, and this process is repeated to make the original concave vertex a convex vertex (a vertex having an internal angle of 180 ° or less or a vertex having an internal angle of less than 180 °). Of course, even after the convex polygon is formed, the triangle is cut out and the original concave polygon is finally divided into a plurality of triangles.

【0005】前記台形分割法は、凹ポリゴンをその頂点
毎にスキャンラインで分割して台形を作り、得られた各
台形を三角形に分割する方法である。
The trapezoid division method is a method in which a concave polygon is divided by a scan line for each vertex to form a trapezoid, and each obtained trapezoid is divided into triangles.

【0006】[0006]

【発明が解決しようとする課題】前記三角形分割法は、
単純な処理で凹ポリゴンを複数個の三角形に分割するこ
とができるが、凹ポリゴンの全ての頂点を用いて三角形
を切り取るのであるから、凹ポリゴンの形状によっては
分割後の三角形の数が著しく多くなってしまい、後処理
である陰影計算処理部において扱うポリゴンデータ量が
著しく増加してしまうという不都合がある。
The triangulation method comprises:
A simple process can divide a concave polygon into multiple triangles.However, since all the vertices of the concave polygon are used to cut the triangle, the number of triangles after division may increase significantly depending on the shape of the concave polygon. As a result, there is an inconvenience that the amount of polygon data handled in the post-processing shadow calculation processing unit is significantly increased.

【0007】前記台形分割法は、凹ポリゴンをその頂点
毎にスキャンラインで分割して台形を作るのであるか
ら、1対の頂点が同一のスキャンライン上に位置してい
る場合を除いて、一方の頂点と対になるべき頂点を設定
することが必要になる。そして、この頂点は元の凹ポリ
ゴンにおいて与えられている頂点ではないから、新たな
頂点の設定に伴なって必然的に計算精度などに起因する
誤差を生じてしまい、この誤差に起因して、後処理であ
る陰影計算処理を行った場合に、陰影計算結果に基づく
描画品質が低下してしまう(具体的には、輝度値の不連
続、形状の穴あきなどが発生してしまう)という不都合
がある。
In the trapezoidal division method, a concave polygon is divided by a scan line for each vertex to form a trapezoid. Therefore, except for a case where a pair of vertices are located on the same scan line, one of the vertexes is one. It is necessary to set a vertex to be paired with the vertex of. And, since this vertex is not the vertex given in the original concave polygon, an error due to calculation accuracy or the like is inevitably caused by setting a new vertex, and due to this error, When the post-processing shadow calculation processing is performed, the drawing quality based on the shadow calculation result is deteriorated (specifically, the discontinuity of the brightness value, the perforation of the shape, and the like occur). There is.

【0008】[0008]

【発明の目的】この発明は上記の問題点に鑑みてなされ
たものであり、新たな頂点の設定を行うことなく、かつ
分割後の凸ポリゴンの数を三角形分割法と比較して同等
もしくは少なくすることができる凹ポリゴンの幾何学的
分割方法を提供することを目的としている。
SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and does not require the setting of new vertices and makes the number of convex polygons after division equal to or less than that of the triangulation method. It is an object of the present invention to provide a method of geometrically dividing concave polygons that can be performed.

【0009】[0009]

【課題を解決するための手段】請求項1の凹ポリゴンの
幾何学的分割方法は、分割対象の凹ポリゴンを表す幾何
データから凹頂点を検出して凹頂点リストを作成し、凹
頂点リストから1つの凹頂点を選択し、選択された凹頂
点を基準として、凸多角形を構成することができる最大
数の頂点を選択し、選択された凹頂点および選択された
最大数の頂点で構成される凸多角形を前記凹ポリゴンか
ら切り取り、残りのポリゴンについて分割が必要な場合
には、前記一連の処理を反復する方法である。
According to a first aspect of the present invention, there is provided a method of geometrically dividing a concave polygon, wherein a concave vertex is detected from geometric data representing a concave polygon to be divided, and a concave vertex list is created. One concave vertex is selected, and a maximum number of vertices that can form a convex polygon is selected based on the selected concave vertex, and the selected vertex is formed by the selected concave vertex and the selected maximum number of vertices. This is a method in which a convex polygon is cut from the concave polygon and if the remaining polygons need to be divided, the above series of processing is repeated.

【0010】請求項2の凹ポリゴンの幾何学的分割方法
は、分割対象の凹ポリゴンを表す幾何データから凹頂点
を検出して凹頂点リストを作成し、凹頂点リストから1
つの凹頂点を選択し、選択された凹頂点を基準として所
定方向の2つの頂点を選択し、これら選択された3つの
頂点により形成される三角形が切り取り可能か否かを判
定し、三角形が切り取り可能であると判定された場合に
は、凹頂点を基準として選択される頂点の数を増加さ
せ、凹頂点を含む全ての選択された頂点により形成され
る凸多角形が切り取り可能か否かを判定し、選択される
頂点の数が予め設定した数を越えない範囲で、選択され
る頂点の数の増加処理および全ての選択された頂点によ
り形成される凸多角形が切り取り可能か否かの判定を反
復し、最も頂点数が多い凸多角形を分割対象の凹ポリゴ
ンから切り取り、残った多角形が凹ポリゴンであるか、
もしくは予め設定した頂点数よりも頂点数が多い凸多角
形であることを条件として前記の一連の処理を反復し、
前記三角形が切り取り可能でないと判定された場合に
は、凹頂点リストから他の1つの凹頂点を選択し、前記
一連の処理を反復する方法である。
According to a second aspect of the present invention, a concave vertex is detected from geometric data representing a concave polygon to be divided, a concave vertex list is created, and one concave vertex list is created from the concave vertex list.
Three concave vertices are selected, two vertices in a predetermined direction are selected based on the selected concave vertices, it is determined whether or not a triangle formed by these three selected vertices can be cut, and the triangle is cut. If it is determined that it is possible, increase the number of vertices selected based on the concave vertex, and determine whether the convex polygon formed by all the selected vertices including the concave vertex can be cut out. In the range in which the number of selected vertices does not exceed a preset number, it is determined whether or not the convex polygon formed by all the selected vertices can be cut off, and the number of selected vertices is increased. The determination is repeated, and the convex polygon having the largest number of vertices is cut out from the concave polygon to be divided, and whether the remaining polygon is a concave polygon,
Or repeat the above series of processing on condition that it is a convex polygon having a larger number of vertices than the number of vertices set in advance,
If it is determined that the triangle is not cuttable, another one of the concave vertices is selected from the concave vertex list, and the series of processes is repeated.

【0011】[0011]

【作用】請求項1の凹ポリゴンの幾何学的分割方法であ
れば、分割対象の凹ポリゴンを表す幾何データから凹頂
点を検出して凹頂点リストを作成し、凹頂点リストから
1つの凹頂点を選択し、選択された凹頂点を基準とし
て、凸多角形を構成することができる最大数の頂点を選
択し、選択された凹頂点および選択された最大数の頂点
で構成される凸多角形を前記凹ポリゴンから切り取り、
残りのポリゴンについて分割が必要な場合には、前記一
連の処理を反復するのであるから、凹ポリゴンを分割す
ることにより得られる凸多角形の数を、最悪でも三角形
分割法により得られる三角形の数と等しくし、多くの場
合には、三角形分割法により得られる三角形の数よりも
少なくすることができ、しかも台形分割法のように新た
な頂点を作らないので、誤差の発生を未然に防止するこ
とができる。
According to the first aspect of the present invention, a concave vertex is detected from geometric data representing a concave polygon to be divided, a concave vertex list is created, and one concave vertex list is formed from the concave vertex list. Is selected, and based on the selected concave vertices, the maximum number of vertices that can form the convex polygon is selected, and the convex polygon composed of the selected concave vertices and the selected maximum number of vertices is selected. From the concave polygon,
If the remaining polygons need to be divided, the above-described series of processing is repeated, so the number of convex polygons obtained by dividing the concave polygons is, at worst, the number of triangles obtained by the triangulation method. In many cases, the number of triangles can be made smaller than the number of triangles obtained by the triangulation method, and since new vertices are not created unlike the trapezoidal division method, errors are prevented from occurring. be able to.

【0012】請求項2の凹ポリゴンの幾何学的分割方法
であれば、分割対象の凹ポリゴンを表す幾何データから
凹頂点を検出して凹頂点リストを作成し、凹頂点リスト
から1つの凹頂点を選択し、選択された凹頂点を基準と
して所定方向の2つの頂点を選択し、これら選択された
3つの頂点により形成される三角形が切り取り可能か否
かを判定し、三角形が切り取り可能であると判定された
場合には、凹頂点を基準として選択される頂点の数を増
加させ、凹頂点を含む全ての選択された頂点により形成
される凸多角形が切り取り可能か否かを判定し、選択さ
れる頂点の数が予め設定した数を越えない範囲で、選択
される頂点の数の増加処理および全ての選択された頂点
により形成される凸多角形が切り取り可能か否かの判定
を反復し、最も頂点数が多い凸多角形を分割対象の凹ポ
リゴンから切り取り、残った多角形が凹ポリゴンである
か、もしくは予め設定した頂点数よりも頂点数が多い凸
多角形であることを条件として前記の一連の処理を反復
し、前記三角形が切り取り可能でないと判定された場合
には、凹頂点リストから他の1つの凹頂点を選択し、前
記一連の処理を反復するのであるから、凹ポリゴンを分
割することにより得られる凸多角形の数を、最悪でも三
角形分割法により得られる三角形の数と等しくし、多く
の場合には、三角形分割法により得られる三角形の数よ
りも少なくすることができ、しかも台形分割法のように
新たな頂点を作らないので、誤差の発生を未然に防止す
ることができる。
According to the method for geometrically dividing a concave polygon according to claim 2, a concave vertex list is created by detecting concave vertices from geometric data representing a concave polygon to be divided, and one concave vertex list is formed from the concave vertex list. Is selected, two vertices in a predetermined direction are selected on the basis of the selected concave vertex, and it is determined whether or not a triangle formed by the selected three vertices can be cut, and the triangle can be cut. When it is determined that, the number of vertices selected on the basis of the concave vertex is increased, it is determined whether the convex polygon formed by all the selected vertices including the concave vertex can be cut, As long as the number of selected vertices does not exceed the preset number, repeat the process of increasing the number of selected vertices and determine whether the convex polygon formed by all the selected vertices can be cut or not And the most top The convex polygon having a large number is cut out from the concave polygon to be divided, and the above-mentioned series is performed under the condition that the remaining polygon is a concave polygon or a convex polygon having a larger number of vertices than a preset number of vertices. Is repeated, and if it is determined that the triangle is not cuttable, another concave vertex is selected from the concave vertex list, and the series of processes is repeated. Therefore, the concave polygon is divided. The number of convex polygons obtained by this can be made at worst equal to the number of triangles obtained by the triangulation method, and in many cases, can be smaller than the number of triangles obtained by the triangulation method, and Since a new vertex is not created unlike the trapezoidal division method, it is possible to prevent an error from occurring.

【0013】[0013]

【発明の実施の形態】以下、添付図面によってこの発明
の実施の態様を詳細に説明する。図1および図2はこの
発明の凹ポリゴンの幾何学的分割方法の一実施態様を説
明するフローチャートである。ステップSP1におい
て、凹ポリゴンの各頂点が凹頂点か凸頂点かを判定し
て、全ての凹頂点を凹頂点リストに格納し、ステップS
P2において、凹頂点リストに凹頂点が存在しているか
否かを判定する。凹頂点リストに凹頂点が存在している
場合には、ステップSP3において、凹頂点リストの先
頭より凹頂点を取り出し、ステップSP4において、取
り出された凹頂点を含め、所定方向(例えば、反時計回
り方向)に連続する3つの頂点に着目し、ステップSP
5において、この3つの頂点により作られる三角形が切
り取り可能か否かを判定する。そして、三角形が切り取
り可能であると判定された場合には、ステップSP6に
おいて、N角形が切り取り可能か否かを判定する。ここ
で、Nは4以上の整数であり、ステップSP6および後
述するステップSP12においては、切り取り不可能と
判定されるまでNの値が順次増加される。
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings. FIGS. 1 and 2 are flow charts for explaining one embodiment of the method for geometrically dividing concave polygons according to the present invention. In step SP1, it is determined whether each vertex of the concave polygon is a concave vertex or a convex vertex, and all the concave vertices are stored in a concave vertex list.
In P2, it is determined whether or not a concave vertex exists in the concave vertex list. If there is a concave vertex in the concave vertex list, in step SP3, a concave vertex is extracted from the top of the concave vertex list. In step SP4, the concave vertex is extracted in a predetermined direction (for example, counterclockwise). Focusing on three vertices continuous in the direction
At 5, it is determined whether the triangle formed by these three vertices can be cut. If it is determined that the triangle can be cut, it is determined in step SP6 whether or not the N polygon can be cut. Here, N is an integer of 4 or more, and in step SP6 and step SP12 to be described later, the value of N is sequentially increased until it is determined that cutout is impossible.

【0014】そして、N角形が切り取り可能であれば、
ステップSP7において、N角形を切り取り、逆にN角
形が切り取り可能でなければ、ステップSP8におい
て、三角形を切り取る。ステップSP7またはステップ
SP8の処理が行われた後は、ステップSP9におい
て、取り出された凹頂点が三角形またはN角形の切り取
りによって凸頂点になったか否かを判定する。そして、
凸頂点になった場合には、再びステップSP2の判定を
行う。逆に、凸頂点になっていなければ、再びステップ
SP4の処理を行う。
Then, if the N polygon can be cut off,
In step SP7, the N polygon is cut out. Conversely, if the N polygon cannot be cut out, in step SP8, the triangle is cut out. After the processing of step SP7 or step SP8 is performed, in step SP9, it is determined whether or not the extracted concave vertex has become a convex vertex by cutting a triangle or N-gon. And
If a convex vertex is reached, the determination in step SP2 is performed again. Conversely, if it is not a convex vertex, the process of step SP4 is performed again.

【0015】前記ステップSP5において三角形が切り
取り可能でないと判定された場合には、ステップSP1
0において、前記取り出された凹頂点を含め、前記と逆
方向(例えば、時計回り方向)に連続する3つの頂点に
着目し、ステップSP11において、この3つの頂点に
より作られる三角形が切り取り可能か否かを判定する。
そして、三角形が切り取り可能であると判定された場合
には、ステップSP12において、N角形が切り取り可
能か否かを判定する。
If it is determined in step SP5 that the triangle cannot be cut, step SP1
At 0, focusing on three vertices that are continuous in the opposite direction (for example, clockwise) including the extracted concave vertex, at step SP11, it is determined whether a triangle formed by these three vertices can be cut out. Is determined.
If it is determined that the triangle can be cut, it is determined in step SP12 whether the N-gon can be cut.

【0016】そして、N角形が切り取り可能であれば、
ステップSP13において、N角形を切り取り、逆にN
角形が切り取り可能でなければ、ステップSP14にお
いて、三角形を切り取る。ステップSP13またはステ
ップSP14の処理が行われた後は、ステップSP15
において、取り出された凹頂点が三角形またはN角形の
切り取りによって凸頂点になったか否かを判定する。そ
して、凸頂点になった場合には、再びステップSP2の
判定を行う。逆に、凸頂点になっていなければ、再びス
テップSP10の処理を行う。
Then, if the N polygon can be cut out,
In step SP13, the N polygon is cut out,
If the polygon cannot be cut, a triangle is cut in step SP14. After the processing of step SP13 or step SP14 is performed, step SP15
In, it is determined whether or not the extracted concave vertex has become a convex vertex by cutting a triangle or N-gon. And when it becomes a convex vertex, the determination of step SP2 is performed again. Conversely, if it is not a convex vertex, the process of step SP10 is performed again.

【0017】前記ステップSP11において三角形が切
り取り可能でないと判定された場合には、ステップSP
16において、前記取り出された凹頂点を凹頂点リスト
の末尾に格納し、再びステップSP3の処理を行う。前
記ステップSP2において凹頂点リストに凹頂点が存在
しないと判定された場合には、ステップSP17におい
てN角を越える多角形をN角以下の多角形に分割し、そ
のまま一連の処理を終了する。
If it is determined in step SP11 that the triangle cannot be cut, the process proceeds to step SP11.
In step 16, the extracted concave vertex is stored at the end of the concave vertex list, and the process of step SP3 is performed again. If it is determined in step SP2 that there are no concave vertices in the concave vertex list, a polygon exceeding the N angle is divided into polygons having the N angle or less in step SP17, and the series of processing ends as it is.

【0018】図3および図4は前記図1および図2のフ
ローチャートの要部をより詳細に説明するフローチャー
トである。ステップSP1において、凹頂点リストの先
頭より凹頂点を取り出し、ステップSP2において、取
り出された凹頂点を含め、所定方向に連続する3頂点が
凸ポリゴンを構成するか否かを判定する。そして、凸ポ
リゴンを構成する場合には、ステップSP3において、
その凸ポリゴン内に他の頂点がなく、かつ他のエッジ
(既に分割されたポリゴンのエッジをも含む)とその凸
ポリゴンのエッジとの交差がないか否かを判定する。そ
の凸ポリゴン内に他の頂点がなく、かつ他のエッジとそ
の凸ポリゴンのエッジとの交差がないと判定された場合
には、ステップSP4において、取り出された凹頂点か
ら現在の頂点までの頂点で構成されるポリゴンがN角の
凸ポリゴンであるか否かを判定する。N角の凸ポリゴン
であると判定された場合には、ステップSP5におい
て、前記取り出された凹頂点が、N角の凸ポリゴンを切
り取ることにより凸頂点になるか否かを判定する。そし
て、凸頂点になると判定された場合には、ステップSP
6において、取り出された凹頂点から現在の頂点までで
構成される凸ポリゴンを切り取る。逆に、凸頂点になら
ないと判定された場合には、ステップSP7において、
現在の頂点を所定方向に1つずらし、再びステップSP
2の判定を行う。
FIGS. 3 and 4 are flow charts for explaining in more detail the main parts of the flow charts of FIGS. 1 and 2. In step SP1, a concave vertex is extracted from the head of the concave vertex list, and in step SP2, it is determined whether three consecutive vertices including the extracted concave vertex in a predetermined direction form a convex polygon. When forming a convex polygon, in step SP3,
It is determined whether there is no other vertex in the convex polygon and whether there is an intersection between another edge (including the edge of the already divided polygon) and the edge of the convex polygon. If it is determined that there is no other vertex in the convex polygon and there is no intersection between the other edge and the edge of the convex polygon, in step SP4, the vertex from the extracted concave vertex to the current vertex is determined. It is determined whether or not the polygon constituted by is a convex polygon having N angles. If it is determined that it is an N-angle convex polygon, it is determined in step SP5 whether the extracted concave vertex becomes a convex vertex by cutting out the N-angle convex polygon. If it is determined that the vertices will be convex vertices, step SP
At 6, the convex polygon composed of the extracted concave vertex to the current vertex is cut out. Conversely, if it is determined that the vertices will not be convex vertices, in step SP7,
The current vertex is shifted by one in a predetermined direction, and step SP is performed again.
Perform the determination of 2.

【0019】ステップSP4において、N角の凸ポリゴ
ンでないと判定された場合には、ステップSP8におい
て、取り出された凹頂点から現在の頂点までの頂点で構
成されるポリゴンの角数が4以上であるか否かを判定
し、角数が4以上であると判定された場合には、ステッ
プSP9において、現在の角数−1の角数のポリゴンを
切り取る。
If it is determined in step SP4 that the polygon is not an N-angle convex polygon, then in step SP8, the number of polygons formed by the vertices from the extracted concave vertex to the current vertex is 4 or more. It is determined whether or not the number of corners is four or more. In step SP9, a polygon having the current number of corners minus one is cut out.

【0020】ステップSP3において、凸ポリゴン内に
他の頂点があるか、もしくは他のエッジとその凸ポリゴ
ンのエッジとの交差があると判定された場合には、ステ
ップSP10において、取り出された凹頂点から現在の
頂点までの頂点で構成されるポリゴンの角数が4以上で
あるか否かを判定し、角数が4以上であると判定された
場合には、ステップSP11において、現在の角数−1
の角数のポリゴンを切り取る。
If it is determined in step SP3 that there is another vertex in the convex polygon or that there is an intersection between another edge and the edge of the convex polygon, in step SP10, the extracted concave vertex is extracted. It is determined whether or not the number of angles of the polygon formed by the vertices from to the current vertex is 4 or more. If it is determined that the number of angles is 4 or more, in step SP11, the current angle is -1
Cut out polygons with the number of corners.

【0021】ステップSP2において凸ポリゴンでない
と判定された場合、ステップSP8、ステップSP10
において、角数が4以上でないと判定された場合には、
ステップSP12において、取り出された凹頂点を含
め、前記所定方向と逆の方向に連続する3頂点が凸ポリ
ゴンを構成するか否かを判定する。そして、凸ポリゴン
を構成する場合には、ステップSP13において、その
凸ポリゴン内に他の頂点がなく、かつ他のエッジ(既に
分割されたポリゴンのエッジをも含む)とその凸ポリゴ
ンのエッジとの交差がないか否かを判定する。その凸ポ
リゴン内に他の頂点がなく、かつ他のエッジとその凸ポ
リゴンのエッジとの交差がないと判定された場合には、
ステップSP14において、取り出された凹頂点から現
在の頂点までの頂点で構成されるポリゴンがN角の凸ポ
リゴンであるか否かを判定する。N角の凸ポリゴンであ
ると判定された場合には、ステップSP15において、
前記取り出された凹頂点が、N角の凸ポリゴンを切り取
ることにより凸頂点になるか否かを判定する。そして、
凸頂点になると判定された場合には、ステップSP16
において、取り出された凹頂点から現在の頂点までで構
成される凸ポリゴンを切り取る。逆に、凸頂点にならな
いと判定された場合には、ステップSP17において、
現在の頂点を所定方向に1つずらし、再びステップSP
12の判定を行う。
If it is determined in step SP2 that the polygon is not a convex polygon, step SP8, step SP10
In, when it is determined that the number of corners is not 4 or more,
In step SP12, it is determined whether three vertices, including the extracted concave vertices, which are continuous in the direction opposite to the predetermined direction, form a convex polygon. When forming a convex polygon, in step SP13, there is no other vertex in the convex polygon, and another edge (including the edge of the already divided polygon) and the edge of the convex polygon are combined. It is determined whether there is no intersection. If it is determined that there is no other vertex in the convex polygon and there is no intersection between another edge and the edge of the convex polygon,
In step SP14, it is determined whether or not the polygon composed of the vertices from the extracted concave vertex to the current vertex is an N-angle convex polygon. If it is determined that the polygon is a convex polygon having N angles, in step SP15,
It is determined whether or not the extracted concave vertex becomes a convex vertex by cutting out a convex polygon having N angles. And
If it is determined to be a convex vertex, step SP16
In, a convex polygon formed from the extracted concave vertex to the current vertex is cut out. Conversely, if it is determined that the vertices will not be convex vertices, in step SP17,
The current vertex is shifted by one in a predetermined direction, and step SP is performed again.
A determination of 12 is made.

【0022】ステップSP14において、N角の凸ポリ
ゴンでないと判定された場合には、ステップSP18に
おいて、取り出された凹頂点から現在の頂点までの頂点
で構成されるポリゴンの角数が4以上であるか否かを判
定し、角数が4以上であると判定された場合には、ステ
ップSP19において、現在の角数−1の角数のポリゴ
ンを切り取る。
If it is determined in step SP14 that the polygon is not an N-angle convex polygon, then in step SP18, the number of polygons consisting of the vertices from the extracted concave vertex to the current vertex is 4 or more. It is determined whether or not the number of corners is four or more. In step SP19, a polygon having the current number of corners minus one is cut out.

【0023】ステップSP13において、凸ポリゴン内
に他の頂点があるか、もしくは他のエッジとその凸ポリ
ゴンのエッジとの交差があると判定された場合には、ス
テップSP20において、取り出された凹頂点から現在
の頂点までの頂点で構成されるポリゴンの角数が4以上
であるか否かを判定し、角数が4以上であると判定され
た場合には、ステップSP21において、現在の角数−
1の角数のポリゴンを切り取る。
If it is determined in step SP13 that there is another vertex in the convex polygon or that there is an intersection between another edge and the edge of the convex polygon, in step SP20, the extracted concave vertex is extracted. It is determined whether or not the number of angles of the polygon constituted by the vertices from to the current vertex is 4 or more. If it is determined that the number of angles is 4 or more, in step SP21, the current angle −
Cut out the polygon with 1 corner.

【0024】ステップSP12において凸ポリゴンでな
いと判定された場合、ステップSP18、ステップSP
20において、角数が4以上でないと判定された場合に
は、そのまま一連の処理を終了する。したがって、以上
のフローチャートの処理を行うことにより、凹ポリゴン
を、予め設定した角数を越えない範囲で最も角数が多い
ポリゴンに分割することができる。この結果、コンピュ
ータ・グラフィックス・アプリケーションにおいて扱う
データ量を少なくすることができ、リアルタイム処理に
簡単に対処することができる。また、ラジオシティ・ア
プリケーションの場合には、計算負荷がポリゴン数の2
乗に比例して増加するのであるから、前記のフローチャ
ートの処理を行って分割後のポリゴン数を少なくするこ
とは計算負荷の低減に大いに役立つことになる。
If it is determined in step SP12 that the polygon is not a convex polygon, step SP18, step SP18
If it is determined in step 20 that the number of corners is not four or more, the series of processing ends. Therefore, by performing the processing of the above-described flowchart, it is possible to divide the concave polygon into polygons having the largest number of corners within a range not exceeding a preset number of corners. As a result, the amount of data handled in the computer graphics application can be reduced, and real-time processing can be easily handled. In the case of a radiosity application, the calculation load is 2 polygons.
Since the number increases in proportion to the power, reducing the number of polygons after the division by performing the processing of the above-described flowchart will greatly reduce the calculation load.

【0025】図5に示す凹6角形の分割を例にとってさ
らに詳細に説明する。なお、図5において、各頂点を0
〜5で示してある。 (1) 切り取りポリゴンの角数の最大値Nを設定す
る。具体的には、N=5に設定する。 (2) 元の6角形の頂点の中でどの頂点が凹頂点かを
調べる。具体的には、頂点を挟む2辺を表すベクトルど
うしの外積を算出し、外積の値が0以上か否かによって
凹頂点か否かを調べる。図5の凹6角形の場合には、凹
頂点は0である。
This will be described in more detail by taking the concave hexagonal division shown in FIG. 5 as an example. Note that, in FIG.
-5. (1) Set the maximum value N of the number of corners of the cut polygon. Specifically, N = 5 is set. (2) Check which vertex of the original hexagon is a concave vertex. Specifically, the cross product of vectors representing two sides sandwiching the vertex is calculated, and whether or not the cross product is a concave vertex is determined based on whether or not the value of the cross product is 0 or more. In the case of the concave hexagon in FIG. 5, the concave vertex is zero.

【0026】(3) 凹頂点0から始めて反時計回りに
3点(0−1−2)を切り取れるか否かを判定する。図
5の凹6角形の場合には、切り取りが可能である。 (4) 切り取りポリゴンはN凸角形以下かを判定す
る。この場合には、0−1−2であるから3凸角形であ
る。 (5) 凹頂点0は凸頂点になったか否かを判定する。
図5の凹6角形の場合には、凸頂点になる。
(3) Starting from the concave vertex 0, it is determined whether three points (0-1-2) can be cut counterclockwise. In the case of the concave hexagon shown in FIG. 5, cutting can be performed. (4) It is determined whether the cut polygon is an N-convex polygon or less. In this case, since it is 0-1-2, it is a tri-convex polygon. (5) It is determined whether the concave vertex 0 has become a convex vertex.
In the case of the concave hexagon shown in FIG.

【0027】(6) 現在の中央頂点を反時計回りに1
つずらす。この場合には、頂点1が頂点2になる。 (7) 凹頂点0から始めて反時計回りに3点(0−2
−3)を切り取れるか否かを判定する。図5の凹6角形
の場合には、切り取りが可能である。 (8) 切り取りポリゴンはN凸角形以下かを判定す
る。この場合には、0−1−2−3であるから4凸角形
である。
(6) Move the current center vertex counterclockwise by 1
Stagger. In this case, vertex 1 becomes vertex 2. (7) Starting from the concave vertex 0, 3 points (0-2
It is determined whether or not -3) can be cut. In the case of the concave hexagon shown in FIG. 5, cutting can be performed. (8) It is determined whether or not the cut polygon is an N convex polygon or less. In this case, since it is 0-1-2-3, it is a quadrilateral convex.

【0028】(9) 凹頂点0は凸頂点になったか否か
を判定する。図5の凹6角形の場合には、凸頂点になる
(既に凸頂点になっている)。 (10) 現在の中央頂点を反時計回りに1つずらす。
この場合には、頂点2が頂点3になる。 (11) 凹頂点0から始めて反時計回りに3点(0−
3−4)を切り取れるか否かを判定する。図5の凹6角
形の場合には、切り取りが可能である。
(9) It is determined whether the concave vertex 0 has become a convex vertex. In the case of the concave hexagon shown in FIG. 5, it is a convex vertex (it is already a convex vertex). (10) Shift the current center vertex one counterclockwise.
In this case, vertex 2 becomes vertex 3. (11) Starting from the concave vertex 0, three points (0-
It is determined whether 3-4) can be cut. In the case of the concave hexagon shown in FIG. 5, cutting can be performed.

【0029】(12) 切り取りポリゴンはN凸角形以
下かを判定する。この場合には、0−1−2−3−4で
あるから5凸角形である(N=5)。 (13) 凹頂点0は凸頂点になったか否かを判定す
る。図5の凹6角形の場合には、凸頂点になる(既に凸
頂点になっている)。 (14) 5凸角形(0−1−2−3−4)を切り取
る。
(12) It is determined whether the cut polygon is an N-convex polygon or less. In this case, since it is 0-1-2-3-4, it is a 5-convex polygon (N = 5). (13) It is determined whether the concave vertex 0 has become a convex vertex. In the case of the concave hexagon shown in FIG. 5, it is a convex vertex (it is already a convex vertex). (14) Cut out the 5-convex polygon (0-1-2-3-4).

【0030】(15) 残ったポリゴンはN角形以下か
を判定する。この場合には、N角形以下である。 (16) そのまま分割処理を終了する。 したがって、三角形分割を行った場合には得られる三角
形が4つになるのに対して、この実施態様に基づく分割
を行った場合には、得られるポリゴンの数が2になる。
(15) It is determined whether the remaining polygons are N-gons or less. In this case, it is equal to or smaller than the N-sided polygon. (16) The division processing is terminated as it is. Therefore, when the triangulation is performed, four triangles are obtained, whereas when the division is performed based on this embodiment, the number of the obtained polygons is two.

【0031】図6に示す凹9角形の分割を例にとってさ
らに詳細に説明する。なお、図6において、各頂点を0
〜8で示してある。 (1) 切り取りポリゴンの角数の最大値Nを設定す
る。具体的には、N=5に設定する。 (2) 元の凹9角形の頂点の中でどの頂点が凹頂点か
を調べ、それらを凹頂点リストに登録する。図6の凹9
角形の場合には、凹頂点は3,4である。
This will be described in more detail with reference to the division of a concave pentagon shown in FIG. In FIG. 6, each vertex is set to 0.
-8. (1) Set the maximum value N of the number of corners of the cut polygon. Specifically, N = 5 is set. (2) Check which vertices among the vertices of the original concave octagon are concave vertices, and register them in the concave vertex list. Recess 9 in FIG.
In the case of a square, the concave vertices are 3 and 4.

【0032】(3) 凹頂点リストの最初の凹頂点3か
ら始めて反時計回りに3点(3−4−5)を切り取れる
か否かを判定する。図6の凹9角形の場合には、切り取
りが不可能である。 (4) 凹頂点3から始めて時計回りに3点(3−2−
1)を切り取れるか否かを判定する。図6の凹9角形の
場合には、切り取りが可能である。
(3) Starting from the first concave vertex 3 in the concave vertex list, it is determined whether three points (3-4-5) can be cut counterclockwise. In the case of the concave octagon in FIG. 6, cutting is impossible. (4) Starting from concave vertex 3 and clockwise 3 points (3-2-
It is determined whether or not 1) can be cut. In the case of the concave octagon in FIG. 6, cutout is possible.

【0033】(5) 切り取りポリゴンはN凸角形以下
かを判定する。この場合には、3−2−1であるから3
凸角形である。 (6) 凹頂点3は凸頂点になったか否かを判定する。
図6の凹9角形の場合には、凹頂点である。 (7) 現在の中央頂点を時計回りに1つずらす。この
場合には、頂点2が頂点1になる。
(5) It is determined whether or not the cut polygon is an N convex polygon or less. In this case, since it is 3-2-1, 3
It is a convex polygon. (6) It is determined whether the concave vertex 3 has become a convex vertex.
In the case of the concave octagon in FIG. 6, it is a concave vertex. (7) Shift the current center vertex one clockwise. In this case, vertex 2 becomes vertex 1.

【0034】(8) 凹頂点3から始めて時計回りに3
点(3−1−0)を切り取れるか否かを判定する。図6
の凹9角形の場合には、切り取りが可能である。 (9) 切り取りポリゴンはN凸角形以下かを判定す
る。この場合には、3−2−1−0であるから4凸角形
である。 (10) 凹頂点0は凸頂点になったか否かを判定す
る。図6の凹9角形の場合には、凹頂点である。
(8) Starting from concave vertex 3 and clockwise 3
It is determined whether or not the point (3-1-0) can be cut. FIG.
Can be cut off in the case of a concave octagon. (9) It is determined whether the cut polygon is an N-convex polygon or less. In this case, since it is 3-2-1-0, it is a quadrangle convex. (10) It is determined whether the concave vertex 0 has become a convex vertex. In the case of the concave octagon in FIG. 6, it is a concave vertex.

【0035】(11) 現在の中央頂点を時計回りに1
つずらす。この場合には、頂点1が頂点0になる。 (12) 凹頂点0から始めて時計回りに3点(3−0
−8)を切り取れるか否かを判定する。図6の凹9角形
の場合には、切り取りが可能である。 (13) 切り取りポリゴンはN凸角形以下かを判定す
る。この場合には、3−2−1−0−8であるから5凸
角形である(N=5)。
(11) Move the current center vertex clockwise by 1
Stagger. In this case, vertex 1 becomes vertex 0. (12) Starting from the concave vertex 0, three points clockwise (3-0
It is determined whether or not -8) can be cut. In the case of the concave octagon in FIG. 6, cutout is possible. (13) It is determined whether or not the cut polygon is N convex or less. In this case, since it is 3-2-1-0-8, it is a 5-convex polygon (N = 5).

【0036】(14) 凹頂点0は凸頂点になったか否
かを判定する。図6の凹9角形の場合には、凸頂点にな
る。 (15) 5凸角形(3−2−1−0−8)を切り取
り、頂点3を凹頂点リストから消す。 (16) 凹頂点リストから処理対象凹頂点を取り出
す。この場合には、凹頂点は4である。
(14) It is determined whether the concave vertex 0 has become a convex vertex. In the case of the concave octagon in FIG. 6, it becomes a convex vertex. (15) Cut out the 5-convex polygon (3-2-1-0-8) and delete vertex 3 from the concave vertex list. (16) Extract the processing target concave vertex from the concave vertex list. In this case, the number of concave vertices is four.

【0037】(17) 凹頂点4から始めて反時計回り
に3点(4−5−6)を切り取れるか否かを判定する。
図6の凹9角形の場合には、切り取りが可能である。 (18) 切り取りポリゴンはN凸角形以下かを判定す
る。この場合には、4−5−6であるから3凸角形であ
る。 (19) 凹頂点3は凸頂点になったか否かを判定す
る。図6の凹9角形の場合には、凸頂点になる。
(17) Starting from the concave vertex 4, it is determined whether three points (4-5-6) can be cut counterclockwise.
In the case of the concave octagon in FIG. 6, cutout is possible. (18) It is determined whether or not the cut polygon is an N convex polygon or less. In this case, since it is 4-5-6, it is a tri-convex polygon. (19) It is determined whether the concave vertex 3 has become a convex vertex. In the case of the concave octagon in FIG. 6, it becomes a convex vertex.

【0038】(20) 現在の中央頂点を反時計回りに
1つずらす。この場合には、頂点5が頂点6になる。 (21) 凹頂点4から始めて反時計回りに3点(4−
6−7)を切り取れるか否かを判定する。図6の凹9角
形の場合には、切り取りが可能である。 (22) 切り取りポリゴンはN凸角形以下かを判定す
る。この場合には、4−5−6−7であるから4凸角形
である。
(20) Shift the current center vertex by one counterclockwise. In this case, vertex 5 becomes vertex 6. (21) Starting from concave vertex 4 and turning 3 points counterclockwise (4-
It is determined whether 6-7) can be cut. In the case of the concave octagon in FIG. 6, cutout is possible. (22) It is determined whether or not the cut polygon is an N convex polygon or less. In this case, since it is 4-5-6-7, it is a quadrangle.

【0039】(23) 凹頂点4は凸頂点になったか否
かを判定する。図6の凹9角形の場合には、凸頂点であ
る(既に凸頂点になっている)。 (24) 現在の中央頂点を反時計回りに1つずらす。
この場合には、頂点6が頂点7になる。 (25) 凹頂点4から始めて反時計回りに3点(4−
7−8)を切り取れるか否かを判定する。図6の凹9角
形の場合には、切り取りが可能である。
(23) It is determined whether the concave vertex 4 has become a convex vertex. In the case of the concave octagon in FIG. 6, it is a convex vertex (already a convex vertex). (24) Shift the current center vertex one counterclockwise.
In this case, vertex 6 becomes vertex 7. (25) Starting from concave vertex 4 and turning 3 points counterclockwise (4-
It is determined whether or not 7-8) can be cut. In the case of the concave octagon in FIG. 6, cutout is possible.

【0040】(26) 切り取りポリゴンはN凸角形以
下かを判定する。この場合には、4−5−6−7−8で
あるから5凹角形である(N=5)。 (27) 凹頂点4は凸頂点になったか否かを判定す
る。図6の凹9角形の場合には、凸頂点になる(既に凸
頂点になっている)。 (28) 切り取りポリゴンの頂点数を1つ減らす。
(26) It is determined whether or not the cut polygon is N convex or less. In this case, since it is 4-5-6-7-8, it is a 5-concave polygon (N = 5). (27) It is determined whether the concave vertex 4 has become a convex vertex. In the case of the concave octagon in FIG. 6, the vertexes are convex (they are already convex vertices). (28) Decrease the number of vertices of the cut polygon by one.

【0041】(29) 4凸角形(4−5−6−7)を
切り取り、頂点4を凹頂点リストから消す。 (30) 凹頂点リストに凹頂点がなくなったので、残
ったポリゴンの頂点数がN以下であることを条件として
一連の分割処理を終了する。 したがって、凹頂点から始めて反時計回りに頂点を選択
しても凸多角形の切り取りが不可能な場合には、凹頂点
から始めて時計回りに頂点を選択することにより、Nを
頂点数の上限とする凸ポリゴンを切り取ることができ
る。
(29) The four convex polygons (4-5-6-7) are cut out, and vertex 4 is deleted from the concave vertex list. (30) Since there are no more concave vertices in the concave vertex list, a series of division processing is terminated on condition that the number of vertices of the remaining polygons is N or less. Therefore, if it is not possible to cut a convex polygon even if the vertices are selected counterclockwise starting from the concave vertex, N is set to the upper limit of the number of vertices by selecting the vertex clockwise starting from the concave vertex. Convex polygons can be cut out.

【0042】また、三角形分割を行った場合には得られ
る三角形が4つになるのに対して、この実施態様に基づ
く分割を行った場合には、得られるポリゴンの数が2に
なる。図7に示すような凹ポリゴンを分割する場合であ
って、凹頂点に挟まれた凹頂点を最初に処理する場合に
は、時計回り、反時計回りの何れの方向に頂点を選択し
ても、凸ポリゴンの切り取りが不可能になってしまう。
しかし、このような場合には、該当する凹頂点を凹頂点
リストの最後に追加すればよく、凹頂点2または凹頂点
4を基準として上記の一連の処理を行うことによって、
凹ポリゴンの分割を達成することができる。
Further, while the number of obtained triangles is four when triangulation is performed, the number of obtained polygons is two when division is performed according to this embodiment. In the case of dividing a concave polygon as shown in FIG. 7 and when processing a concave vertex sandwiched between concave vertices first, whether the vertex is selected in any of the clockwise direction and the counterclockwise direction is selected. Then, it becomes impossible to cut out the convex polygon.
However, in such a case, the corresponding concave vertex may be added to the end of the concave vertex list, and by performing the above-described series of processing with the concave vertex 2 or the concave vertex 4 as a reference,
The division of concave polygons can be achieved.

【0043】図8から図10は三角形分割法による凹ポ
リゴンの分割結果{各図中(A)参照}と、本願発明の
方法による凹ポリゴンの分割結果{各図中(B)参照}
とを示す図であり、何れの場合にも、本願発明の方法に
より得られるポリゴン数が少なくなっている。ただし、
図8の場合には、N=5以上、図9の場合にはN=10
以上、図10の場合にはN=8以上に設定している。
8 to 10 show the result of dividing a concave polygon by the triangulation method {see each figure (A)} and the result of dividing a concave polygon by the method of the present invention {see each figure (B)}.
In each case, the number of polygons obtained by the method of the present invention is small. However,
In the case of FIG. 8, N = 5 or more, and in the case of FIG.
As described above, in the case of FIG. 10, N is set to 8 or more.

【0044】[0044]

【発明の効果】請求項1の発明は、凹ポリゴンを分割す
ることにより得られる凸多角形の数を最悪の場合でも三
角形分割法により得られる三角形の数と等しくし、多く
の場合には、三角形分割法により得られる三角形の数よ
りも少なくすることができ、しかも台形分割法のように
新たな頂点を作らないので、誤差の発生を未然に防止す
ることができるという特有の効果を奏する。
According to the first aspect of the present invention, the number of convex polygons obtained by dividing a concave polygon is made equal to the number of triangles obtained by a triangulation method even in the worst case. Since the number of triangles can be made smaller than the number of triangles obtained by the triangulation method, and a new vertex is not created unlike the trapezoidal division method, there is a specific effect that an error can be prevented from occurring.

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

【図1】この発明の凹ポリゴンの幾何学的分割方法の一
実施態様の一部を説明するフローチャートである。
FIG. 1 is a flowchart illustrating a part of an embodiment of a method of geometrically dividing a concave polygon according to the present invention.

【図2】この発明の凹ポリゴンの幾何学的分割方法の一
実施態様の残部を説明するフローチャートである。
FIG. 2 is a flowchart illustrating the rest of the embodiment of the method for geometrically dividing a concave polygon according to the present invention;

【図3】図1および図2のフローチャートの要部の一部
をより詳細に説明するフローチャートである。
FIG. 3 is a flowchart for explaining a part of a main part of the flowcharts of FIGS. 1 and 2 in more detail;

【図4】図1および図2のフローチャートの要部の残部
をより詳細に説明するフローチャートである。
FIG. 4 is a flowchart describing in more detail the remaining part of the flowcharts of FIGS. 1 and 2;

【図5】この発明の方法により分割される凹ポリゴンの
一例を示す図である。
FIG. 5 is a diagram showing an example of a concave polygon divided by the method of the present invention.

【図6】この発明の方法により分割される凹ポリゴンの
他の例を示す図である。
FIG. 6 is a diagram showing another example of a concave polygon divided by the method of the present invention.

【図7】この発明の方法により分割される凹ポリゴンの
さらに他の例を示す図である。
FIG. 7 is a diagram showing still another example of a concave polygon divided by the method of the present invention.

【図8】凹ポリゴンの一例を三角形分割した結果とこの
発明の方法により分割した結果とを示す図である。
FIG. 8 is a diagram showing a result of triangulation of an example of a concave polygon and a result of division by the method of the present invention.

【図9】凹ポリゴンの他の例を三角形分割した結果とこ
の発明の方法により分割した結果とを示す図である。
FIG. 9 is a diagram showing a result obtained by dividing another example of a concave polygon into triangles and a result obtained by dividing the triangle by the method of the present invention.

【図10】凹ポリゴンのさらに他の例を三角形分割した
結果とこの発明の方法により分割した結果とを示す図で
ある。
FIG. 10 is a diagram showing a result obtained by dividing still another example of a concave polygon into triangles and a result obtained by dividing according to the method of the present invention.

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 分割対象の凹ポリゴンを表す幾何データ
から凹頂点を検出して凹頂点リストを作成し、凹頂点リ
ストから1つの凹頂点を選択し、選択された凹頂点を基
準として、凸多角形を構成することができる最大数の頂
点を選択し、選択された凹頂点および選択された最大数
の頂点で構成される凸多角形を前記凹ポリゴンから切り
取り、残りのポリゴンについて分割が必要な場合には、
前記一連の処理を反復することを特徴とする凹ポリゴン
の幾何学的分割方法。
1. A concave vertex list is created by detecting concave vertices from geometric data representing a concave polygon to be divided, one concave vertex is selected from the concave vertex list, and a convex vertex is selected based on the selected concave vertex. Select the maximum number of vertices that can form a polygon, cut out the convex polygon consisting of the selected concave vertex and the selected maximum number of vertices from the concave polygon, and split the remaining polygons. If
A method of geometrically dividing a concave polygon, comprising repeating the series of processes.
【請求項2】 分割対象の凹ポリゴンを表す幾何データ
から凹頂点を検出して凹頂点リストを作成し、凹頂点リ
ストから1つの凹頂点を選択し、選択された凹頂点を基
準として所定方向の2つの頂点を選択し、これら選択さ
れた3つの頂点により形成される三角形が切り取り可能
か否かを判定し、三角形が切り取り可能であると判定さ
れた場合には、凹頂点を基準として選択される頂点の数
を増加させ、凹頂点を含む全ての選択された頂点により
形成される凸多角形が切り取り可能か否かを判定し、選
択される頂点の数が予め設定した数を越えない範囲で、
選択される頂点の数の増加処理および全ての選択された
頂点により形成される凸多角形が切り取り可能か否かの
判定を反復し、最も頂点数が多い凸多角形を分割対象の
凹ポリゴンから切り取り、残った多角形が凹ポリゴンで
あるか、もしくは予め設定した頂点数よりも頂点数が多
い多角形であることを条件として前記の一連の処理を反
復し、前記三角形が切り取り可能でないと判定された場
合には、凹頂点リストから他の1つの凹頂点を選択し、
前記一連の処理を反復することを特徴とする凹ポリゴン
の幾何学的分割方法。
2. A concave vertex list is created by detecting concave vertices from geometric data representing a concave polygon to be divided, one concave vertex is selected from the concave vertex list, and a predetermined direction is determined based on the selected concave vertex. Is selected, and it is determined whether or not a triangle formed by the selected three vertices can be cut. When it is determined that the triangle can be cut, the triangle is selected based on the concave vertex. Increase the number of vertices, and determine whether the convex polygon formed by all the selected vertices including the concave vertex can be cut out, and the number of selected vertices does not exceed the preset number In a range,
It repeats the process of increasing the number of selected vertices and determining whether or not the convex polygon formed by all the selected vertices can be cut out. The above-described series of processing is repeated on condition that the remaining polygon is a concave polygon or a polygon having a larger number of vertices than a preset number of vertices, and it is determined that the triangle cannot be cut. If so, select another concave vertex from the concave vertex list,
A method of geometrically dividing a concave polygon, comprising repeating the series of processes.
JP16788896A 1996-06-27 1996-06-27 Method for geometrically dividing recessed polygon Pending JPH1011590A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16788896A JPH1011590A (en) 1996-06-27 1996-06-27 Method for geometrically dividing recessed polygon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16788896A JPH1011590A (en) 1996-06-27 1996-06-27 Method for geometrically dividing recessed polygon

Publications (1)

Publication Number Publication Date
JPH1011590A true JPH1011590A (en) 1998-01-16

Family

ID=15857936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16788896A Pending JPH1011590A (en) 1996-06-27 1996-06-27 Method for geometrically dividing recessed polygon

Country Status (1)

Country Link
JP (1) JPH1011590A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906599B1 (en) * 2007-06-29 2009-07-09 경북대학교 산학협력단 Complex Polygon Simplification Algorithm
JP2013507679A (en) * 2009-10-08 2013-03-04 スリーディー エム.ティー.ピー.リミテッド Method and system capable of 3D printing of 3D object model
CN116012491A (en) * 2023-03-20 2023-04-25 电科疆泰(深圳)科技发展有限公司 Polygonal filling method and device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906599B1 (en) * 2007-06-29 2009-07-09 경북대학교 산학협력단 Complex Polygon Simplification Algorithm
JP2013507679A (en) * 2009-10-08 2013-03-04 スリーディー エム.ティー.ピー.リミテッド Method and system capable of 3D printing of 3D object model
CN116012491A (en) * 2023-03-20 2023-04-25 电科疆泰(深圳)科技发展有限公司 Polygonal filling method and device
CN116012491B (en) * 2023-03-20 2023-09-19 电科疆泰(深圳)科技发展有限公司 Polygonal filling method and device

Similar Documents

Publication Publication Date Title
US11676335B2 (en) Tessellation method using vertex tessellation factors
JP6826607B2 (en) Orthogonal projection-based texture atlas packing for 3D mesh
US7212205B2 (en) Curved surface image processing apparatus and curved surface image processing method
JP3358169B2 (en) Mirror surface rendering method and apparatus
US20110267346A1 (en) Tessellation of patches of surfaces in a tile based rendering system
US20210183068A1 (en) Self-Adaptive Point Cloud Stripe Division Method
US7840057B2 (en) Simultaneous computation of multiple points on one or multiple cut lines
JPH08138082A (en) Method and system for generation of square mesh
JP3352181B2 (en) Image data processing method and apparatus
JPH1011590A (en) Method for geometrically dividing recessed polygon
CN114429535A (en) Smooth cutting method and device for triangular mesh curved surface
JP4017467B2 (en) Triangular mesh data compression method and program
KR101417714B1 (en) Acceleration method of quad-tree triangulation for realtime terrain rendering using bimodal vertex splitting method
CN111784796A (en) Terrain grid generation method, device, equipment and medium
JPS6175904A (en) Section curve producing method of free curved surface
KR101626498B1 (en) Apparatus and method for calculating wind load considering topographic factor
JP2006010823A (en) Method for generating three-dimensional display data of directional polygon
JP2003346177A (en) Radiosity geometric processing method using triangular patch
JP2913663B2 (en) How to create a free-form surface of an object
JP2006011544A (en) Method for generating earth surface polygon
JP2002328958A (en) Mesh generation method, program, recording medium, and mesh generation system
CN112652034A (en) Method and device for generating two-dimensional and three-dimensional integrated military chess hexagonal lattices
JP3718345B2 (en) Device for aligning normal direction of shape data and recording medium
Gan et al. Flattening developable bi-parametric surfaces
JP2003244461A (en) Color gamut calculation method and apparatus therefor