如何在形状上对多边形进行三角剖分?Shapely实际上提供了一个函数,但它只将多边形的顶点作为一个点集进行三角剖分。对于凸多边形,解是相同的,但是对于非凸的,你会得到额外的三角形。我试着移除多边形之外的所有三角形,但有时三角形可以跨越多边形边界(见下图)。我想我也可以去掉这些,然后从多边形减去剩下的三角形,然后递归地三角化这个差异的成分。但还有更简单的方法吗?
例如,多边形三角剖分不是顶点三角剖分的子集(多边形边界更宽、更灰,三角形边界更暗、更薄):
生成此几何图形的代码:
from shapely.geometry import Polygon
from shapely.ops impor
给定一个表示为二维点的数组的路径:
Point[] path = new Point[4]
{
new Point(0,0),
new Point(10,0),
new Point(10,10),
new Point(0,10),
};
..。给你,一个盒子。
什么是最好的方法来转换成一个三角形列表(填充路径),以便在3D应用程序中使用?考虑到这只是一个简单的示例,并且实际中的路径可能相当复杂。框架中有没有什么东西可以对此有所帮助,比如System.Drawing或者WPF?
编辑:(在Samuel的评论之后)理想情况下,我希望能够同时处理凸多边形和凹多边形,否
我想确定给定的三角形是否与四面体相交。我不想计算解多边形本身(如果它存在的话)。是否有任何库/包/发布的实用算法可以直接解决这个问题(与我下面的尝试不同)?
我认为,作为最后的手段,我将不得不使用标准多边形-多边形交集算法实现间接解决这个问题。
我在这个问题上的尝试:
我想把它分解成多边形-多边形交点的问题。因此,对于四面体和给定的三角形T1的每个三角形面(例如T2 ),我想做以下工作:
计算每个三角形对应的平面之间的相交(一条线),比如L1。
对于每个三角形:
1. For each edge of the triangle say `L2`, compute point o