[go: up one dir, main page]

JP2014211822A - Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program - Google Patents

Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program Download PDF

Info

Publication number
JP2014211822A
JP2014211822A JP2013088767A JP2013088767A JP2014211822A JP 2014211822 A JP2014211822 A JP 2014211822A JP 2013088767 A JP2013088767 A JP 2013088767A JP 2013088767 A JP2013088767 A JP 2013088767A JP 2014211822 A JP2014211822 A JP 2014211822A
Authority
JP
Japan
Prior art keywords
polygon
polyhedron
unit
vertices
vertex
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
JP2013088767A
Other languages
Japanese (ja)
Inventor
仁 深尾
Hitoshi Fukao
仁 深尾
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.)
NTT Facilities Inc
Original Assignee
NTT Facilities Inc
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 NTT Facilities Inc filed Critical NTT Facilities Inc
Priority to JP2013088767A priority Critical patent/JP2014211822A/en
Publication of JP2014211822A publication Critical patent/JP2014211822A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Geometry (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

PROBLEM TO BE SOLVED: To more properly determine contact relation between surfaces.SOLUTION: A contact surface detection system includes, a coordinates data acquisition part which acquires coordinate data of apex of a first polyhedron and coordinate data of apex of a second polyhedron, a surface selection part which selects a first surface from the surface forming the first polyhedron, and selects a second surface from the surface forming the second polyhedron, a connotation determination part which determines whether or not at least one apex among apexes of the first polygon forming the first surface is connoted in the second polygon forming the second surface, and a contact surface detection part which, according to determination result of the connotation determination part, detects a surface contacting to the surface forming the second polyhedron among the surfaces forming the first polyhedron.

Description

本発明は、接触面検出システム、状態変化算出システム、内包判定システム、接触面検出方法およびプログラムに関する。   The present invention relates to a contact surface detection system, a state change calculation system, an inclusion determination system, a contact surface detection method, and a program.

複数の図形の位置関係の判定について、幾つかの技術が提案されている。例えば、特許文献1に記載の隠れ線・隠れ面演算処理方式では、図形のモデルを形成する平面を三角形に分割する。そして、4行4列の行列式演算を用いて、点が、三角形を含む平面よりも内側にあるか外側にあるかの判定や、辺と辺とが交差するか否かの判定を行って、三角形が他の三角形に隠される部分を判定する。
特許文献1では、これにより、複雑な図形同士の干渉性の判断を4行4列の行列式演算により統一的に処理することができる、とされている。
Several techniques have been proposed for determining the positional relationship between a plurality of figures. For example, in the hidden line / hidden surface calculation processing method described in Patent Document 1, a plane forming a figure model is divided into triangles. Then, using a 4 × 4 determinant, it is determined whether the point is inside or outside the plane including the triangle, and whether the side and the side intersect is determined. The part where the triangle is hidden by other triangles is determined.
According to Patent Document 1, this makes it possible to uniformly determine the coherence between complex figures by determinant calculation of 4 rows and 4 columns.

特開昭61−265677号公報JP-A 61-265777

ところで、建築物を構成する個々の部材の経年劣化は、他の建築物との位置関係によって変化し得る。特に、建築物の面と他の建築物の面とが接する場合、部材の経年劣化に影響が生じる。かかる部材の経年劣化の予測では、建築物の前後関係よりも面同士の接触関係が重要となる。
一方、特許文献1に記載の技術は、図形の前後関係に起因する図形同士の干渉に関するものであり、面同士の接触関係の判定に適用した場合、不都合が生じるおそれがある。例えば、特許文献1では、辺と辺との交差を生じない接触関係の判定について十分に示されていない。
By the way, the aging deterioration of each member which comprises a building can change with the positional relationship with another building. In particular, when the surface of the building is in contact with the surface of another building, the aging of the member is affected. In the prediction of the aging deterioration of such a member, the contact relationship between the faces is more important than the context of the building.
On the other hand, the technique described in Patent Document 1 relates to interference between figures caused by the context of figures, and when applied to the determination of contact relation between faces, there is a possibility that inconvenience may occur. For example, Patent Document 1 does not fully show the determination of the contact relationship that does not cause an intersection between sides.

本発明は、このような事情を考慮してなされたものであり、その目的は、面同士の接触関係の判定をより適切に行うことができる接触面検出システム、状態変化算出システム、内包判定システム、接触面検出方法およびプログラムを提供することにある。   The present invention has been made in consideration of such circumstances, and the object thereof is a contact surface detection system, state change calculation system, and inclusion determination system that can more appropriately determine the contact relationship between surfaces. Another object is to provide a contact surface detection method and program.

この発明は上述した課題を解決するためになされたもので、本発明の一態様による接触面検出システムは、第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する座標データ取得部と、前記第1多面体を形成する面から第1面を選択し、前記第2多面体を形成する面から第2面を選択する面選択部と、前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定部と、前記内包判定部の判定結果に応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する接触面検出部と、を具備することを特徴とする。   The present invention has been made to solve the above-described problem, and a contact surface detection system according to an aspect of the present invention is a coordinate system for acquiring coordinate data of vertexes of a first polyhedron and coordinate data of vertexes of a second polyhedron. A data acquisition unit; a surface selection unit that selects a first surface from a surface that forms the first polyhedron; and a second surface that selects a second surface from a surface that forms the second polyhedron; and a first that forms the first surface An inclusion determination unit that determines whether or not at least one vertex of the polygon vertices is included in the second polygon that forms the second surface, and according to the determination result of the inclusion determination unit, And a contact surface detecting unit that detects a surface that contacts the surface that forms the second polyhedron among the surfaces that form the first polyhedron.

また、本発明の他の一態様による接触面検出システムは、上述の接触面検出システムであって、前記内包判定部は、点が凸多角形に内包されるか否かの判定を、当該点と、当該凸多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、当該凸多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、当該凸多角形の面積との比較にて行う面積比較部を具備し、前記第1多角形の頂点のうち少なくとも1つの頂点と、前記第2多角形または当該第2多角形を分割して得られる凸多角形を前記面積比較部に適用して、前記第1多角形の頂点のうち少なくとも1つの頂点が、前記第2多角形に内包されているか否かを判定する、ことを特徴とする。   A contact surface detection system according to another aspect of the present invention is the above-described contact surface detection system, wherein the inclusion determination unit determines whether or not a point is included in a convex polygon. And a vertex of the convex polygon having an area of a triangle composed of a line segment connecting each of the two adjacent vertices of the vertex of the convex polygon and a side connecting the two adjacent vertices. An area comparison unit that performs comparison between the total of all the combinations of two adjacent vertices and the area of the convex polygon, and at least one of the vertices of the first polygon; A second polygon or a convex polygon obtained by dividing the second polygon is applied to the area comparison unit, and at least one vertex of the first polygon is changed to the second polygon. It is characterized by determining whether it is included or not.

また、本発明の他の一態様による接触面検出システムは、上述の接触面検出システムであって、前記第2多角形を、当該第2多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する分割部を具備し、前記内包判定部は、前記第1多角形の頂点のうち少なくとも1つの頂点と、前記分割部の分割にて得られる三角形のうち少なくとも1つの三角形とを前記面積比較部に適用して、前記第1多角形の頂点のうち少なくとも1つの頂点が、前記第2多角形に内包されているか否かを判定する、ことを特徴とする。   A contact surface detection system according to another aspect of the present invention is the above-described contact surface detection system, wherein the second polygon includes one vertex of the second polygon and a vertex adjacent to the vertex. A division unit that divides the triangles into line segments that connect each other vertex, and the inclusion determination unit is obtained by dividing the at least one vertex among the vertices of the first polygon and the division unit. Applying at least one of the triangles to the area comparing unit to determine whether at least one vertex of the first polygon is included in the second polygon; It is characterized by that.

また、本発明の他の一態様による接触面検出システムは、上述の接触面検出システムであって、前記第1多角形の辺と前記第2多角形の辺とが交差するか否かを判定する交差判定部を具備し、前記接触面検出部は、前記内包判定部の判定結果と前記交差判定部の判定結果とに応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する、ことを特徴とする。   A contact surface detection system according to another aspect of the present invention is the contact surface detection system described above, and determines whether or not the side of the first polygon intersects the side of the second polygon. And the contact surface detection unit determines the second polyhedron among the surfaces forming the first polyhedron according to the determination result of the inclusion determination unit and the determination result of the intersection determination unit. It is characterized by detecting a surface in contact with the surface to be formed.

また、本発明の他の一態様による状態変化算出システムは、第1構造物の形状に対応した第1多面体と第2構造物の形状に対応した第2多面体とについて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する請求項1から4のいずれか一項に記載の接触面検出システムと、前記接触面検出システムが検出した接触状況に基づいて、前記第1構造物または前記第2構造物の少なくとも一部について、当該構造物を構成する部材の経時的な状態変化を算出する状態変化算出部と、を具備することを特徴とする。   The state change calculation system according to another aspect of the present invention forms the first polyhedron for a first polyhedron corresponding to the shape of the first structure and a second polyhedron corresponding to the shape of the second structure. The surface which contacts the surface which forms the said 2nd polyhedron among the surfaces to perform is detected based on the contact condition which the contact surface detection system as described in any one of Claim 1 to 4 and the said contact surface detection system detected A state change calculating unit that calculates a change in state of a member of the first structure or the second structure over time, at least a part of the first structure or the second structure;

また、本発明の他の一態様による内包判定システムは、ある点の座標データと多角形の頂点の座標データとを取得する座標データ取得部と、前記ある点と、前記多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、前記多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、前記多角形の面積とが等しいか否かを判定し、判定結果に応じて、前記ある点が、前記多角形に内包されているか否かを判定する内包判定部と、を具備することを特徴とする。   Further, an inclusion determination system according to another aspect of the present invention includes a coordinate data acquisition unit that acquires coordinate data of a certain point and coordinate data of a vertex of the polygon, the certain point, and the vertex of the polygon About all combinations of two adjacent vertices of the polygonal vertices of a triangular area composed of a line segment connecting each of two adjacent vertices and an edge connecting the two adjacent vertices An inclusion determination unit that determines whether or not the total of the polygon and the area of the polygon are equal, and determines whether the certain point is included in the polygon according to a determination result. It is characterized by doing.

また、本発明の他の一態様による接触面検出方法は、接触面検出システムの接触面検出方法であって、第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する座標データ取得ステップと、前記第1多面体を形成する面から第1面を選択し、前記第2多面体を形成する面から第2面を選択する面選択ステップと、前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定ステップと、前記内包判定ステップでの判定結果に応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する接触面検出ステップと、を具備することを特徴とする。   A contact surface detection method according to another aspect of the present invention is a contact surface detection method of a contact surface detection system, and acquires coordinate data of vertexes of a first polyhedron and coordinate data of vertices of a second polyhedron. A coordinate data acquisition step, a surface selection step of selecting a first surface from the surfaces forming the first polyhedron, selecting a second surface from the surfaces forming the second polyhedron, and a first surface forming the first surface. According to an inclusion determination step for determining whether or not at least one vertex of one polygon vertex is included in the second polygon forming the second surface, and according to a determination result in the inclusion determination step And a contact surface detecting step of detecting a surface in contact with a surface forming the second polyhedron among surfaces forming the first polyhedron.

また、本発明の他の一態様によるプログラムは、接触面検出システムが備えるコンピュータに、第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する座標データ取得ステップと、前記第1多面体を形成する面から第1面を選択し、前記第2多面体を形成する面から第2面を選択する面選択ステップと、前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定ステップと、前記内包判定ステップでの判定結果に応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する接触面検出ステップと、を実行させるためのプログラムである。   According to another aspect of the present invention, there is provided a program according to another aspect of the present invention, wherein a computer provided in a contact surface detection system acquires coordinate data of vertexes of a first polyhedron and coordinate data of vertexes of a second polyhedron, A surface selection step of selecting a first surface from the surfaces forming the first polyhedron and selecting a second surface from the surfaces forming the second polyhedron, and a vertex of the first polygon forming the first surface Forming the first polyhedron according to an inclusion determination step for determining whether or not at least one vertex is included in the second polygon forming the second surface, and a determination result in the inclusion determination step And a contact surface detecting step for detecting a surface in contact with a surface forming the second polyhedron among the surfaces to be performed.

この発明によれば、面同士の接触関係の判定をより適切に行うことができる。   According to this invention, it is possible to more appropriately determine the contact relationship between surfaces.

本発明の第1の実施形態における接触面検出システムの機能構成を示す概略ブロック図である。It is a schematic block diagram which shows the function structure of the contact surface detection system in the 1st Embodiment of this invention. 同実施形態における座標データ取得部がデータを取得する多面体の例を示す説明図である。It is explanatory drawing which shows the example of the polyhedron from which the coordinate data acquisition part in the embodiment acquires data. 同実施形態における分割部が行う多角形の分割の例を示す説明図である。It is explanatory drawing which shows the example of the polygon division | segmentation which the division part in the embodiment performs. 同実施形態における面選択部が選択する面の例を示す説明図である。It is explanatory drawing which shows the example of the surface which the surface selection part in the embodiment selects. 同実施形態における面選択部が選択する面の、もう1つの例を示す説明図である。It is explanatory drawing which shows another example of the surface which the surface selection part in the same embodiment selects. 2つの三角形の位置関係の例を示す説明図である。It is explanatory drawing which shows the example of the positional relationship of two triangles. 同実施形態における面積比較部が面積の合計を算出する三角形の例を示す説明図である。It is explanatory drawing which shows the example of the triangle which the area comparison part in the embodiment calculates the total of an area. 同実施形態における面積比較部が面積の合計を算出する三角形の、もう1つの例を示す説明図である。It is explanatory drawing which shows another example of the triangle which the area comparison part in the embodiment calculates the total of an area. 交差する2つの辺の例を示す説明図である。It is explanatory drawing which shows the example of two sides which cross | intersect. 交差しない2つの辺の例を示す説明図である。It is explanatory drawing which shows the example of two sides which do not cross | intersect. 交差しない2つの辺の、もう1つの例を示す説明図である。It is explanatory drawing which shows another example of two sides which do not cross | intersect. 同実施形態における結果出力部による接触面検出部の判定結果の表示例を示す説明図である。It is explanatory drawing which shows the example of a display of the determination result of the contact surface detection part by the result output part in the embodiment. 同実施形態において、接触面検出システムが多面体の接触面を検出する処理手順の例を示す説明図である。In the embodiment, it is explanatory drawing which shows the example of the process sequence which a contact surface detection system detects the contact surface of a polyhedron. 同実施形態において、面選択部が同一平面に含まれる面を検出する処理手順の例を示すフローチャートである。In the same embodiment, it is a flowchart which shows the example of the process sequence in which the surface selection part detects the surface contained in the same plane. 同実施形態において、内包判定部が、2つの面の組み合わせについて、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されるか否かを判定する処理手順の例を示すフローチャートである。In the same embodiment, the inclusion determination unit determines whether at least one of the vertices of the polygon forming one of the faces is included in the polyhedron forming the other face with respect to the combination of the two faces. It is a flowchart which shows the example of a process sequence. 同実施形態において、交差判定部が、2つの面の組み合わせについて、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する処理手順の例を示すフローチャートである。In the embodiment, the intersection determination unit shows an example of a processing procedure for determining whether or not there is an intersection between a triangle side included in one surface and a triangle side included in the other surface, for a combination of two surfaces. It is a flowchart. 本発明の第2の実施形態における状態変化算出システムの機能構成を示す概略ブロック図である。It is a schematic block diagram which shows the function structure of the state change calculation system in the 2nd Embodiment of this invention. 本発明の第3の実施形態における内包判定システムの機能構成を示す概略ブロック図である。It is a schematic block diagram which shows the function structure of the inclusion determination system in the 3rd Embodiment of this invention.

<第1の実施形態>
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の第1の実施形態における接触面検出システムの機能構成を示す概略ブロック図である。同図において、接触面検出システム10は、座標データ取得部110と、分割部120と、面選択部130と、接触面検出部140と、結果出力部150とを具備する。接触面検出部140は、内包判定部141と、交差判定部143とを具備する。内包判定部141は、面積比較部142を具備する。
<First Embodiment>
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a schematic block diagram showing a functional configuration of a contact surface detection system according to the first embodiment of the present invention. In FIG. 1, the contact surface detection system 10 includes a coordinate data acquisition unit 110, a division unit 120, a surface selection unit 130, a contact surface detection unit 140, and a result output unit 150. The contact surface detection unit 140 includes an inclusion determination unit 141 and an intersection determination unit 143. The inclusion determination unit 141 includes an area comparison unit 142.

接触面検出システム10は、例えば複数の建築物のモデルなど、複数の多面体における接触面を検出する。
座標データ取得部110は、複数の多面体の頂点の座標データを取得する。例えば、座標データ取得部110は、建築物のモデルとしての多面体の頂点の座標データを、CAD(Computer Aided Design)データまたはBIM(Building Information Modeling)データにて取得する。
The contact surface detection system 10 detects contact surfaces in a plurality of polyhedrons such as models of a plurality of buildings, for example.
The coordinate data acquisition unit 110 acquires coordinate data of vertices of a plurality of polyhedra. For example, the coordinate data acquisition unit 110 acquires coordinate data of vertexes of a polyhedron as a building model as CAD (Computer Aided Design) data or BIM (Building Information Modeling) data.

図2は、座標データ取得部110がデータを取得する多面体の例を示す説明図である。同図に示す例では、直方体ABCD−EFGHと、直方体abcd−efghとが示されている。座標データ取得部110は、これら直方体の各頂点の座標データを取得する。また、図2の例において、面ABCDの一部と、面abcdの一部とが接している。
以下では、座標データ取得部110がデータを取得する多面体のうち2つを、ぞれぞれ、第1多面体、第2多面体と表記する。従って、座標データ取得部110は、第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する。
なお、座標データ取得部110がデータを取得する多面体は直方体に限らない。従って、第1多面体、第2多面体のいずれも直方体に限らない。
FIG. 2 is an explanatory diagram illustrating an example of a polyhedron from which the coordinate data acquisition unit 110 acquires data. In the example shown in the figure, a rectangular parallelepiped ABCD-EFGH and a rectangular parallelepiped abcd-efgh are shown. The coordinate data acquisition unit 110 acquires coordinate data of each vertex of the rectangular parallelepiped. In the example of FIG. 2, part of the surface ABCD is in contact with part of the surface abcd.
Hereinafter, two of the polyhedrons from which the coordinate data acquisition unit 110 acquires data are referred to as a first polyhedron and a second polyhedron, respectively. Accordingly, the coordinate data acquisition unit 110 acquires the coordinate data of the vertices of the first polyhedron and the coordinate data of the vertices of the second polyhedron.
The polyhedron from which the coordinate data acquisition unit 110 acquires data is not limited to a rectangular parallelepiped. Therefore, neither the first polyhedron nor the second polyhedron is limited to a rectangular parallelepiped.

分割部120は、座標データ取得部110がデータを取得した多面体の面を形成する多角形の各々を、当該多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分(対角線)にて三角形に分割する。分割部120が分割する多角形には、後述する面選択部130が選択する第2面を形成する第2多角形が含まれる。従って、分割部120は、第2多角形を、当該第2多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する。   The dividing unit 120 is a line that connects each of the polygons forming the surface of the polyhedron from which the coordinate data acquisition unit 110 has acquired data to one vertex of the polygon and each vertex other than the vertex adjacent to the vertex. Divide into triangles at minutes (diagonal lines). The polygon that the dividing unit 120 divides includes a second polygon that forms a second surface selected by the surface selection unit 130 described later. Therefore, the dividing unit 120 divides the second polygon into triangles by line segments connecting one vertex of the second polygon and each vertex other than the vertex adjacent to the vertex.

図3は、分割部120が行う多角形の分割の例を示す説明図である。同図の例において、分割部120は、長方形ABCDを対角線ACにて三角形ABCと三角形ACDとに分割している。
なお、分割部120が行う多角形の分割は、多角形の辺と交差しない線分にて多角形を三角形に分割するものであればよい。従って、分割部120が、多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分以外の線分を用いて多角形の分割を行うようにしてもよい。例えば、分割対象の多角形が複雑な形状の凹多角形である場合、分割部120が、多角形の辺と交差しない任意の対角線にて多角形を分割する処理を、分割にて得られる図形が全て三角形になるまで繰り返すようにしてもよい。
FIG. 3 is an explanatory diagram illustrating an example of polygonal division performed by the dividing unit 120. In the example of the figure, the dividing unit 120 divides the rectangle ABCD into a triangle ABC and a triangle ACD along a diagonal line AC.
The polygon division performed by the dividing unit 120 only needs to divide the polygon into triangles by line segments that do not intersect the sides of the polygon. Therefore, the dividing unit 120 may perform polygon division using a line segment other than a line segment that connects one vertex of the polygon and each vertex other than the vertex adjacent to the vertex. For example, when the polygon to be divided is a concave polygon with a complicated shape, the dividing unit 120 is a figure obtained by dividing the process of dividing the polygon by an arbitrary diagonal line that does not intersect with the sides of the polygon. You may repeat until all become triangles.

一方、分割部120が1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ対角線にて三角形を分割することで、対角線同士の交差を回避することができ、分割にて得られる三角形の数の増大を防止することができる。また、分割部120が1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ対角線にて三角形を分割することで、分割に用いる線分が明確になり、分割部120の行う処理の自動化が容易になる。   On the other hand, when the dividing unit 120 divides a triangle by a diagonal line connecting one vertex and each vertex other than the adjacent vertex, the intersection of the diagonal lines can be avoided and obtained by the division. An increase in the number of triangles can be prevented. In addition, the dividing unit 120 divides a triangle by a diagonal line connecting one vertex and each vertex other than the vertex adjacent to the vertex so that a line segment used for the division becomes clear, and the processing performed by the dividing unit 120 It becomes easy to automate.

面選択部130は、第1多面体を形成する面から第1面を選択し、第2多面体を形成する面から第2面を選択する。具体的には、面選択部130は、第1多面体を形成する各面、および、第2多面体を形成する各面から、同一平面に含まれる面を検出する。例えば、面選択部130は、各多角形を形成する各面の3つの頂点を通る平面の方程式の係数を求め、得られた方程式の係数を比較することで、同一平面に含まれる三角形を検出する。面選択部130が平面の方程式を求める手法として、当該平面の単位法線ベクトルを算出して方程式の係数を求める方法など、公知の方法を用いることができる。
以下では、面選択部130が選択する第1面を形成する多角形を第1多角形と表記し、面選択部130が選択する第2面を形成する多角形を第2多角形と表記する。
The surface selection unit 130 selects the first surface from the surfaces that form the first polyhedron, and selects the second surface from the surfaces that form the second polyhedron. Specifically, the surface selection unit 130 detects a surface included in the same plane from each surface forming the first polyhedron and each surface forming the second polyhedron. For example, the surface selection unit 130 detects the triangles included in the same plane by calculating the coefficients of the equations of the plane passing through the three vertices of each surface forming each polygon and comparing the coefficients of the obtained equations. To do. As a method for the plane selection unit 130 to obtain a plane equation, a known method such as a method of calculating a unit normal vector of the plane and obtaining a coefficient of the equation can be used.
Hereinafter, the polygon forming the first surface selected by the surface selection unit 130 is referred to as a first polygon, and the polygon forming the second surface selected by the surface selection unit 130 is referred to as a second polygon. .

図4は、面選択部130が選択する面の例を示す説明図である。同図では、図2の例における直方体ABCD−EFGHと、直方体abcd−efghとが示されており、さらに平面P11が示されている。
図4の例において、図2の場合と同様に、長方形ABCDと長方形abcdとは同一平面上にある。具体的には、長方形ABCDと長方形abcdとは、いずれも平面P11に含まれている。面選択部130は、同一平面上にある長方形ABCDと長方形abcdとを選択する。なお、上記のように面ABCDの一部と、面abcdの一部とが接している。
FIG. 4 is an explanatory diagram illustrating an example of a surface selected by the surface selection unit 130. In the drawing, a rectangular parallelepiped ABCD-EFGH and a rectangular parallelepiped abcd-efgh in the example of FIG. 2 are shown, and a plane P11 is further shown.
In the example of FIG. 4, as in the case of FIG. 2, the rectangle ABCD and the rectangle abcd are on the same plane. Specifically, the rectangle ABCD and the rectangle abcd are both included in the plane P11. The surface selection unit 130 selects a rectangle ABCD and a rectangle abcd on the same plane. As described above, part of the surface ABCD is in contact with part of the surface abcd.

図5は、面選択部130が選択する面の、もう1つの例を示す説明図である。同図では、直方体ABCD−EFGHと、直方体イロハニ−ホヘトチと、平面P11とが示されている。直方体ABCD−EFGHと平面P11とは、図4の例に示すものと同一である。
図5の例において、長方形ABCDと長方形イロハニとは同一平面上にある。具体的には、長方形ABCDと長方形イロハニとは、いずれも平面P11に含まれている。面選択部130は、同一平面上にある長方形ABCDと長方形イロハニとを選択する。なお、図5の例の長方形ABCDと長方形イロハニとは、互いに接してはいない。
FIG. 5 is an explanatory diagram illustrating another example of the surface selected by the surface selection unit 130. In the same figure, a rectangular parallelepiped ABCD-EFGH, a rectangular parallelepiped Irohani Hohetochi, and a plane P11 are shown. The rectangular parallelepiped ABCD-EFGH and the plane P11 are the same as those shown in the example of FIG.
In the example of FIG. 5, the rectangle ABCD and the rectangle Irohani are on the same plane. Specifically, the rectangle ABCD and the rectangle Irohani are both included in the plane P11. The surface selection unit 130 selects a rectangle ABCD and a rectangle Irohani on the same plane. Note that the rectangle ABCD and the rectangle Irohani in the example of FIG. 5 are not in contact with each other.

このように、面選択部130が選択する面には、互いに接していない面が含まれる。そこで、接触面検出部140が、面選択部130の選択した面のうち、互いに接している面を検出する。
具体的には、接触面検出部140は、面選択部130が選択した第1面と第2面について、分割部120の分割にて得られた三角形同士が接するか否かを判定することで、第1面と第2面とが接するか否かを判定する。
As described above, the surfaces selected by the surface selection unit 130 include surfaces that are not in contact with each other. Therefore, the contact surface detection unit 140 detects the surfaces in contact with each other among the surfaces selected by the surface selection unit 130.
Specifically, the contact surface detection unit 140 determines whether or not the triangles obtained by the division of the division unit 120 are in contact with each other with respect to the first surface and the second surface selected by the surface selection unit 130. Then, it is determined whether or not the first surface and the second surface are in contact with each other.

図6は、2つの三角形の位置関係の例を示す説明図である。同図において、2つの三角形の位置関係のパターンの例としてパターンP111、P121、P131、および、P141〜P146が示されている。このうち、パターンP111は、2つの三角形が接していないパターンを示しており、他のパターンは、2つの三角形が接しているパターンを示している。   FIG. 6 is an explanatory diagram showing an example of the positional relationship between two triangles. In the figure, patterns P111, P121, P131, and P141 to P146 are shown as examples of the positional relationship pattern of two triangles. Among these, the pattern P111 indicates a pattern in which two triangles are not in contact with each other, and the other pattern indicates a pattern in which two triangles are in contact with each other.

パターンP111では、2つの三角形のいずれの頂点も他方の三角形に内包されていない。具体的には、パターンP111において、頂点A、B、Cのいずれも三角形abcの外に位置する。なお、ここでいう内包は、内包される点が内包する多角形の辺または頂点と重なっている場合を含む。
また、2つの三角形のいずれの辺も、他方の三角形の辺と交差していない。具体的には、辺AB、BC、CAのいずれも、辺ab、bc、caのいずれとも交差していない。
In the pattern P111, neither vertex of the two triangles is included in the other triangle. Specifically, in the pattern P111, all of the vertices A, B, and C are located outside the triangle abc. In addition, the inclusion here includes the case where the included point overlaps the side or vertex of the included polygon.
Also, neither side of the two triangles intersects the other triangle side. Specifically, none of the sides AB, BC, and CA intersects any of the sides ab, bc, and ca.

パターンP121は、2つの三角形が接しているが、いずれの頂点も他方の三角形に内包されないパターンを示している。具体的には、パターンP121において、頂点A、B、Cのいずれも三角形abcの外に位置する。また、頂点a、b、cのいずれも三角形ABCの外に位置する。一方、パターンP121では、2つの三角形の辺と辺とが交差している。例えば、辺ABと、辺abとが交差している
このように、2つの三角形が互いに接しているが、いずれの頂点も他方の三角形に内包されない場合、2つの三角形の辺と辺との交差を検出することで、2つの三角形が互いに接すると判定することが考えられる。
The pattern P121 shows a pattern in which two triangles are in contact but none of the vertices are included in the other triangle. Specifically, in the pattern P121, all of the vertices A, B, and C are located outside the triangle abc. In addition, all of the vertices a, b, and c are located outside the triangle ABC. On the other hand, in the pattern P121, the sides of the two triangles intersect. For example, side AB and side ab intersect In this way, if two triangles touch each other, but none of the vertices are included in the other triangle, the intersection of the sides of the two triangles It can be considered that it is determined that two triangles are in contact with each other.

パターンP131は、2つの三角形が接しているが、いずれの辺も他方の三角形の辺と交差しないパターンを示している。具体的には、パターンP131において、2つの三角形のいずれの辺も、他方の三角形の辺と交差していない。具体的には、辺AB、BC、CAのいずれも、辺ab、bc、caのいずれとも交差していない。一方、パターンP131では、一方の三角形の頂点が他方の三角形に内包されている。具体的には、頂点a、b、cのいずれも、三角形ABCに内包されている。
このように、2つの三角形が接しているが、いずれの辺も他方の三角形の辺と交差しない場合、他方の三角形に内包される頂点を検出することで、2つの三角形が互いに接すると判定することが考えられる。
The pattern P131 shows a pattern in which two triangles are in contact but none of the sides intersects the other triangle. Specifically, in the pattern P131, neither side of the two triangles intersects the side of the other triangle. Specifically, none of the sides AB, BC, and CA intersects any of the sides ab, bc, and ca. On the other hand, in the pattern P131, the vertex of one triangle is included in the other triangle. Specifically, all of the vertices a, b, and c are included in the triangle ABC.
In this way, two triangles touch each other, but if neither side intersects the other triangle side, it is determined that the two triangles touch each other by detecting the vertex contained in the other triangle. It is possible.

パターンP141は、一方の三角形の1つの頂点(頂点B)が他方の三角形に内包されるパターンを示している。パターンP142は、一方の三角形の2つの頂点(頂点bおよびc)が他方の三角形に内包されるパターンを示している。パターンP143は、2つの三角形が互いに他方の頂点を内包するパターンを示している。具体的には、三角形ABCは、頂点bおよびcを内包し、三角形abcは、頂点Bを内包している。   The pattern P141 shows a pattern in which one vertex (vertex B) of one triangle is included in the other triangle. The pattern P142 shows a pattern in which two vertices (vertices b and c) of one triangle are included in the other triangle. Pattern P143 shows a pattern in which two triangles contain the other vertex. Specifically, the triangle ABC includes vertices b and c, and the triangle abc includes the vertex B.

パターンP144は、2つの三角形が一致しているパターンを示している。パターンP145は、2つの三角形の2つの頂点がそれぞれ一致し、他の1つの頂点の一方が、他方の三角形に内包されるパターンを示している。パターンP146は、2つの三角形の2つの頂点がそれぞれ一致し、他の1つの頂点は、いずれも他方の三角形に内包されていないパターンを示す。   A pattern P144 shows a pattern in which two triangles match. The pattern P145 shows a pattern in which two vertices of two triangles match each other and one of the other vertices is included in the other triangle. The pattern P146 shows a pattern in which two vertices of two triangles match each other, and the other one vertex is not included in the other triangle.

パターンP141〜P146では、いずれも、2つの三角形が互いに接触している。また、パターンP141〜P146では、いずれも、他方の三角形に内包されている頂点があり、かつ、他方の三角形の辺と交差する辺がある。
以上のように、2つの三角形の辺と辺との交差の検出、および、他方の三角形に内包される頂点の検出の両方を行い、いずれか一方でも検出に成功した場合は、2つの三角形が互いに接触していると判定できる。
In each of the patterns P141 to P146, two triangles are in contact with each other. In each of the patterns P141 to P146, there are vertices that are included in the other triangle, and there are sides that intersect with the sides of the other triangle.
As described above, both the detection of the intersection of the sides of the two triangles and the detection of the vertices contained in the other triangle are performed, and if the detection is successful in either one, the two triangles are It can be determined that they are in contact with each other.

接触面検出部140は、内包判定部141にて、他方の三角形に内包される頂点の有無の判定を行う。また、接触面検出部140は、交差判定部143にて、2つの三角形の辺と辺との交差の有無の判定を行う。そして、接触面検出部140は、内包判定部141の判定結果と、交差判定部143の判定結果とに応じて、第1多面体を形成する面のうち第2多面体を形成する面に接する面を検出する。   In the contact surface detection unit 140, the inclusion determination unit 141 determines whether there is a vertex included in the other triangle. In addition, the contact surface detection unit 140 determines whether or not the two triangle sides intersect each other by the intersection determination unit 143. Then, the contact surface detection unit 140 determines a surface that contacts the surface that forms the second polyhedron among the surfaces that form the first polyhedron according to the determination result of the inclusion determination unit 141 and the determination result of the intersection determination unit 143. To detect.

上記のように、内包判定部141は、他方の三角形に内包される頂点の有無の判定を行う。この判定により、内包判定部141は、第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、第2面を形成する第2多角形に内包されているか否かを判定する。
内包判定部141において、面積比較部142は、点が凸多角形に内包されるか否かの判定を、点と凸多角形の頂点とを結んで得られる三角形の面積の合計と、凸多角形の面積との比較にて行う。より具体的には、面積比較部142は、点と、凸多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される各三角形の面積を算出する。そして、面積比較部142は、各三角形の面積の合計を算出する。すなわち、面積比較部142は、凸多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについて、上記の三角形の面積の合計を算出する。さらに、面積比較部142は、算出した面積の合計と、凸多角形の面積との比較にて、点が凸多角形に内包されるか否かを判定する。
As described above, the inclusion determination unit 141 determines whether there is a vertex included in the other triangle. By this determination, the inclusion determination unit 141 determines whether at least one vertex of the first polygon that forms the first surface is included in the second polygon that forms the second surface. .
In the inclusion determination unit 141, the area comparison unit 142 determines whether or not the point is included in the convex polygon, and determines the sum of the areas of the triangles obtained by connecting the point and the vertex of the convex polygon, and the convexity The comparison is made with the square area. More specifically, the area comparison unit 142 includes a point, a line segment that connects each of two adjacent vertices among the vertices of the convex polygon, and a side that connects the two adjacent vertices. Calculate the area of each triangle. Then, the area comparison unit 142 calculates the total area of each triangle. That is, the area comparison unit 142 calculates the total area of the triangles for all combinations of two adjacent vertices among the vertices of the convex polygon. Furthermore, the area comparison unit 142 determines whether or not the point is included in the convex polygon by comparing the calculated total area with the area of the convex polygon.

図7は、面積比較部142が面積の合計を算出する三角形の例を示す説明図である。同図において、点a、三角形ABCは、それぞれ、面積比較部142が取得する点、凸多角形の一例に該当する。例えば、面積比較部142は、第1多角形の1つの頂点と、分割部120が第2多角形を分割して得られた三角形とを取得する。   FIG. 7 is an explanatory diagram illustrating an example of a triangle in which the area comparison unit 142 calculates the total area. In the figure, a point a and a triangle ABC correspond to an example of a point and a convex polygon acquired by the area comparison unit 142, respectively. For example, the area comparison unit 142 acquires one vertex of the first polygon and a triangle obtained by dividing the second polygon by the dividing unit 120.

図7の例において、面積比較部142は、まず、三角形aABの面積と、aBCの面積と、aCAの面積とを算出する。面積比較部142が三角形の面積を算出する手法として、ベクトルの外積から三角形の面積を算出する手法など公知の手法を用いることができる。例えば、面積比較部142は、ベクトルaAとベクトルaBとの外積から三角形aABの面積を算出する。   In the example of FIG. 7, the area comparison unit 142 first calculates the area of the triangle aAB, the area of the aBC, and the area of the aCA. As a method for calculating the area of the triangle by the area comparison unit 142, a known method such as a method of calculating the area of the triangle from the outer product of the vectors can be used. For example, the area comparison unit 142 calculates the area of the triangle aAB from the outer product of the vector aA and the vector aB.

次に、面積比較部142は、三角形aAB、aBC、aCAの面積の合計を算出する。
また、面積比較部142は、三角形ABCの面積を算出する。そして、面積比較部142は、三角形aAB、aBC、aCAの面積の合計と、三角形ABCの面積とを比較する。
Next, the area comparison unit 142 calculates the total area of the triangles aAB, aBC, and aCA.
Further, the area comparison unit 142 calculates the area of the triangle ABC. Then, the area comparison unit 142 compares the total area of the triangles aAB, aBC, and aCA with the area of the triangle ABC.

図7の例では、点aは三角形ABCに内包されている。この場合、線分aA、aBおよびaCによって、三角形ABCが三角形aAB、aBCおよびaCAに分割されている。従って、三角形aAB、aBC、aCAの面積の合計と、三角形ABCの面積とが等しくなっている。
このように、点が三角形に内包されている場合、点と、三角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される各三角形の面積と、三角形の面積とが等しくなる。
そこで、面積比較部142は、三角形の面積の合計と凸多角形の面積とが等しいと判定した場合、点が多角形に内包されていると判定する。
In the example of FIG. 7, the point a is included in the triangle ABC. In this case, the triangle ABC is divided into triangles aAB, aBC, and aCA by the line segments aA, aB, and aC. Accordingly, the total area of the triangles aAB, aBC, and aCA is equal to the area of the triangle ABC.
As described above, when the point is included in the triangle, the point is constituted by a line segment connecting each of the two adjacent vertices among the vertices of the triangle, and a side connecting the two adjacent vertices. The area of each triangle is equal to the area of the triangle.
Therefore, if the area comparison unit 142 determines that the total area of the triangles is equal to the area of the convex polygon, the area comparison unit 142 determines that the point is included in the polygon.

なお、面積比較部142がベクトルの外積から三角形の面積を算出する際、平方根演算における丸め誤差などの誤差が生じることが考えられる。かかる誤差に対応するため、面積比較部142が、三角形の面積の合計と凸多角形の面積との比較において、完全一致に限らず、差の大きさが充分小さいと評価し得る場合にも等しいと判定するようにしてもよい。例えば、三角形の面積の合計と凸多角形の面積との差の大きさを凸多角形の面積で除算した値が所定の閾値以下である場合に、面積比較部142が、三角形の面積の合計と凸多角形の面積とが等しいと判定するようにしてもよい。   When the area comparison unit 142 calculates the area of the triangle from the outer product of the vectors, an error such as a rounding error in the square root calculation may occur. In order to cope with such an error, the area comparison unit 142 is not limited to a perfect match in the comparison of the total area of the triangle and the area of the convex polygon, and is equal to the case where the difference can be evaluated as sufficiently small. May be determined. For example, when the value obtained by dividing the difference between the total area of the triangles and the area of the convex polygons by the area of the convex polygons is equal to or smaller than a predetermined threshold, the area comparison unit 142 adds the total area of the triangles. And the area of the convex polygon may be determined to be equal.

図8は、面積比較部142が面積の合計を算出する三角形の、もう1つの例を示す説明図である。図7の場合と同様、点a、三角形ABCは、それぞれ、面積比較部142が取得する点、凸多角形の一例に該当する。図7の場合と同様、面積比較部142は、三角形aAB、aBC、aCAの面積との合計と、三角形ABCの面積とを比較する。   FIG. 8 is an explanatory diagram showing another example of a triangle for which the area comparison unit 142 calculates the total area. As in the case of FIG. 7, the point a and the triangle ABC correspond to examples of points and convex polygons acquired by the area comparison unit 142, respectively. As in the case of FIG. 7, the area comparison unit 142 compares the sum of the areas of the triangles aAB, aBC, and aCA with the area of the triangle ABC.

図8の例では、点aは三角形ABCに内包されていない。そして、三角形aABは、三角形ABCと重なっていない。また、三角形aBC、aCAは、いずれも一部が三角形ABCと重なっていない。このため、三角形aAB、aBC、aCAの面積の合計が、三角形ABCの面積よりも大きくなっている。
このように、点が三角形に内包されていない場合、点と、三角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される各三角形の面積が、三角形の面積よりも大きくなる。
そこで、面積比較部142は、三角形の面積の合計と凸多角形の面積とが異なると判定した場合、点が多角形に内包されていないと判定する。
In the example of FIG. 8, the point a is not included in the triangle ABC. The triangle aAB does not overlap the triangle ABC. Also, the triangles aBC and aCA are not partially overlapped with the triangle ABC. For this reason, the total area of the triangles aAB, aBC, and aCA is larger than the area of the triangle ABC.
As described above, when the point is not included in the triangle, the point is constituted by a line segment connecting each of the two adjacent vertices among the vertices of the triangle, and a side connecting the two adjacent vertices. The area of each triangle is larger than the area of the triangle.
Therefore, if the area comparison unit 142 determines that the total area of the triangle is different from the area of the convex polygon, the area comparison unit 142 determines that the point is not included in the polygon.

内包判定部141は、第1多角形の頂点のうち少なくとも1つの頂点と、第2多角形または当該第2多角形を分割して得られる凸多角形を面積比較部142に適用して、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かを判定する。
具体的には、内包判定部141は、第1多角形の頂点のうち少なくとも1つの頂点と、分割部120の分割にて得られる三角形のうち少なくとも1つの三角形とを面積比較部142に適用して、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かを判定する。
The inclusion determination unit 141 applies at least one vertex of the vertices of the first polygon and the second polygon or the convex polygon obtained by dividing the second polygon to the area comparison unit 142, It is determined whether or not at least one vertex among the vertices of one polygon is included in the second polygon.
Specifically, the inclusion determination unit 141 applies at least one vertex among the vertices of the first polygon and at least one triangle among the triangles obtained by the division of the division unit 120 to the area comparison unit 142. Then, it is determined whether at least one vertex of the first polygon is contained in the second polygon.

ただし、面積比較部142は、三角形に限らず凸多角形に点が内包されるか否かの判定を行うことができる。従って、内包判定部141が、分割部120の分割にて得られた三角形に限らず凸多角形を面積比較部142に適用するようにしてもよい。
例えば、座標データ取得部110がデータを取得する多面体の面が全て凸多角形である場合、内包判定部141が、当該多面体の面を面積比較部142に適用するようにしてもよい。この場合、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かの判定に関して、分割部120は多角形の分割を行う必要がない。
However, the area comparison unit 142 can determine whether a point is included in a convex polygon as well as a triangle. Therefore, the inclusion determination unit 141 may apply a convex polygon to the area comparison unit 142 as well as the triangle obtained by the division of the division unit 120.
For example, when all the polyhedron surfaces from which the coordinate data acquisition unit 110 acquires data are convex polygons, the inclusion determination unit 141 may apply the polyhedron surfaces to the area comparison unit 142. In this case, regarding the determination of whether or not at least one vertex among the vertices of the first polygon is included in the second polygon, the dividing unit 120 does not need to divide the polygon.

交差判定部143は、第1多角形の辺と第2多角形の辺とが交差するか否かを判定する。交差判定部143が線分と線分との交差の有無を判定する手法として、例えばベクトルの外積を用いる手法など公知の手法を用いることができる。
図9は、交差する2つの辺の例を示す説明図である。同図において、線分abは第1多角形の辺の一例に該当し、線分ABは第2多角形の辺の一例に該当する。
The intersection determination unit 143 determines whether or not the sides of the first polygon and the sides of the second polygon intersect. As a method for determining whether or not the intersection determination unit 143 intersects the line segment, a known method such as a method using an outer product of vectors can be used.
FIG. 9 is an explanatory diagram illustrating an example of two intersecting sides. In the figure, a line segment ab corresponds to an example of a side of a first polygon, and a line segment AB corresponds to an example of a side of a second polygon.

図9の例では、線分ABから見て点aと点bとが反対側に位置している。このため、(ベクトルAB)×(ベクトルAa)にて得られる法線ベクトルと、(ベクトルAB)×(ベクトルAb)にて得られる法線ベクトルとは逆向きになる。但し「×」はベクトルの外積を示す。
同様に、(ベクトルab)×(ベクトルaA)にて得られる法線ベクトルと、(ベクトルab)×(ベクトルaB)にて得られる法線ベクトルとは逆向きになる。
このように、いずれの辺を基準にしても法線ベクトルが逆向きになる場合、2つの辺が交差していると判定することができる。
In the example of FIG. 9, the point a and the point b are located on the opposite side when viewed from the line segment AB. For this reason, the normal vector obtained by (vector AB) × (vector Aa) is opposite to the normal vector obtained by (vector AB) × (vector Ab). However, “x” indicates an outer product of vectors.
Similarly, the normal vector obtained by (vector ab) × (vector aA) is opposite to the normal vector obtained by (vector ab) × (vector aB).
As described above, when the normal vector is reversed regardless of which side is used as a reference, it can be determined that the two sides intersect.

図10は、交差しない2つの辺の例を示す説明図である。図9の場合と同様、線分abは第1多角形の辺の一例に該当し、線分ABは第2多角形の辺の一例に該当する。
図9の場合と同様、図10においても、線分ABから見て点aと点bとが反対側に位置している。このため、(ベクトルAB)×(ベクトルAa)にて得られる法線ベクトルと、(ベクトルAB)×(ベクトルAb)にて得られる法線ベクトルとは逆向きになる。
一方、線分abから見て点Aと点Bとは同じ側に位置している。このため、(ベクトルab)×(ベクトルaA)にて得られる法線ベクトルと、(ベクトルab)×(ベクトルaB)にて得られる法線ベクトルとは同じ向きになる。
このように、一方の辺を基準にすると法線ベクトルが逆向きになるが、他方の辺を基準にすると法線ベクトルの向きが同じである場合、2つの辺は交差していないと判定することができる。
FIG. 10 is an explanatory diagram illustrating an example of two sides that do not intersect. As in the case of FIG. 9, the line segment ab corresponds to an example of the side of the first polygon, and the line segment AB corresponds to an example of the side of the second polygon.
Similarly to the case of FIG. 9, also in FIG. 10, the point a and the point b are located on the opposite side when viewed from the line segment AB. For this reason, the normal vector obtained by (vector AB) × (vector Aa) is opposite to the normal vector obtained by (vector AB) × (vector Ab).
On the other hand, the point A and the point B are located on the same side when viewed from the line segment ab. For this reason, the normal vector obtained by (vector ab) × (vector aA) and the normal vector obtained by (vector ab) × (vector aB) are in the same direction.
As described above, when one side is used as a reference, the normal vector is reversed, but when the other side is used as a reference, if the direction of the normal vector is the same, it is determined that the two sides do not intersect. be able to.

図11は、交差しない2つの辺の、もう1つの例を示す説明図である。図9の場合と同様、線分abは第1多角形の辺の一例に該当し、線分ABは第2多角形の辺の一例に該当する。
図11の例では、線分ABから見て点aと点bとは同じ側に位置している。このため、(ベクトルAB)×(ベクトルAa)にて得られる法線ベクトルと、(ベクトルAB)×(ベクトルAb)にて得られる法線ベクトルとは同じ向きになる。
同様に、(ベクトルab)×(ベクトルaA)にて得られる法線ベクトルと、(ベクトルab)×(ベクトルaB)にて得られる法線ベクトルとも同じ向きになる。
このように、いずれの辺を基準にしても法線ベクトルの向きが同じである場合、2つの辺は交差していないと判定することができる。
FIG. 11 is an explanatory diagram showing another example of two sides that do not intersect. As in the case of FIG. 9, the line segment ab corresponds to an example of the side of the first polygon, and the line segment AB corresponds to an example of the side of the second polygon.
In the example of FIG. 11, the point a and the point b are located on the same side as viewed from the line segment AB. For this reason, the normal vector obtained by (vector AB) × (vector Aa) and the normal vector obtained by (vector AB) × (vector Ab) are in the same direction.
Similarly, the normal vector obtained by (vector ab) × (vector aA) and the normal vector obtained by (vector ab) × (vector aB) are in the same direction.
Thus, if the direction of the normal vector is the same regardless of which side is used as a reference, it can be determined that the two sides do not intersect.

以上より、交差判定部143は、いずれの辺を基準にしても法線ベクトルが逆向きになる場合は、2つの辺が交差していると判定し、いずれか一方でも法線ベクトルの向きが同じである場合は、2つの辺が交差していないと判定する。   From the above, the intersection determination unit 143 determines that two sides intersect if the normal vector is in the opposite direction with respect to any side, and the direction of the normal vector is in either direction. If they are the same, it is determined that the two sides do not intersect.

結果出力部150は、接触面検出部140の判定結果を出力する。具体的には、結果出力部150は、例えば液晶パネル等の表示画面を有し、接触面検出部140の判定結果を表示する。
図12は、結果出力部150による接触面検出部140の判定結果の表示例を示す説明図である。
同図において、接触面検出部140の判定結果を表形式で表示している。行、列のいずれも多面体の面の1つに対応しており、行と列の交差する欄の記載にて、対応する2つの面の接触の有無を示している。
The result output unit 150 outputs the determination result of the contact surface detection unit 140. Specifically, the result output unit 150 has a display screen such as a liquid crystal panel, for example, and displays the determination result of the contact surface detection unit 140.
FIG. 12 is an explanatory diagram illustrating a display example of the determination result of the contact surface detection unit 140 by the result output unit 150.
In the figure, the determination result of the contact surface detection unit 140 is displayed in a table format. Both the row and the column correspond to one of the faces of the polyhedron, and the description of the column where the row and the column intersect indicates the presence or absence of contact between the two corresponding surfaces.

例えば、立体Iの面ABCDの行において、結果出力部150は、同じ立体Iの各面については、ハッチングにて接触の有無の判定対象外であることを示している。また、面ABCDと面abcdとが接触しており、結果出力部150は、面ABCDの行において面abcdの列と交差する欄に「abcd」と表示することで、接触有りを示している。一方、面ABCDと他の面とは接触しておらず、結果出力部150は、面ABCDの行において他の面の列と交差する欄を空欄とすることで、接触無しを示している。   For example, in the row of the surface ABCD of the solid I, the result output unit 150 indicates that each surface of the same solid I is not subject to determination on whether there is contact by hatching. Further, the surface ABCD and the surface abcd are in contact with each other, and the result output unit 150 displays “abcd” in a column that intersects the column of the surface abcd in the row of the surface ABCD to indicate that there is contact. On the other hand, the surface ABCD is not in contact with the other surface, and the result output unit 150 indicates that there is no contact by leaving a column that intersects the column of the other surface in the row of the surface ABCD as blank.

次に、図13〜図16を参照して、接触面検出システム10の動作について説明する。
図13は、接触面検出システム10が多面体の接触面を検出する処理手順の例を示す説明図である。
同図の処理において、まず、座標データ取得部110が、接触面検出対象としての複数の多面体の頂点の座標データを取得する(ステップS101)。
次に、分割部120は、座標データ取得部110がデータを取得した複数の多面体の面を形成する多角形の各々を三角形に分割する(ステップS102)。
また、面選択部130は、座標データ取得部110がデータを取得した複数の多面体の面のうち同一平面に含まれる面を検出する(ステップS103)。
Next, the operation of the contact surface detection system 10 will be described with reference to FIGS.
FIG. 13 is an explanatory diagram illustrating an example of a processing procedure in which the contact surface detection system 10 detects a contact surface of a polyhedron.
In the process shown in FIG. 5, first, the coordinate data acquisition unit 110 acquires coordinate data of vertices of a plurality of polyhedrons as contact surface detection targets (step S101).
Next, the dividing unit 120 divides each of the polygons forming the surfaces of the plurality of polyhedrons from which the coordinate data acquisition unit 110 has acquired data into triangles (step S102).
Further, the surface selection unit 130 detects a surface included in the same plane among the surfaces of the plurality of polyhedrons from which the coordinate data acquisition unit 110 has acquired data (step S103).

図14は、面選択部130が同一平面に含まれる面を検出する処理手順の例を示すフローチャートである。面選択部130は、図13のステップS103において図14の処理を行う。
図14の処理において、面選択部130は、まず、座標データ取得部110がデータを取得した複数の多面体の各面について処理を行うループL21を開始する(ステップS201)。
そして、面選択部130は、ループL21において処理対象となっている面に含まれる2つのベクトルを算出する(ステップS202)。例えば、面選択部130は、ループL21において処理対象となっている面を分割部120が分割して得られた三角形の1つについて、2つの辺に相当するベクトルを、それぞれ算出する。
FIG. 14 is a flowchart illustrating an example of a processing procedure in which the surface selection unit 130 detects surfaces included in the same plane. The surface selection unit 130 performs the process of FIG. 14 in step S103 of FIG.
In the processing of FIG. 14, the surface selection unit 130 first starts a loop L <b> 21 that performs processing on each surface of the plurality of polyhedrons for which the coordinate data acquisition unit 110 has acquired data (step S <b> 201).
Then, the surface selection unit 130 calculates two vectors included in the surface to be processed in the loop L21 (step S202). For example, the surface selection unit 130 calculates a vector corresponding to two sides for one of the triangles obtained by dividing the surface to be processed in the loop L21 by the dividing unit 120.

次に、面選択部130は、ステップS202で得られた2つのベクトルの外積を算出する(ステップS203)。この外積は、2つのベクトルを含む平面の法線ベクトルを示している。
そして、面選択部130は、ステップS203で算出した外積に基づいて、平面の方程式の係数を算出する(ステップS204)。具体的には、面選択部130は、ステップS203で算出した外積を当該外積の大きさで除算して、単位法線ベクトルを算出する。そして、面選択部130は、得られた単位法線ベクトルの座標値を、平面の方程式の傾きを示す係数とする。さらに、面選択部130は、方程式を求める対象となっている平面に含まれる点の座標値に対して方程式が成立するように、切片の係数を設定する。
Next, the surface selection unit 130 calculates the outer product of the two vectors obtained in step S202 (step S203). This outer product represents a normal vector of a plane including two vectors.
Then, the surface selection unit 130 calculates the coefficient of the plane equation based on the outer product calculated in step S203 (step S204). Specifically, the surface selection unit 130 divides the outer product calculated in step S203 by the size of the outer product to calculate a unit normal vector. Then, the surface selection unit 130 sets the obtained coordinate value of the unit normal vector as a coefficient indicating the slope of the plane equation. Furthermore, the surface selection unit 130 sets the intercept coefficient so that the equation is established with respect to the coordinate values of the points included in the plane for which the equation is to be obtained.

例えば、単位法線ベクトルの座標値が(v,v,v)である場合、面選択部130は、式(1)に示される平面の方程式の係数を、a:=v、b:=v,c:=vに設定する。 For example, when the coordinate value of the unit normal vector is (v x , v y , v z ), the surface selection unit 130 calculates the coefficient of the plane equation shown in Expression (1) as a: = v x , Set b: = v y and c: = v z .

Figure 2014211822
Figure 2014211822

但し、ここでの「・」はスカラー積を示す。さらに、点(P,P,P)が当該平面に含まれる場合、面選択部130は、平面の方程式の係数を、d:=−(a・P+b・P+c・P)に設定する。 Here, “·” indicates a scalar product. Further, when the point (P x , P y , P z ) is included in the plane, the plane selection unit 130 sets the coefficient of the plane equation as d: = − (a · P x + b · P y + c · P z ).

ステップS204の後、面選択部130は、座標データ取得部110がデータを取得した複数の多面体の全ての面についてループL21の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS205)。未だループL21の処理を行っていない面が存在すると判定した場合、ステップS201へ戻り、未処理の面に対して引き続きループL21の処理を行う。一方、全ての面に対してループL21の処理を行ったと判定した場合、ループL21を終了する。   After step S204, the surface selection unit 130 determines whether or not the process of the loop L21 has been performed for all the surfaces of the plurality of polyhedrons for which the coordinate data acquisition unit 110 has acquired data, and performs branching based on the determination result. (Step S205). If it is determined that there is a surface that has not yet been processed by the loop L21, the process returns to step S201, and the processing of the loop L21 is continued for the unprocessed surface. On the other hand, when it is determined that the process of the loop L21 has been performed on all the surfaces, the loop L21 is terminated.

ループL21を終了すると、面選択部130は、座標データ取得部110がデータを取得した複数の多面体のうち2つの多面体に含まれる各1つの面の組み合わせについて処理を行うループL22を開始する(ステップS211)。
そして、面選択部130は、ループL22にて処理対象となっている面の組み合わせについて、係数の絶対値(|a|、|b|、|c|および|d|)がいずれも等しいか否かを判定する(ステップS212)。
When the loop L21 ends, the surface selection unit 130 starts a loop L22 that performs processing for each combination of one surface included in two polyhedrons among the plurality of polyhedrons for which the coordinate data acquisition unit 110 has acquired data (step) S211).
Then, the surface selecting unit 130 determines whether or not the absolute values of the coefficients (| a |, | b |, | c |, and | d |) are all equal for the combination of surfaces that are the processing target in the loop L22. Is determined (step S212).

係数の絶対値がいずれも等しいと判定した場合(ステップS212:YES)、面選択部130は、さらに係数(a、b、c、およびd)の正負がいずれも同じまたはいずれも逆であるか否かを判定する(ステップS213)。なお、係数の値が共にゼロの場合は、係数の正負がいずれも同じ、いずれも逆のどちらも成立しているものとして扱う。
係数の正負がいずれも同じまたはいずれも逆であると判定した場合(ステップS213:YES)、面選択部130は、ループL22にて処理対象となっている2つの面が同一平面に含まれると判定する(ステップS221)。
When it is determined that the absolute values of the coefficients are all equal (step S212: YES), the surface selection unit 130 further determines whether the coefficients (a, b, c, and d) are the same or opposite. It is determined whether or not (step S213). If the coefficient values are both zero, it is assumed that both the positive and negative coefficients are the same, and vice versa.
When it is determined that both the positive and negative coefficients are the same or opposite (step S213: YES), the surface selection unit 130 includes the two surfaces to be processed in the loop L22 included in the same plane. Determination is made (step S221).

次に、面選択部130は、座標データ取得部110がデータを取得した複数の多面体のうち2つの多面体に含まれる各1つの面の全ての組み合わせについてループL22の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS241)。未だループL22の処理を行っていない組み合わせが存在すると判定した場合、ステップS211へ戻り、未処理の組み合わせに対して引き続きループL22の処理を行う。一方、全ての組み合わせに対してループL22の処理を行ったと判定した場合、ループL22を終了する。
ループL22を終了すると、面選択部130は、図14の処理を終了する。
Next, the surface selection unit 130 determines whether or not the processing of the loop L22 has been performed for all combinations of one surface included in two polyhedrons of the plurality of polyhedrons for which the coordinate data acquisition unit 110 has acquired data. Then, branching is performed based on the determination result (step S241). If it is determined that there is a combination that has not yet been processed in the loop L22, the process returns to step S211 to continue the processing in the loop L22 for the unprocessed combination. On the other hand, when it is determined that the processing of the loop L22 has been performed for all the combinations, the loop L22 is terminated.
When the loop L22 ends, the surface selection unit 130 ends the process of FIG.

一方、ステップS212において、絶対値の等しくない係数があると判定した場合(ステップS212:NO)、面選択部130は、ループL22にて処理対象となっている2つの面が同一平面に含まれないと判定する(ステップS231)。
その後、ステップS241へ進む。
また、ステップS213において、正負がいずれも同じまたはいずれも逆にはなっていないと判定した場合(ステップS213:NO)、ステップS231へ進む。
On the other hand, when it is determined in step S212 that there are coefficients whose absolute values are not equal (step S212: NO), the surface selection unit 130 includes two surfaces to be processed in the loop L22 in the same plane. It is determined that there is not (step S231).
Thereafter, the process proceeds to step S241.
In Step S213, when it is determined that both positive and negative are the same or neither is reversed (Step S213: NO), the process proceeds to Step S231.

なお、面選択部130が外積の大きさを算出する際の平方根演算における丸め誤差などの誤差が生じることが考えられる。かかる誤差に対応するため、面選択部130が、ステップS212における係数の絶対値の比較において、完全一致に限らず、差の大きさが充分小さいと評価し得る場合にも等しいと判定するようにしてもよい。例えば、係数の絶対値の差の大きさが所定の閾値以下である場合に、面選択部130が、係数の絶対値が等しいと判定するようにしてもよい。   An error such as a rounding error in the square root calculation when the surface selection unit 130 calculates the size of the outer product may occur. In order to deal with such an error, the surface selection unit 130 determines that the absolute values of the coefficients in step S212 are equal not only when they are completely coincident, but also when the magnitude of the difference can be evaluated to be sufficiently small. May be. For example, when the magnitude of the difference between the absolute values of the coefficients is equal to or smaller than a predetermined threshold, the surface selecting unit 130 may determine that the absolute values of the coefficients are equal.

また、面選択部130は、判定対象となっている面の各々に含まれる3つの点の座標値を得られれば図14の処理を行うことができる。従って、図13の処理において、ステップS102よりもステップS103を先に実行するようにしてもよいし、ステップS102とステップS103とを並列して実行するようにしてもよい。   Further, the surface selection unit 130 can perform the process of FIG. 14 if the coordinate values of three points included in each of the surfaces to be determined are obtained. Accordingly, in the process of FIG. 13, step S103 may be executed before step S102, or step S102 and step S103 may be executed in parallel.

図13の処理に戻って、ステップS103の後、内包判定部141は、ステップS103において面選択部130が選択した2つの面の組み合わせ(同一平面に含まれると判定した2つの面の組み合わせ)の各々について、内包関係の有無を判定する(ステップS104)。具体的には、内包判定部141は、ステップS103において面選択部130が選択した2つの面の組み合わせの各々について、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されるか否かを判定する。   Returning to the processing of FIG. 13, after step S <b> 103, the inclusion determination unit 141 includes a combination of two surfaces selected by the surface selection unit 130 in step S <b> 103 (a combination of two surfaces determined to be included in the same plane). About each, the presence or absence of inclusion relation is determined (step S104). Specifically, for each of the combinations of the two surfaces selected by the surface selection unit 130 in step S103, the inclusion determination unit 141 determines that at least one of the vertices of the polygon forming one of the surfaces is the other surface. It is determined whether or not it is included in the polyhedron to be formed.

図15は、内包判定部141が、2つの面の組み合わせについて、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されるか否かを判定する処理手順の例を示すフローチャートである。内包判定部141は、図13のステップS104において、面選択部130が選択した2つの面の組み合わせの各々について図15の処理を行う。   In FIG. 15, the inclusion determination unit 141 determines whether at least one of the vertices of the polygon forming one of the surfaces is included in the polyhedron forming the other surface for the combination of the two surfaces. It is a flowchart which shows the example of a process sequence. The inclusion determination unit 141 performs the process of FIG. 15 for each combination of the two surfaces selected by the surface selection unit 130 in step S104 of FIG.

図15の処理において、内包判定部141は、まず、分割部120の分割にて得られた三角形を、2つの面について1つずつ選択する組み合わせ毎に処理を行うループL31を開始する(ステップS301)。
さらに、内包判定部141は、ステップS301で選択した2つの三角形の各々について当該三角形と他方の三角形の頂点毎に処理を行うループL32を開始する(ステップ302)。
In the processing of FIG. 15, the inclusion determination unit 141 first starts a loop L31 that performs processing for each combination in which the triangles obtained by the division of the dividing unit 120 are selected one by one for two surfaces (step S301). ).
Further, the inclusion determination unit 141 starts a loop L32 for performing processing for each of the two triangles selected in step S301 for each vertex of the triangle and the other triangle (step 302).

そして、内包判定部141は、ループL32で処理対象となっている三角形と頂点とを面積比較部142に適用し、面積比較部142は、当該三角形の面積を算出する(ステップS303)。
次に、面積比較部142は、図7および図8を参照して説明したのと同様に、ループL32で処理対象となっている頂点と、三角形の頂点のうち隣り合う頂点とで形成される各三角形の面積を算出し、面積の合計を算出する(ステップS304)。
Then, the inclusion determination unit 141 applies the triangles and vertices to be processed in the loop L32 to the area comparison unit 142, and the area comparison unit 142 calculates the area of the triangle (step S303).
Next, as described with reference to FIGS. 7 and 8, the area comparison unit 142 is formed by a vertex that is a processing target in the loop L32 and an adjacent vertex among the vertices of the triangle. The area of each triangle is calculated, and the total area is calculated (step S304).

そして、面積比較部142は、ステップS304で得られた面積の合計と、ステップS303で得られた面積(元の三角形の面積)とが等しいか否かを判定する(ステップS305)。
面積の合計が元の三角形の面積に等しいと判定した場合(ステップS305:YES)、面積比較部142は、ループL32で処理対象となっている頂点が、ループL32で処理対象となっている三角形に内包されていると判定する(ステップS311)。
Then, the area comparison unit 142 determines whether or not the total area obtained in step S304 is equal to the area obtained in step S303 (the area of the original triangle) (step S305).
When it is determined that the total area is equal to the area of the original triangle (step S305: YES), the area comparison unit 142 has a vertex whose processing target is the loop L32 as a processing target in the loop L32. (Step S311).

次に、内包判定部141は、ステップS301で選択した2つの三角形のいずれについても、当該三角形と他方の三角形の頂点との全ての組み合わせについてループL32の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS331)。未だループL32の処理を行っていない組み合わせが存在すると判定した場合、ステップS302へ戻り、未処理の組み合わせに対して引き続きループL32の処理を行う。一方、全ての組み合わせに対してループL32の処理を行ったと判定した場合、ループL32を終了する。   Next, the inclusion determination unit 141 determines whether or not the processing of the loop L32 has been performed for all combinations of the triangle and the vertex of the other triangle for any of the two triangles selected in step S301. Branching is performed based on the result (step S331). If it is determined that there is a combination that has not yet been processed in the loop L32, the process returns to step S302, and the processing in the loop L32 is continued for the unprocessed combination. On the other hand, when it is determined that the process of the loop L32 has been performed for all the combinations, the loop L32 is terminated.

ループL32を終了すると、内包判定部141は、分割部120の分割にて得られた三角形を、2つの面について1つずつ選択する全ての組み合わせについてループL31の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS332)。未だループL31の処理を行っていない組み合わせが存在すると判定した場合、ステップS301へ戻り、未処理の組み合わせに対して引き続きループL31の処理を行う。一方、全ての組み合わせに対してループL31の処理を行ったと判定した場合、ループL31を終了する。   When the loop L32 ends, the inclusion determination unit 141 determines whether or not the processing of the loop L31 has been performed for all combinations in which the triangles obtained by the division of the division unit 120 are selected one by one for the two surfaces. Then, branching is performed based on the determination result (step S332). If it is determined that there is a combination that has not yet been processed in the loop L31, the process returns to step S301, and the processing in the loop L31 is continued for the unprocessed combination. On the other hand, when it is determined that the processing of the loop L31 has been performed for all the combinations, the loop L31 is terminated.

ループL31を終了すると、内包判定部141は、面と面との内包関係を判定する(ステップS333)。ループL32の処理における三角形と頂点との組み合わせのいずれか1つでも、内包されていると判定(ステップS311)した場合は、内包関係有りと判定する。すなわち、内包判定部141は、判定対象となっている2つの面の組み合わせについて、いずれかの面を形成する多角形の頂点の少なくとも1つが、他方の面を形成する多面体に内包されていると判定する。   When the loop L31 ends, the inclusion determination unit 141 determines the inclusion relationship between the faces (step S333). If it is determined that any one of the combinations of the triangle and the vertex in the processing of the loop L32 is included (step S311), it is determined that there is an inclusion relationship. That is, the inclusion determination unit 141 includes, for a combination of two surfaces to be determined, at least one of the vertices of a polygon that forms one of the surfaces included in a polyhedron that forms the other surface. judge.

一方、ループL32の処理における三角形と頂点との組み合わせの全てについて、内包されていないと判定(ステップS321)した場合は、内包関係無しと判定する。すなわち、内包判定部141は、判定対象となっている2つの面の組み合わせについて、いずれの面を形成する多角形の頂点も、他方の面を形成する多面体に内包されていないと判定する。
ステップS333の後、図15の処理を終了する。
On the other hand, if it is determined that all the combinations of triangles and vertices in the processing of the loop L32 are not included (step S321), it is determined that there is no inclusion relationship. That is, the inclusion determination unit 141 determines that, for the combination of two surfaces to be determined, the vertexes of the polygon that forms any surface are not included in the polyhedron that forms the other surface.
After step S333, the process of FIG.

一方、ステップS305において、面積の合計と元の三角形の面積とが異なると判定した場合(ステップS305:NO)、面積比較部142は、ループL32で処理対象となっている頂点が、ループL32で処理対象となっている三角形に内包されていないと判定する(ステップS321)。
その後、ステップS331へ進む。
On the other hand, if it is determined in step S305 that the total area is different from the area of the original triangle (step S305: NO), the area comparison unit 142 determines that the vertex targeted for processing in the loop L32 is the loop L32. It is determined that it is not included in the triangle to be processed (step S321).
Thereafter, the process proceeds to step S331.

図13の処理に戻って、ステップS104の後、交差判定部143は、ステップS103において面選択部130が選択した2つの面の組み合わせの各々について、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する(ステップS105)。   Returning to the processing in FIG. 13, after step S104, the intersection determination unit 143 determines, for each combination of the two surfaces selected by the surface selection unit 130 in step S103, the triangle side included in one surface and the other side. It is determined whether or not there is an intersection with a triangle side included in the surface (step S105).

図16は、交差判定部143が、2つの面の組み合わせについて、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する処理手順の例を示すフローチャートである。交差判定部143は、図13のステップS105において、面選択部130が選択した2つの面の組み合わせの各々について図16の処理を行う。   FIG. 16 illustrates an example of a processing procedure in which the intersection determination unit 143 determines whether or not there is an intersection between a triangle side included in one surface and a triangle side included in the other surface for a combination of two surfaces. It is a flowchart. The intersection determination unit 143 performs the process of FIG. 16 for each combination of two surfaces selected by the surface selection unit 130 in step S105 of FIG.

図16の処理において、交差判定部143は、まず、分割部120の分割にて得られた三角形を、2つの面について1つずつ選択する組み合わせ毎に処理を行うループL41を開始する(ステップS401)。
さらに、交差判定部143は、ステップS401で選択した2つの三角形の各々から1つずつ辺を選択する組み合わせ毎に処理を行うループL42を開始する(ステップ402)。
In the processing of FIG. 16, the intersection determination unit 143 first starts a loop L41 that performs processing for each combination in which the triangles obtained by the division of the division unit 120 are selected one by one for two surfaces (step S401). ).
Furthermore, the intersection determination unit 143 starts a loop L42 that performs processing for each combination in which one side is selected from each of the two triangles selected in step S401 (step 402).

次に、交差判定部143は、ループL42で処理対象となっている2つの辺の一方を基準として、図9〜11を参照して説明したのと同様に、2つの法線ベクトルを算出する(ステップS403)。
そして、交差判定部143は、ステップS403で得られた2つの法線ベクトルの向きが逆か否かを判定する(ステップS404)。
Next, the intersection determination unit 143 calculates two normal vectors in the same manner as described with reference to FIGS. 9 to 11 with one of the two sides to be processed in the loop L42 as a reference. (Step S403).
Then, the intersection determination unit 143 determines whether or not the directions of the two normal vectors obtained in step S403 are opposite (step S404).

法線ベクトルの向きが逆であると判定した場合(ステップS404:YES)、交差判定部143は、さらに、ステップS403の場合と異なる方の辺を基準として、図9〜11を参照して説明したのと同様に、2つの法線ベクトルを算出する(ステップS411)。
そして、交差判定部143は、ステップS411で得られた2つの法線ベクトルの向きが逆か否かを判定する(ステップS412)。
法線ベクトルの向きが逆であると判定した場合(ステップS412:YES)、交差判定部143は、2つの辺が交差していると判定する(ステップS421)。
If it is determined that the direction of the normal vector is opposite (step S404: YES), the intersection determination unit 143 will be described with reference to FIGS. 9 to 11 on the basis of a different side from that in step S403. Similarly to the above, two normal vectors are calculated (step S411).
Then, the intersection determination unit 143 determines whether or not the directions of the two normal vectors obtained in step S411 are opposite (step S412).
When it is determined that the direction of the normal vector is opposite (step S412: YES), the intersection determination unit 143 determines that the two sides intersect (step S421).

次に、交差判定部143は、ステップS401で選択した2つの三角形の各々から1つずつ辺を選択する全ての組み合わせについてループL42の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS441)。未だループL42の処理を行っていない組み合わせが存在すると判定した場合、ステップS402へ戻り、未処理の組み合わせに対して引き続きループL42の処理を行う。一方、全ての組み合わせに対してループL42の処理を行ったと判定した場合、ループL42を終了する。   Next, the intersection determination unit 143 determines whether or not the processing of the loop L42 has been performed for all combinations that select one edge from each of the two triangles selected in step S401, and branches based on the determination result. (Step S441). If it is determined that there is a combination that has not yet been processed in the loop L42, the process returns to step S402, and the processing in the loop L42 is continued for the unprocessed combination. On the other hand, when it is determined that the processing of the loop L42 has been performed for all the combinations, the loop L42 is terminated.

ループL42を終了すると、交差判定部143は、分割部120の分割にて得られた三角形を、2つの面について1つずつ選択する全ての組み合わせについてループL41の処理を行ったか否かを判定し、判定結果に基づいて分岐を行う(ステップS442)。未だループL41の処理を行っていない組み合わせが存在すると判定した場合、ステップS401へ戻り、未処理の組み合わせに対して引き続きループL41の処理を行う。一方、全ての組み合わせに対してループL41の処理を行ったと判定した場合、ループL41を終了する。   When the loop L42 ends, the intersection determination unit 143 determines whether or not the processing of the loop L41 has been performed for all combinations that select the triangles obtained by the division of the division unit 120 one by one for the two surfaces. Then, branching is performed based on the determination result (step S442). If it is determined that there is a combination that has not yet been processed in the loop L41, the process returns to step S401, and the processing in the loop L41 is continued for the unprocessed combination. On the other hand, when it is determined that the processing of the loop L41 has been performed for all the combinations, the loop L41 is terminated.

ループL41を終了すると、交差判定部143は、判定対象となっている2つの面の組み合わせについて、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺との交差の有無を判定する(ステップS443)。ループL42の処理における辺と辺との組み合わせのいずれか1つでも、交差していると判定(ステップS421)した場合は、一方の面に含まれる三角形の辺と他方の面に含まれる三角形の辺とで、交差しているものがあると判定する。
一方、ループL42の処理における辺と辺との組み合わせの全てについて、交差していないと判定(ステップS431)した場合は、いずれの辺も交差していないと判定する。
ステップS443の後、図16の処理を終了する。
When the loop L41 ends, the intersection determination unit 143 determines whether or not the triangle side included in one surface intersects the triangle side included in the other surface for the combination of the two surfaces to be determined. Determination is made (step S443). If any one of the combinations of sides in the processing of the loop L42 is determined to intersect (step S421), the sides of the triangle included in one surface and the triangle included in the other surface It is determined that there is an intersecting side.
On the other hand, if it is determined that all the combinations of sides in the processing of the loop L42 do not intersect (step S431), it is determined that none of the sides intersect.
After step S443, the process of FIG. 16 ends.

一方、ステップS404において、法線ベクトルの向きが同じであると判定した場合(ステップS404:NO)、交差判定部143は、2つの辺が交差していないと判定する(ステップS431)。
その後、ステップS441へ進む。
一方、ステップS412において、法線ベクトルの向きが同じであると判定した場合(ステップS412:NO)、ステップS431へ進む。
On the other hand, when it is determined in step S404 that the directions of the normal vectors are the same (step S404: NO), the intersection determination unit 143 determines that the two sides do not intersect (step S431).
Thereafter, the process proceeds to step S441.
On the other hand, if it is determined in step S412 that the directions of the normal vectors are the same (step S412: NO), the process proceeds to step S431.

なお、ステップS401において、内包判定部141が内包関係有りと判定済みの面の組み合わせを、交差判定部143が処理対象から除外するようにしてもよい。
また、図13の処理において、ステップS104とステップS105とを並列して実行するようにしてもよいし、ステップS105を実行した後、ステップS104を実行するようにしてもよい。ステップS105を実行した後、ステップS104を実行する場合、図15のステップS301において、交差判定部143が辺の交差ありと判定済みの面の組み合わせを、内包判定部141が処理対象から除外するようにしてもよい。
Note that in step S401, the intersection determination unit 143 may exclude the combination of the surfaces that the inclusion determination unit 141 has determined to have an inclusion relationship from the processing target.
In the processing of FIG. 13, step S104 and step S105 may be executed in parallel, or step S104 may be executed after step S105 is executed. When step S104 is executed after step S105 is executed, the inclusion determination unit 141 excludes the combination of faces that have been determined by the intersection determination unit 143 as having side intersections in step S301 of FIG. 15 from being processed. It may be.

図13の処理に戻って、ステップS105の後、接触面検出部140は、互いに接触している2つの面の組み合わせを抽出する(ステップS106)。具体的には、接触面検出部140は、面選択部130が検出した、同一平面に含まれる2つの面の組み合わせのうち、内包関係ありまたは辺の交差ありのいずれか一方にでも該当する組み合わせを、互いに接触している組み合わせとして抽出する。
一方、接触面検出部140は、内包関係無し、かつ、辺の交差無しとされた組み合わせについては、互いに接触していないと判定する。
Returning to the processing of FIG. 13, after step S105, the contact surface detection unit 140 extracts a combination of two surfaces in contact with each other (step S106). Specifically, the contact surface detection unit 140 is a combination that is detected by the surface selection unit 130 and corresponds to any of the combinations of two surfaces included in the same plane and having an inclusion relationship or a side intersection. Are extracted as combinations in contact with each other.
On the other hand, the contact surface detection unit 140 determines that the combinations that have no inclusion relationship and no side intersection are not in contact with each other.

次に、結果出力部150は、接触面検出部140がステップS106で抽出した組み合わせを、接触面検出システム10の判定結果として出力する(ステップS107)。例えば、結果出力部150は、図12を参照して説明したように、面と面との接触の有無を表示する。
その後、図13の処理を終了する。
Next, the result output unit 150 outputs the combination extracted by the contact surface detection unit 140 in step S106 as the determination result of the contact surface detection system 10 (step S107). For example, as described with reference to FIG. 12, the result output unit 150 displays the presence / absence of contact between surfaces.
Thereafter, the process of FIG. 13 is terminated.

以上のように、内包判定部141は、第1多面体の第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、第2多面体の第2面を形成する第2多角形に内包されているか否かを判定する。そして、接触面検出部140は、内包判定部141の判定結果に応じて、第1多面体を形成する面のうち第2多面体を形成する面に接する面を検出する。
これにより、接触面検出部140は、辺と辺との交差を生じない接触関係を、内包関係に基づいて検出することができる。この点において、接触面検出システム10は、面同士の接触関係の判定をより適切に行うことができる。
As described above, the inclusion determination unit 141 converts at least one vertex of the first polygon forming the first surface of the first polyhedron into the second polygon forming the second surface of the second polyhedron. It is determined whether or not it is included. And the contact surface detection part 140 detects the surface which contact | connects the surface which forms a 2nd polyhedron among the surfaces which form a 1st polyhedron according to the determination result of the inclusion determination part 141. FIG.
Thereby, the contact surface detection part 140 can detect the contact relationship which does not produce the intersection of a side based on an inclusion relationship. In this respect, the contact surface detection system 10 can more appropriately determine the contact relationship between the surfaces.

また、面積比較部142は、点が凸多角形に内包されるか否かの判定を、当該点と、当該凸多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、当該凸多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、当該凸多角形の面積との比較にて行う。
これにより、面積比較部142は、三角形の面積を算出することで、点が凸多角形に内包されるか否かの判定を行うことができる。三角形の面積は、例えばベクトルの外積から算出するなど簡単な計算にて算出することができる。従って、面積比較部142は、点が凸多角形に内包されるか否かの判定を、簡単な計算にて行うことができる。
Further, the area comparison unit 142 determines whether or not the point is included in the convex polygon, a line segment connecting the point and each of two adjacent vertices among the vertices of the convex polygon, Comparison of the area of the triangle formed by the sides connecting the two adjacent vertices with respect to the total of all the combinations of the two adjacent vertices among the vertices of the convex polygon and the area of the convex polygon To do.
Thereby, the area comparison part 142 can determine whether a point is included in a convex polygon by calculating the area of a triangle. The area of the triangle can be calculated by a simple calculation, for example, by calculating from an outer product of vectors. Therefore, the area comparison unit 142 can determine whether or not the point is included in the convex polygon by a simple calculation.

また、分割部120は、第2多角形を、当該第2多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する。そして、内包判定部141は、第1多角形の頂点のうち少なくとも1つの頂点と、分割部120の分割にて得られる三角形のうち少なくとも1つの三角形とを面積比較部142に適用して、第1多角形の頂点のうち少なくとも1つの頂点が、第2多角形に内包されているか否かを判定する。
これにより、面積比較部142は、凸多角形の面積の計算についても、三角形の面積を算出すればよい。従って、面積比較部142は、点が凸多角形に内包されるか否かの判定を、簡単な計算にて行うことができる。
Further, the dividing unit 120 divides the second polygon into triangles by line segments connecting one vertex of the second polygon and each vertex other than the vertex adjacent to the vertex. Then, the inclusion determination unit 141 applies at least one vertex among the vertices of the first polygon and at least one triangle among the triangles obtained by the division of the division unit 120 to the area comparison unit 142, It is determined whether or not at least one vertex among the vertices of one polygon is included in the second polygon.
Thereby, the area comparison part 142 should just calculate the area of a triangle also about the calculation of the area of a convex polygon. Therefore, the area comparison unit 142 can determine whether or not the point is included in the convex polygon by a simple calculation.

また、交差判定部143は、第1多角形の辺と第2多角形の辺とが交差するか否かを判定する。そして、接触面検出部140は、内包判定部141の判定結果と交差判定部143の判定結果とに応じて、第1多面体を形成する面のうち第2多面体を形成する面に接する面を検出する。
これにより、接触面検出部140は、辺と辺との交差を生じない接触関係と、面を形成す多角形と他方の面を形成する多角形の頂点との内包関係を生じない接触関係とのいずれも検出することができ、面と面との接触関係を漏れなく検出することができる。
In addition, the intersection determination unit 143 determines whether or not the sides of the first polygon and the sides of the second polygon intersect. Then, the contact surface detection unit 140 detects a surface that contacts the surface that forms the second polyhedron among the surfaces that form the first polyhedron, according to the determination result of the inclusion determination unit 141 and the determination result of the intersection determination unit 143. To do.
Thereby, the contact surface detection unit 140 has a contact relationship that does not cause the intersection of the sides and a contact relationship that does not cause an inclusion relationship between the polygon that forms the surface and the vertex of the polygon that forms the other surface. Any of these can be detected, and the contact relationship between the surfaces can be detected without omission.

<第2の実施形態>
図17は、本発明の第2の実施形態における状態変化算出システムの機能構成を示す概略ブロック図である。同図において、状態変化算出システム20は、接触面検出システム11と、状態変化算出部210と、結果出力部250とを具備する。接触面検出システム11は、座標データ取得部110と、分割部120と、面選択部130と、接触面検出部140とを具備する。接触面検出部140は、内包判定部141と、交差判定部143とを具備する。内包判定部141は、面積比較部142を具備する。
同図において、図1の各部に対応して同様の機能を有する部分には同一の符号(110、120、130、140、141、142、143)を付して説明を省略する。
<Second Embodiment>
FIG. 17 is a schematic block diagram illustrating a functional configuration of the state change calculation system according to the second embodiment of the present invention. In the figure, the state change calculation system 20 includes a contact surface detection system 11, a state change calculation unit 210, and a result output unit 250. The contact surface detection system 11 includes a coordinate data acquisition unit 110, a division unit 120, a surface selection unit 130, and a contact surface detection unit 140. The contact surface detection unit 140 includes an inclusion determination unit 141 and an intersection determination unit 143. The inclusion determination unit 141 includes an area comparison unit 142.
In the figure, parts having the same functions corresponding to the respective parts in FIG. 1 are denoted by the same reference numerals (110, 120, 130, 140, 141, 142, 143), and description thereof is omitted.

状態変化算出部210は、接触面検出部140が検出した面と面との接触状況に基づいて、座標データ取得部110がデータを取得する多面体にてモデル化されている構造物の少なくとも一部について、当該構造物を構成する部材の経時的な状態変化を算出する。
状態変化算出部210が、構造物を構成する部材の経時的な状態変化を算出する手法として、例えば特開2013−037321号公報に記載されている、部材に対応して定義される領域に代表点を設け、部材間に作用する影響を、影響度を示す変数によって定義する手法を用いることができる。
結果出力部250は、状態変化算出部210の算出結果を表示する。
The state change calculation unit 210 is based on the contact state between the surfaces detected by the contact surface detection unit 140, and at least a part of the structure modeled by the polyhedron from which the coordinate data acquisition unit 110 acquires data. , The change with time of the members constituting the structure is calculated.
As a method for the state change calculation unit 210 to calculate the state change of the members constituting the structure over time, for example, an area defined corresponding to the member described in JP2013-037321A is representative. It is possible to use a technique in which a point is provided and the influence acting between members is defined by a variable indicating the degree of influence.
The result output unit 250 displays the calculation result of the state change calculation unit 210.

以上のように、状態変化算出部210は、接触面検出システム11が検出した、構造物の面の接触状況に基づいて、構造物を構成する部材の経時的な状態変化を算出する。また、接触面検出システム10の場合と同様、接触面検出システム11において、内包判定部141は、構造物の面を形成する多角形同士の内包関係を判定する。そして、接触面検出部140は、内包判定部141の判定結果に応じて、構造物を形成する面の接触状況を検出する。
これにより、接触面検出部140は、辺と辺との交差を生じない接触関係を、内包関係に基づいて検出することができ、状態変化算出部210は、辺と辺との交差を生じない接触関係に対応してより正確に部材の経時的な状況変化を算出することができる。
As described above, the state change calculation unit 210 calculates the state change over time of the members constituting the structure based on the contact state of the surface of the structure detected by the contact surface detection system 11. Further, as in the case of the contact surface detection system 10, in the contact surface detection system 11, the inclusion determination unit 141 determines the inclusion relationship between polygons forming the surface of the structure. And the contact surface detection part 140 detects the contact condition of the surface which forms a structure according to the determination result of the inclusion determination part 141. FIG.
Thereby, the contact surface detection unit 140 can detect the contact relationship that does not cause the intersection between the sides based on the inclusion relationship, and the state change calculation unit 210 does not cause the intersection between the sides. It is possible to calculate the change in the situation of the member over time more accurately in accordance with the contact relationship.

<第3の実施形態>
図18は、本発明の第3の実施形態における内包判定システムの機能構成を示す概略ブロック図である。同図において、内包判定システム30は、座標データ取得部310と、内包判定部141と、結果出力部350とを具備する。内包判定部141は、面積比較部142を具備する。
同図において、図1の各部に対応して同様の機能を有する部分には同一の符号(141、142)を付して説明を省略する。
<Third Embodiment>
FIG. 18 is a schematic block diagram illustrating a functional configuration of an inclusion determination system according to the third embodiment of the present invention. In the figure, the inclusion determination system 30 includes a coordinate data acquisition unit 310, an inclusion determination unit 141, and a result output unit 350. The inclusion determination unit 141 includes an area comparison unit 142.
In the figure, portions having the same functions corresponding to the respective portions in FIG. 1 are denoted by the same reference numerals (141, 142), and description thereof is omitted.

座標データ取得部310は、凸多角形の頂点の座標データと、当該凸多角形に内包されるか否かの判定対象の点の座標データとを取得する。
結果出力部350は、内包判定部141による、点が凸多角形に含まれるか否かの判定結果を表示する。
The coordinate data acquisition unit 310 acquires the coordinate data of the vertices of the convex polygon and the coordinate data of the point to be determined whether to be included in the convex polygon.
The result output unit 350 displays the determination result of whether or not the point is included in the convex polygon by the inclusion determination unit 141.

内包判定システム30において、内包判定部141は、点と、多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、多角形の面積とが等しいか否かを判定し、判定結果に応じて、判定対象の点が多角形に内包されているか否かを判定する。
これにより、接触面検出システム10の場合と同様に、内包判定部141(面積比較部142)は、三角形の面積を算出することで、点が凸多角形に内包されるか否かの判定を行うことができる。三角形の面積は、例えばベクトルの外積から算出するなど簡単な計算にて算出することができる。従って、内包判定部141は、点が凸多角形に内包されるか否かの判定を、簡単な計算にて行うことができる。
In the inclusion determination system 30, the inclusion determination unit 141 is a triangle composed of a point, a line segment connecting each of two adjacent vertices among polygon vertices, and a side connecting the two adjacent vertices. The total of all the combinations of two adjacent vertices of the polygon vertices and the area of the polygon are equal to each other, and there are many points to be determined according to the determination result. It is determined whether or not it is enclosed in a square.
Thereby, as in the case of the contact surface detection system 10, the inclusion determination unit 141 (area comparison unit 142) determines whether or not the point is included in the convex polygon by calculating the area of the triangle. It can be carried out. The area of the triangle can be calculated by a simple calculation, for example, by calculating from an outer product of vectors. Therefore, the inclusion determination unit 141 can determine whether or not a point is included in a convex polygon by a simple calculation.

なお、接触面検出システム10や、状態変化算出システム20や、内包判定システム30の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、コンパクトディスク等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
Note that a program for realizing all or part of the functions of the contact surface detection system 10, the state change calculation system 20, and the inclusion determination system 30 is recorded on a computer-readable recording medium, and recorded on the recording medium. Each unit may be processed by causing the computer system to read and execute the program. Here, the “computer system” includes an OS and hardware such as peripheral devices.
Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used.
The “computer-readable recording medium” refers to a portable medium such as a flexible disk, a magneto-optical disk, and a compact disk, and a storage device such as a hard disk built in the computer system. Furthermore, the “computer-readable recording medium” dynamically holds a program for a short time like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. In this case, a volatile memory in a computer system serving as a server or a client in that case, and a program that holds a program for a certain period of time are also included. The program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.

以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。   The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes design changes and the like within a scope not departing from the gist of the present invention.

10 接触面検出システム
20 状態変化算出システム
30 内包判定システム
110、310 座標データ取得部
120 分割部
130 面選択部
140 接触面検出部
141 内包判定部
142 面積比較部
143 交差判定部
150、250、350 結果出力部
210 状態変化算出部
DESCRIPTION OF SYMBOLS 10 Contact surface detection system 20 State change calculation system 30 Inclusion determination system 110,310 Coordinate data acquisition part 120 Dividing part 130 Surface selection part 140 Contact surface detection part 141 Inclusion determination part 142 Area comparison part 143 Intersection determination part 150,250,350 Result output unit 210 State change calculation unit

Claims (8)

第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する座標データ取得部と、
前記第1多面体を形成する面から第1面を選択し、前記第2多面体を形成する面から第2面を選択する面選択部と、
前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定部と、
前記内包判定部の判定結果に応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する接触面検出部と、
を具備することを特徴とする接触面検出システム。
A coordinate data acquisition unit for acquiring the coordinate data of the vertices of the first polyhedron and the coordinate data of the vertices of the second polyhedron;
Selecting a first surface from the surfaces forming the first polyhedron and selecting a second surface from the surfaces forming the second polyhedron;
An inclusion determination unit that determines whether at least one vertex of the first polygon forming the first surface is included in the second polygon forming the second surface;
In accordance with the determination result of the inclusion determination unit, a contact surface detection unit that detects a surface that contacts the surface that forms the second polyhedron among the surfaces that form the first polyhedron,
A contact surface detection system comprising:
前記内包判定部は、
点が凸多角形に内包されるか否かの判定を、当該点と、当該凸多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、当該凸多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、当該凸多角形の面積との比較にて行う面積比較部を具備し、
前記第1多角形の頂点のうち少なくとも1つの頂点と、前記第2多角形または当該第2多角形を分割して得られる凸多角形を前記面積比較部に適用して、前記第1多角形の頂点のうち少なくとも1つの頂点が、前記第2多角形に内包されているか否かを判定する、ことを特徴とする請求項1に記載の接触面検出システム。
The inclusion determination unit
Whether or not a point is included in a convex polygon is determined by connecting a line segment connecting the point and each of two adjacent vertices of the convex polygon and the two adjacent vertices. The area of the triangle formed by the sides is provided with an area comparison unit that compares the total of all the combinations of two adjacent vertices among the vertices of the convex polygon and the area of the convex polygon. And
Applying at least one vertex among the vertices of the first polygon and the second polygon or a convex polygon obtained by dividing the second polygon to the area comparison unit, the first polygon 2. The contact surface detection system according to claim 1, wherein it is determined whether at least one of the vertices is included in the second polygon.
前記第2多角形を、当該第2多角形の1つの頂点と、当該頂点と隣り合う頂点以外の各頂点とを結ぶ線分にて三角形に分割する分割部を具備し、
前記内包判定部は、前記第1多角形の頂点のうち少なくとも1つの頂点と、前記分割部の分割にて得られる三角形のうち少なくとも1つの三角形とを前記面積比較部に適用して、前記第1多角形の頂点のうち少なくとも1つの頂点が、前記第2多角形に内包されているか否かを判定する、ことを特徴とする請求項2に記載の接触面検出システム。
A division unit that divides the second polygon into triangles by line segments connecting one vertex of the second polygon and each vertex other than the vertex adjacent to the vertex;
The inclusion determination unit applies at least one vertex among the vertices of the first polygon and at least one triangle among triangles obtained by the division of the division unit to the area comparison unit, and The contact surface detection system according to claim 2, wherein it is determined whether at least one vertex of one polygon is included in the second polygon.
前記第1多角形の辺と前記第2多角形の辺とが交差するか否かを判定する交差判定部を具備し、
前記接触面検出部は、前記内包判定部の判定結果と前記交差判定部の判定結果とに応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する、ことを特徴とする請求項1から3のいずれか一項に記載の接触面検出システム。
An intersection determination unit that determines whether or not the side of the first polygon intersects the side of the second polygon;
The contact surface detection unit detects a surface in contact with a surface forming the second polyhedron among surfaces forming the first polyhedron according to a determination result of the inclusion determination unit and a determination result of the intersection determination unit. The contact surface detection system according to any one of claims 1 to 3, wherein
第1構造物の形状に対応した第1多面体と第2構造物の形状に対応した第2多面体とについて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する請求項1から4のいずれか一項に記載の接触面検出システムと、
前記接触面検出システムが検出した接触状況に基づいて、前記第1構造物または前記第2構造物の少なくとも一部について、当該構造物を構成する部材の経時的な状態変化を算出する状態変化算出部と、
を具備することを特徴とする状態変化算出システム。
For the first polyhedron corresponding to the shape of the first structure and the second polyhedron corresponding to the shape of the second structure, a surface in contact with the surface forming the second polyhedron among the surfaces forming the first polyhedron. The contact surface detection system according to any one of claims 1 to 4 to detect,
Based on the contact state detected by the contact surface detection system, a state change calculation for calculating a state change over time of a member constituting the structure of at least a part of the first structure or the second structure. And
A state change calculation system comprising:
ある点の座標データと多角形の頂点の座標データとを取得する座標データ取得部と、
前記ある点と、前記多角形の頂点のうち隣り合う2つの頂点の各々とを結ぶ線分と、当該隣り合う2つの頂点を結ぶ辺とで構成される三角形の面積の、前記多角形の頂点のうち隣り合う2つの頂点の全ての組み合わせについての合計と、前記多角形の面積とが等しいか否かを判定し、判定結果に応じて、前記ある点が、前記多角形に内包されているか否かを判定する内包判定部と、
を具備することを特徴とする内包判定システム。
A coordinate data acquisition unit that acquires coordinate data of a point and coordinate data of a vertex of a polygon;
The vertex of the polygon having a triangular area composed of a line segment connecting the point and each of two adjacent vertices of the polygon and an edge connecting the two adjacent vertices Whether the total of all combinations of two adjacent vertices is equal to the area of the polygon, and whether the certain point is included in the polygon according to the determination result An inclusion determination unit for determining whether or not,
An inclusion determination system comprising:
接触面検出システムの接触面検出方法であって、
第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する座標データ取得ステップと、
前記第1多面体を形成する面から第1面を選択し、前記第2多面体を形成する面から第2面を選択する面選択ステップと、
前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定ステップと、
前記内包判定ステップでの判定結果に応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する接触面検出ステップと、
を具備することを特徴とする接触面検出方法。
A contact surface detection method for a contact surface detection system, comprising:
A coordinate data acquisition step of acquiring coordinate data of the vertices of the first polyhedron and coordinate data of the vertices of the second polyhedron;
A surface selection step of selecting a first surface from the surfaces forming the first polyhedron and selecting a second surface from the surfaces forming the second polyhedron;
An inclusion determination step for determining whether at least one vertex of the first polygon forming the first surface is included in the second polygon forming the second surface;
According to the determination result in the inclusion determination step, a contact surface detection step of detecting a surface in contact with a surface forming the second polyhedron among surfaces forming the first polyhedron;
A contact surface detection method comprising:
接触面検出システムが備えるコンピュータに、
第1多面体の頂点の座標データと第2多面体の頂点の座標データとを取得する座標データ取得ステップと、
前記第1多面体を形成する面から第1面を選択し、前記第2多面体を形成する面から第2面を選択する面選択ステップと、
前記第1面を形成する第1多角形の頂点のうち少なくとも1つの頂点が、前記第2面を形成する第2多角形に内包されているか否かを判定する内包判定ステップと、
前記内包判定ステップでの判定結果に応じて、前記第1多面体を形成する面のうち前記第2多面体を形成する面に接する面を検出する接触面検出ステップと、
を実行させるためのプログラム。
In the computer equipped with the contact surface detection system,
A coordinate data acquisition step of acquiring coordinate data of the vertices of the first polyhedron and coordinate data of the vertices of the second polyhedron;
A surface selection step of selecting a first surface from the surfaces forming the first polyhedron and selecting a second surface from the surfaces forming the second polyhedron;
An inclusion determination step for determining whether at least one vertex of the first polygon forming the first surface is included in the second polygon forming the second surface;
According to the determination result in the inclusion determination step, a contact surface detection step of detecting a surface in contact with a surface forming the second polyhedron among surfaces forming the first polyhedron;
A program for running
JP2013088767A 2013-04-19 2013-04-19 Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program Pending JP2014211822A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013088767A JP2014211822A (en) 2013-04-19 2013-04-19 Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013088767A JP2014211822A (en) 2013-04-19 2013-04-19 Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program

Publications (1)

Publication Number Publication Date
JP2014211822A true JP2014211822A (en) 2014-11-13

Family

ID=51931522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013088767A Pending JP2014211822A (en) 2013-04-19 2013-04-19 Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program

Country Status (1)

Country Link
JP (1) JP2014211822A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019211965A (en) * 2018-06-04 2019-12-12 株式会社アクセル Image processing apparatus, image processing method, and image processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019211965A (en) * 2018-06-04 2019-12-12 株式会社アクセル Image processing apparatus, image processing method, and image processing program

Similar Documents

Publication Publication Date Title
US10134167B2 (en) Using curves to emulate soft body deformation
AU2016262789B2 (en) 3d modeling by tracing 2d image ui
US20100073368A1 (en) Methods and systems to determine conservative view cell occlusion
US20140168215A1 (en) Stereo Correspondence Model Fitting
CN114255323A (en) Robot, map construction method, device and readable storage medium
CN111583381A (en) Rendering method and device of game resource map and electronic equipment
US10242495B2 (en) Method for adapting a mesh model of a geological subsurface
US11562541B2 (en) Topology-change-aware volumetric fusion for real-time dynamic 4D reconstruction
JP2023529790A (en) Method, apparatus and program for generating floorplans
CN110458954B (en) Contour line generation method, device and equipment
CN115018992B (en) Method and device for generating hair style model, electronic equipment and storage medium
US20240212285A1 (en) Processing three-dimensional model based only on visible model region
KR101919085B1 (en) Apparatus and method for simplification of 3D mesh data
CN113591683A (en) Attitude estimation method, attitude estimation device, electronic equipment and storage medium
CN112802143A (en) Spherical map drawing method, spherical map drawing device and storage medium
JP2014211822A (en) Contact surface detection system, state change calculation system, connotation determination system, contact surface detection method and program
Bekkers et al. Vessel tracking via sub-Riemannian geodesics on the projective line bundle
CN115761123B (en) Three-dimensional model processing method, three-dimensional model processing device, electronic equipment and storage medium
CN115496860A (en) Flexible rule model construction method and device, terminal equipment and storage medium
JP2017073046A (en) Layout verification method, layout verification apparatus, and program
CN114445579A (en) Object labeling information presentation method and device, electronic equipment and storage medium
WO2020241100A1 (en) Three-dimensional pose estimation method, program, recording medium and three-dimensional pose estimation device
CN113888394B (en) Image deformation method, device and electronic equipment
CN112669220B (en) Depth image interpolation method, device, equipment and medium
CN113205571B (en) Processing method and processing device for house type graph and electronic equipment