点是否在多边形内点在线上不算在多边形内 param pt 当前点 param pts 多边形顶点列表 return 是否在多边形内 public static boolean isPtInPolyPt pt ListPt pts Path2DDouble path = new Path2DDouble; Pt first =
这段代码实现了一个判断一个点是否在一个多边形内的功能。它接受两个参数,一个是当前点(Pt类型),另一个是多边形顶点列表(List
首先,这段代码定义了一个Path2D.Double类型的path对象,用于表示多边形的轮廓。然后,它取出多边形顶点列表中的第一个点作为起始点,并调用path对象的moveTo方法将起始点设为当前的绘制点。
接下来,它使用一个for循环遍历多边形顶点列表中的所有点,将它们依次连接起来,形成多边形的轮廓。具体来说,每次循环会取出下一个点next,然后调用path对象的lineTo方法将当前绘制点与next点连接起来。
最后,它再次调用path对象的lineTo方法,将最后一个点与第一个点连接起来,形成一个封闭的多边形。然后,它调用path对象的闭合方法closePath,将多边形的轮廓封闭起来。
最后,它调用path对象的contains方法,检查当前点是否在多边形内。如果在多边形内,返回true,否则返回false。
原文地址: https://www.cveoy.top/t/topic/gcWD 著作权归作者所有。请勿转载和采集!