多边形三角测量的相反之处是什么?

时间:2010-08-28 15:53:09

标签: geometry computational-geometry triangulation pathgeometry graphicspath

在我完成2D三角测量后,一些三角形具有相同的颜色,我想重新组合它们以绘制成相似颜色的图形路径。我发现如果我只是逐个绘制三角形,一些图形渲染器会显示三角形之间的接缝(至少如果涉及抗锯齿和/或透明度)。

那么如何拍摄一组(非重叠)三角形并生成一个图形路径,其中可能包含孔和不相交的多边形?

盲目地将三角形添加到图形路径实际上非常适合填充(当然不是用于抚摸),但是导出那些额外的内部点感觉不对。

1 个答案:

答案 0 :(得分:7)

将每个三角形视为由逆时针链中的三个向量组成的轮廓。

<--^
| /
|/ 
V

因此,对于形状中的所有三角形,请使用轮廓矢量的并集。如果联合中的两个轮廓向量相同但向相反方向移动,则它们相互抵消并从联合中移除。

例如,对于两个并排的三角形,并集是6个向量

<--^^
| //|
|// |
VV-->

减少到4个向量,因为中间的两个对角矢量取消,因为它们相同但运行方向相反:

<--^
|  |
|  |
V-->

你会发现这适用于更大的三角形聚合。只需将生成的矢量尾部连接到头部即可获得闭合路径。一些封闭的路径可以顺时针运行,这些是空洞。

<-----<-----<-----^
|                 |
|                 |
V     ^----->     ^
|     |     |     |
|     |     |     |
V     <-----V     ^
|                 |
|                 |
V----->----->----->