Polygonal crosscuts #
The set-theoretic part of Moise Chapter 2, Theorems 7 and 8. Three polygonal arcs with common endpoints form three polygons. When the third arc is a chord inside the first polygon, the two polygons containing the chord lie inside the first polygon. This is the cutting lemma used in the free-triangle induction of Chapter 3.
Vertex sequence obtained by inserting p in edge zero. Its cyclic order is
p, v₁, ..., vₙ₋₁, v₀.
Instances For
The prospective edges of insertZero, before packaging the simple-polygon proofs.
Equations
- J.insertZeroEdgeSegment p i = segment ℝ (J.insertZeroVertex p i) (J.insertZeroVertex p (i + 1))
Instances For
Splitting edge zero preserves disjointness of every pair of non-adjacent edges.
Subdivide edge zero at a non-endpoint. The cyclic order is
p, v₁, ..., vₙ₋₁, v₀.
Equations
- J.insertZero p hp hp0 hp1 = { n := J.n + 1, three_le := ⋯, vertex := J.insertZeroVertex p, adjacent_ne := ⋯, consecutive_inter := ⋯, nonadjacent_disjoint := ⋯ }
Instances For
Inserting a vertex into an edge does not change the polygon carrier.
Cyclically reindex a polygon so that the old index a becomes the new index zero.
Equations
Instances For
The bounded and unbounded complementary components depend only on the polygon carrier, not on its cyclic indexing.
A point is a vertex of one of the cyclic presentations of a polygon.
Instances For
A point known to be a polygon vertex lies on an edge exactly when it is one of that edge's two endpoints.
Insert a boundary point as vertex zero without changing the carrier, while retaining every
old vertex. Endpoint cases need only a cyclic reindexing; an interior edge point uses
insertZero.
Refine a polygonal presentation so that every point of a prescribed finite subset of its carrier is a polygon vertex, without changing the carrier.
A straight crosscut of a polygonal disk: its endpoints lie on the polygon, while every other point of the segment lies in the polygon interior.
Instances For
Transport a proper chord across a different cyclic polygon presentation with the same carrier.
Equations
Instances For
Reindexing the boundary polygon does not change a proper chord.
Instances For
Each endpoint of a proper chord lies on a concrete polygon edge.
The endpoints of a proper chord cannot lie on one polygon edge.
Normalize a proper chord so that its first endpoint lies on edge zero and its second endpoint lies on an edge with a positive ordinary index.
After subdividing boundary edges and cyclically reindexing, both chord endpoints are vertices, with the first at index zero and the second at a strictly positive ordinary index.
Reverse the orientation of a proper chord.
Instances For
Vertex sequence for the polygon consisting of vertices 0,...,k and the closing chord.
Equations
Instances For
The forwardCutEdgeSegment declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Close the forward boundary arc from vertex 0 to vertex k by a proper chord.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forward boundary arc consisting of old edges 0,...,k-1.
Equations
Instances For
The complementary boundary arc, expressed as a forward arc after rotating vertex k to
index zero.
Equations
Instances For
The two cyclic boundary arcs cover the original polygon carrier.
The complementary arc has the same two endpoints as the forward arc.
The two complementary cyclic boundary arcs meet only at their endpoints.
Close the complementary boundary arc by the same chord, using a cyclic rotation.
Equations
- C.backwardCutCircle hk2 hk hP hQ = (C.symm.rotate ↑k).forwardCutCircle ⋯ ⋯ ⋯ ⋯
Instances For
Crossing predicate for one oriented segment, separated from cyclic indexing.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Number of crossed polygon edges before reducing modulo two, indexed by ordinary naturals.
Equations
- J.crossingCount P = ∑ m ∈ Finset.range J.n, if J.EdgeCrossed (↑m) P then 1 else 0
Instances For
The carrier data of a polygonal theta graph. J12, J13, and J23 are the polygons
formed by the indicated pairs of arcs.
- P : Plane
The
Pdeclaration. - Q : Plane
The
Qdeclaration. The
B1declaration.The
B2declaration.The
B3declaration.- J12 : PolygonalCircle
The
J12declaration. - J13 : PolygonalCircle
The
J13declaration. - J23 : PolygonalCircle
The
J23declaration.
Instances For
Every proper straight chord of a polygon determines the finite polygonal theta graph used in Moise Chapter 2, Theorems 7 and 8.
A theta crosscut realized by an edge of a triangle mesh of the original polygonal disk. This is the exact interface between the separation theorem of Chapter 2 and the cutting induction of Chapter 3.
The
chordEdgedeclaration.
Instances For
Exchange the two boundary arcs of a theta graph.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The interior of one cut-off polygon lies in the exterior of the other.
The two polygons cut off by the chord have disjoint interiors.
The two closed subdisks cut off by a proper chord meet exactly in that chord.
Moise Chapter 2, Theorem 8(2): the two chord polygons exactly fill the original closed polygonal disk.
Exchange the two sides of a realized mesh crosscut.
Equations
Instances For
A mesh triangle lies wholly on one side of a realized crosscut.
Select the maximal triangles lying on the J13 side of the crosscut.
Equations
- x✝.side13Mesh = M.restrictTriangles fun (t : Finset M.Vertex) => (interior (M.triangleCarrier t) ∩ G.J13.interiorRegion).Nonempty
Instances For
Select the maximal triangles lying on the J23 side of the crosscut.
Equations
- x✝.side23Mesh = M.restrictTriangles fun (t : Finset M.Vertex) => (interior (M.triangleCarrier t) ∩ G.J23.interiorRegion).Nonempty
Instances For
Restricting along a realized crosscut gives exactly the first closed polygonal subdisk.
Restricting along a realized crosscut gives exactly the second closed polygonal subdisk.
The two restricted triangle sets partition the original mesh.
No maximal triangle occurs on both sides of the crosscut.
Each side of a proper realized crosscut has strictly fewer maximal triangles.