我在这里的问题很难用语言描述......所以我会用图片! 一般来说,我的问题如下:
说我有Polygon A:
通过开放多边形B在两点处相交:
我可以在这个交叉点形成两个闭合多边形的算法是什么? (请注意,这里有三个解决方案,我正在搜索的那个解决方案突出显示)
优选的解决方案是
那么,关于如何在交叉点之后生成B(和新的A)的任何建议?我是Polygon Math(和一般的2D Shape交互)的新手,所以我不知道从哪里开始或在哪里看!
谢谢!
答案 0 :(得分:0)
你用他们的轮廓“代表”你的多边形。轮廓是以某种方式排序的顶点序列(每个顶点由其平面坐标x和y给出)。 你在A中绘制的分段折线是新多边形B的轮廓的一部分。同一轮廓的另一部分是轮廓A的两半之一。你选择两个中的哪一个(你说最小的,但目前尚不清楚这意味着什么......最小的区域?)。
最后,你关闭B的轮廓,通过完成它的一系列顶点,轮廓A的那部分也属于你所需的多边形区域的轮廓/表示,这就是你的解决方案
如果你有2个B(一个用轮廓A的第一个“半”完成,另一个用第二个完成),并且想要一个面积最小的那个,你只需计算两个B中每一个的面积(通过使用轮廓顶点的坐标)并选择最小的。您可以通过使用顶点的坐标轻松搜索为您提供2D多边形区域的公式,或者您可以尝试自己派生它。