我在输入上有两个表示为两个向量点的凹多边形。我想对它做一些多边形操作 - 联合,相交和差异。我发现这些多边形之间的交点并将它们插入每个多边形的正确位置。然后我给出关于它的位置的信息(内部 - 它在另一个多边形内,外部 - 它在另一个多边形之外,交点 - 多边形的两条边相交)到每个顶点。现在我知道哪些点创建了这些多边形(外部和交叉点)的联合等,但我需要知道如何将它们排序到正确的顺序。在相交运算的情况下,我需要将这些已排序的点分为正确的集合数,因为相交的结果可能不止一个多边形。对多边形的操作 - 如何对找到的顶点进行排序
我使用C++,但我不一定需要代码,我只想要如何排序这些最终的多边形点。而且我不想为这些操作使用任何库,因为我已经有了自己的功能并且想要使用它们。
我看了一下这个问题How to intersect two polygons?还有其他一些问题,但是他们都没有解决最终的点排序问题。 我也读过这篇文章http://www.gvu.gatech.edu/~jarek/graphics/papers/04PolygonBooleansMargalit.pdf,但我可能不明白。
任何帮助,将不胜感激。
你如何定义交点(你说你已经定义了它们)?触点是交点吗? –
我将触点定义为交点,但如果需要,我可以很容易地将触点定义为触点。我有一个位置属性保存每个点。 – TinF
还有一件事:如果在其中一个多边形中有对应的触摸/相交点,您能轻松找到相应的触摸/相交点吗? –