Java 如何根据X,Y的集合确定多边形的周长
我有一个布尔[],其中真正的索引组成一个实心多边形。有了这些信息,我怎么能Java 如何根据X,Y的集合确定多边形的周长,java,math,polygon,Java,Math,Polygon,我有一个布尔[],其中真正的索引组成一个实心多边形。有了这些信息,我怎么能 A.确定构成周界的街区,以及 B.哪些点(按顺序)可以使用多边形类绘制多边形 我打算使用Polygon类来调用.contains,但我目前使用的代码给出的多边形点顺序不正确(因为我只是从左到右,从上到下扫描)。在此问题上的任何帮助都将不胜感激 您正在寻找一个新的算法。您需要一些算法 第一:将布尔值[]转换为一组X-Y坐标的方法 第二:将这些点转换为多边形的方法(阅读凸包算法) 第三:计算多边形周长的方法 现在去填空吧
- A.确定构成周界的街区,以及
- B.哪些点(按顺序)可以使用多边形类绘制多边形李>
我打算使用Polygon类来调用.contains,但我目前使用的代码给出的多边形点顺序不正确(因为我只是从左到右,从上到下扫描)。在此问题上的任何帮助都将不胜感激 您正在寻找一个新的算法。您需要一些算法 第一:将布尔值[]转换为一组X-Y坐标的方法 第二:将这些点转换为多边形的方法(阅读凸包算法) 第三:计算多边形周长的方法
现在去填空吧 因为多边形可能是凹的,所以听起来凸壳算法不够。您需要的是位图到矢量的算法。查看此链接以了解此类算法的说明:
一旦得到多边形点,就可以对每个线段进行距离计算。我认为您只需要确定角点并连接它们。凸壳算法可能不起作用,因为多边形可能不是凸的。例如,左侧的第三个多边形(绿色多边形)不是凸多边形。同样,对于已经是凸面的多边形,凸面外壳算法可能会有过大的杀伤力 除非我弄错了,否则根据点的邻居的状态,布尔值列表中应该有四种类型的点。在规则网格中,索引i,j处的元素应该有8个邻居。基于这8个相邻点,假设多边形不接触区域的任何边,则应具有四种不同类型的点: