Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用坐标和path2d确定点是否位于多边形的直线上_Java_Polygon_Path 2d - Fatal编程技术网

Java 使用坐标和path2d确定点是否位于多边形的直线上

Java 使用坐标和path2d确定点是否位于多边形的直线上,java,polygon,path-2d,Java,Polygon,Path 2d,所以我使用坐标来创建一个多边形,使用path2d。我需要找出一个点是否恰好位于我创建的多边形的直线上 这是我现在的代码,它允许我找出特定坐标是否在多边形内,但如果点正好在直线上,它将返回false import java.awt.geom.Path2D; public class Path2dMain { public static void main(String[] args) { Path2D.Double d = new Path2D.Double(); d.moveT

所以我使用坐标来创建一个多边形,使用path2d。我需要找出一个点是否恰好位于我创建的多边形的直线上

这是我现在的代码,它允许我找出特定坐标是否在多边形内,但如果点正好在直线上,它将返回false

import java.awt.geom.Path2D;

public class Path2dMain {
public static void main(String[] args) {
    Path2D.Double d = new Path2D.Double();
    d.moveTo(40.6522526, -105.1398466);
    d.lineTo(40.627764, -105.16559600000001);
    d.lineTo(40.6232377, -105.13491200000001);
    d.lineTo(40.6489967, -105.1317787);
    d.lineTo(40.6522526, -105.1398466);
    d.closePath();
    System.out.println(d.contains(40.63, -105.1417787));
  }
}

如果有人能找到一个很好的解决方案,如果这一点是在直线上的话,也可以重新运行true。提前感谢。

小心:“精确”和浮点运算不能很好地混合。请看一下这个问题及其答案:
文档中的这篇文章包含()
:请注意,内部性的定义可能会导致形状定义轮廓上的点可能不被视为包含在返回的边界对象中的情况,但仅在这些点也不被视为包含在原始形状中的情况下。请注意:“准确”和浮点运算不能很好地结合。看看这个问题及其答案:
.contains()
文档中的这篇文章:请注意,内部性的定义可能导致形状定义轮廓上的点可能不包含在返回的边界对象中,但仅在这些点也不被视为包含在原始形状中的情况下。