多边形双坐标问题

26

我有关于双精度类型点的多边形问题。

我的任务是给定一些点,创建多边形,然后测试一个具体点是否在多边形内部。

我知道在 Java 中有一个称为 Polygon 的类,用法如下:(三角形)

int valoresX[] = { 100, 150, 200 };
int valoresY[] = { 100, 200, 100 };
int n = valoresX.length;
Polygon city= new Polygon(valoresX,valoresY,n);

但是我的“多边形”必须是“Double”类型,而不是“int”(一个简单的例子)

Double valoresX[] = { 1000.10, 150.10, 200.10 };
Double valoresY[] = { 100.10, 200.10, 100.10 };

在我的项目中,我不需要在小程序或类似的东西上进行绘制,我只需要计算这个点是否在内部。

所以我的问题是:

有没有一种方法可以使用双坐标来创建多边形,从而可以计算出点(双坐标)是否在多边形内部?

非常感谢!!!

Shudy

1个回答

29

您可以使用Path2D.Double来实现此操作:

Path2D path = new Path2D.Double();

path.moveTo(valoresX[0], valoresY[0]);
for(int i = 1; i < valoresX.length; ++i) {
   path.lineTo(valoresX[i], valoresY[i]);
}
path.closePath();

还可以参考以下问题:

在Java 2D中实现Polygon2D


1
首先,感谢您的回复和快速答复! 我将尝试并查看它是否适用于我的项目;) 谢谢! Shudy - Shudy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接