Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -33,14 +33,14 @@ F triTri2D(Triangle &t1, &t2; eps = 0.0, allowReversed = 0B, onBoundary = 1B)
|
|||
V lp1 = [t1.p1, t1.p2, t1.p3]
|
||||
V lp2 = [t2.p1, t2.p2, t2.p3]
|
||||
|
||||
L(i) 3
|
||||
L(i) 0.<3
|
||||
V j = (i + 1) % 3
|
||||
I chkEdge(Triangle(lp1[i], lp1[j], lp2[0]), eps) &
|
||||
chkEdge(Triangle(lp1[i], lp1[j], lp2[1]), eps) &
|
||||
chkEdge(Triangle(lp1[i], lp1[j], lp2[2]), eps)
|
||||
R 0B
|
||||
|
||||
L(i) 3
|
||||
L(i) 0.<3
|
||||
V j = (i + 1) % 3
|
||||
I chkEdge(Triangle(lp2[i], lp2[j], lp1[0]), eps) &
|
||||
chkEdge(Triangle(lp2[i], lp2[j], lp1[1]), eps) &
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
WITH Ada.Text_IO; USE Ada.Text_IO;
|
||||
|
||||
PROCEDURE Main IS
|
||||
TYPE Vertex IS MOD 3;
|
||||
TYPE Point IS ARRAY (0 .. 1) OF Float;
|
||||
TYPE Triangle IS ARRAY (Vertex) OF Point;
|
||||
TYPE Triangle_Vertices IS ARRAY (0 .. 5) OF Float;
|
||||
|
||||
FUNCTION Same_Side (A, B, M, N : Point) RETURN Boolean IS
|
||||
FUNCTION Aff (U : Point) RETURN Float IS
|
||||
((B (1) - A (1)) * (U (0) - A (0)) + (A (0) - B (0)) * (U (1) - A (1)));
|
||||
BEGIN
|
||||
RETURN Aff (M) * Aff (N) >= 0.0;
|
||||
END Same_Side;
|
||||
|
||||
FUNCTION In_Side (T1 , T2 : Triangle) RETURN Boolean IS
|
||||
(FOR ALL V IN Vertex =>
|
||||
(FOR Some P OF T2 => Same_Side (T1 (V + 1), T1 (V + 2), T1 (V), P)));
|
||||
|
||||
FUNCTION Overlap (T1, T2 : Triangle) RETURN Boolean IS
|
||||
(In_Side (T1, T2) AND THEN In_Side (T2, T1));
|
||||
|
||||
FUNCTION "+" (T : Triangle_Vertices) RETURN Triangle IS
|
||||
((T (0), T (1)), (T (2), T (3)), (T (4), T (5)));
|
||||
|
||||
PROCEDURE Put (T1, T2 : Triangle_Vertices) IS
|
||||
BEGIN
|
||||
Put_Line (Overlap (+T1, +T2)'Img);
|
||||
END Put;
|
||||
|
||||
BEGIN
|
||||
Put ((0.0, 0.0, 5.0, 0.0, 0.0, 5.0), (0.0, 0.0, 5.0, 0.0, 0.0, 6.0));
|
||||
Put ((0.0, 0.0, 0.0, 5.0, 5.0, 0.0), (0.0, 0.0, 0.0, 5.0, 5.0, 0.0));
|
||||
Put ((0.0, 0.0, 5.0, 0.0, 0.0, 5.0), (-10.0, 0.0, -5.0, 0.0, -1.0, 6.0));
|
||||
Put ((0.0, 0.0, 5.0, 0.0, 2.5, 5.0), (0.0, 4.0, 2.5, -1.0, 5.0, 4.0));
|
||||
Put ((0.0, 0.0, 1.0, 1.0, 0.0, 2.0), (2.0, 1.0, 3.0, 0.0, 3.0, 2.0));
|
||||
Put ((0.0, 0.0, 1.0, 1.0, 0.0, 2.0), (2.0, 1.0, 3.0, -2.0, 3.0, 4.0));
|
||||
Put ((0.0, 0.0, 1.0, 0.0, 0.0, 1.0), (1.0, 0.0, 2.0, 0.0, 1.0, 1.0));
|
||||
END Main;
|
||||
|
|
@ -11,7 +11,7 @@ If there's no separator, then the triangles have an overlap of positive area.
|
|||
}
|
||||
{$IFDEF FPC}
|
||||
{$mode objfpc}{$H+}
|
||||
{$ENDIF}}
|
||||
{$ENDIF}
|
||||
|
||||
uses Math, SysUtils;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue