【发布时间】:2013-03-26 20:45:41
【问题描述】:
前几天我在 Java 中做了一个课程来计算 point(X,Y) 是否在多边形内。 (X 和 Y 是 double,因为它们是地理坐标)。
我知道 Java 有 Polygon 类,但我不得不使用 Path2D 和 Point2D,因为 Polygon 不允许 double 的,只有整数 :(
一旦我在Path2D 中完成了多边形,我就使用了contains 的方法(Path2D 有它),我的问题就解决了。
但是现在,我想导入到Android,问题就出在这里,因为Path2D需要导入:
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
并且在Android中不存在awt,所以我不能使用。
那么,有没有类似Path2D 的类有contains 方法?还是我自己计算?
这是我在 Java 中使用 Path2D 所做的:
private void ConstructPolygon(Vector<Point2D> coodinates)
{
this.polygon.moveTo(coodinates.get(0).getX(), coodinates.get(0).getY());
//System.out.println(coodinates.get(0).getX() + " " + coodinates.get(0).getY());
//System.out.println("asda");
for(int i = 1; i < this.num_points; i++)
{
//System.out.println(coodinates.get(i).getX() + " " + coodinates.get(i).getY());
this.polygon.lineTo(coodinates.get(i).getX(), coodinates.get(i).getY());
}
this.polygon.closePath();
}
public boolean InsideCity(Point2D punto)
{
return this.polygon.contains(punto);
}
【问题讨论】:
-
也许您可以将所有
double值乘以 10,000 并将它们与 JavaPolygon类一起使用?
标签: java android polygon point