gpt4 book ai didi

java - 使用 Path 2d 检测坐标

转载 作者:行者123 更新时间:2023-12-01 10:40:41 25 4
gpt4 key购买 nike

我正在尝试使用提供的contains方法来检测坐标。经过研究,我使用的代码似乎对其他人来说效果很好。但在这种情况下,尽管 boolean 值位于绘制的 Path2D 多边形内,但我无法从 boolean 值中获得正返回。

多边形创建:for循环绘制坐标包含检测坐标

Path2D prettyPoly =new Path2D.Double();
//Shape drawn
// for loop to retrieve x,y coordinates for each location
for (int i = 0; i < coord1.length; i++) {
// split to retrieve x and y
String[] splitCoord = coord1[i].split(" ");
// 0 - long 1 - lat
y1 = Double.parseDouble(splitCoord[0]);
x1 = Double.parseDouble(splitCoord[1]);
// to plot the starting point
if(i == 0){
System.out.println("Move to x"+x1 + "y" +y1);
prettyPoly.moveTo(x1, y1);



}else{

// continue from starting point
System.out.println("Line to x "+x1 + "y " +y1);
prettyPoly.lineTo(x1, y1);

}

}

prettyPoly.closePath();

// check if contain
Boolean h = prettyPoly.contains(1.38201544874088, 103.95321635529909);
if(h == true){
System.out.println("true");
}else{
System.out.println("false");
}

给定这组代码,我的坐标与第一个位置的起始坐标相同,并且已被检测为错误。

链接到路径二维文档:

https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.html

https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.Double.html

最佳答案

您可以尝试执行以下操作,而不是

Boolean h = prettyPoly.contains(1.38201544874088, 103.95321635529909);

尝试使用

boolean h = prettyPoly.getBounds().contains(1.38201544874088, 103.95321635529909);

在我使用 Path2D 进行的简单测试中,这按预期工作。

关于java - 使用 Path 2d 检测坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34431346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com