Content deleted Content added
Clarify meaning of "inbound" vertices; copy edit |
|||
Line 1:
The '''Weiler–Atherton''' is a polygon
It is generally applicable only in [[2D computer graphics|2D]]. However, it can be used in [[3D computer graphics|3D]] through visible surface determination and with improved efficiency through [[Z-order]]ing.<ref>Foley, James, Andries van Dam, Steven Feiner, and John Hughes. "Computer Graphics: Principle and Practice". Addison-Wesley Publishing Company. Reading, Massachusetts: 1987. pages 689-693</ref>
Line 5:
== Prelude ==
[[image:Weiler-Atherton subdivision.svg|thumb|upright=1.2|Subdivision with the Weiler-Atherton algorithm]]
Before applying to any polygon, the algorithm requires several preconditions to be fulfilled
▲- Candidate polygons should not be self intersecting (i.e. re-entrant).
▲- The algorithm can support holes (as counter-clockwise polygons wholly inside their parent polygon), but requires additional algorithms to decide which polygons are holes. Then, merging of polygons can be performed by a variant of the algorithm.
== The Algorithm ==
# List the vertices of the clipping-region polygon A and those of the subject polygon B.
# Generate a list of "inbound" intersections – the intersections where the vector from the intersection to the subsequent vertex of subject polygon B begins inside the clipping region.
▲All the polygon intersections are then found and are inserted into both lists, linking the lists at the intersections.
▲Then each intersection in the list is followed clockwise around the linked lists until the start position is found.
If there are no intersections then one of three
# A is inside B – return A for clipping, B for merging.
# B is inside A – return B for clipping, A for merging.
|