由于你说,试金石可能无法调和,可能的答复可能只是什么,一个点,一个线段,或一个有3-8方的多角。
The usual way to do this 2d boolean
operation is to choose a counterclockwise ordering of the edges, and then evaluate edge segments between critical points (intersections or corners). At each intersection you switch between an edge segment of the first rectangle to an edge of the second, or visa-versa. You always pick the segment to the left of the previous segment.
详细情况有联络处,但基本算法是找到所有交叉点,并命令它们有适当的数据结构。 选择一个交叉点(如果有的话),选择一个线段,脱离这一交叉点。 将其他试金字部分排在选定的起始部分的左边。 总体情况是,我们选择将“十字路口”绿色部分作为参考部分。 另一条直径部分右边是a至>>。 将这一部分作为下一个参考部分,并选择一个绿色部分来取代它左边。 这一部分从b到c>。 Find部分cd。 下一个部分从d到玉米,因此玉米也出现在交叉点的垂直清单中。 从玉米到a>。
To choose the left side each time, you use the determinate of the coordinates of the direction vectors for the edges that meet. If the determinant for the ordered pair of directed edges is positive, you re going the right way.
既然您有交错,你可以使用<>> surveyor s program。
我留给你的一些细节是: