2

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

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

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

4

1 回答 1

7

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

<--^
| /
|/ 
V

所以对于你形状中的所有三角形,取它们的轮廓向量的并集。如果联合中的两个轮廓向量相同但方向相反,则它们相互抵消并从联合中删除。

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

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

这减少到 4 个向量,因为中间的两个对角线向量相互抵消,因为它们相同但方向相反:

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

您会发现这适用于较大的三角形聚合。只需将生成的向量尾到头连接即可获得闭合路径。一些封闭路径可能顺时针运行,这些是孔。

<-----<-----<-----^
|                 |
|                 |
V     ^----->     ^
|     |     |     |
|     |     |     |
V     <-----V     ^
|                 |
|                 |
V----->----->----->
于 2010-08-29T22:01:21.547 回答