不同平面上多边形之间的三角剖分

aro*_*tie 6 c++ opengl triangulation

我想在两组多边形之间进行三角测量.一组总是在另一组内,事实上,外多边形被创建为原始集的偏移.如果它们在同一平面上,三角测量将很容易,但我想通过将外多边形移动到平行但不同的平面来增加深度.我使用的常用三角测量方法(glu tesselator)不起作用.会有替代方案吗?

Vla*_*nov 5

你说你有一个在2D中工作的三角测量方法.精细.将两个轮廓放在同一平面上z = 0,进行二维三角测量,然后将z外轮廓顶点的坐标设置为所需的值.如您所述,将外轮廓移动到平行平面.

为什么这种方法不适合你?

是的,您最终可能会得到一些水平三角形,它们具有相同z坐标的所有三个顶点.如果您使用"真正的"3D三角测量,您也可能会得到相同的水平三角形.这一切都取决于轮廓和算法的形状.

如果有这样的水平三角形是不可接受的,你可以添加第二遍以试图消除它们:

找一个水平三角形.它的两个边缘属于原始内部轮廓或原始外部轮廓.第三个边缘将"短路"原始轮廓的顶点.找到另一个与上述"第三"边缘相同边缘的三角形.这对三角形形成菱形.只有两种方法来对菱形进行三角测量.你得到的那个是不可接受的,所以只是以不同的方式对菱形进行重新三角测量.

没有图纸很难解释这一点.