我有一个简单的多边形(凸或凹,但没有孔),我需要用一条线段将其切分成若干部分。 我不确定在切割后会得到多少个多边形,也不知道如何分组顶点。
基本凸情况总是会产生2个子多边形,很容易处理,但是如何处理复杂的凹形状呢?以"E"形多边形为例,垂直切片可以产生4个多边形。 我该如何确定哪些顶点组成了每个子多边形?
定义多边形:我有两个选项。我的多边形可以是顶点的有序列表,也可以是三角形数组。 我希望使用三角形数组的解决方案。循环遍历每个三角形并与线段相交进行切割应该很容易。 但是我不知道如何将这些三角形分组成结果的子多边形。
伪代码或一般性建议都可以; C#实现是理想的。
基本凸情况总是会产生2个子多边形,很容易处理,但是如何处理复杂的凹形状呢?以"E"形多边形为例,垂直切片可以产生4个多边形。 我该如何确定哪些顶点组成了每个子多边形?
定义多边形:我有两个选项。我的多边形可以是顶点的有序列表,也可以是三角形数组。 我希望使用三角形数组的解决方案。循环遍历每个三角形并与线段相交进行切割应该很容易。 但是我不知道如何将这些三角形分组成结果的子多边形。
伪代码或一般性建议都可以; C#实现是理想的。