使用多边形包含

Guan Jun

我有一个问题Polygon#contains(Point)我正在测试点是否在多边形内。

这是如何Polygon构造:

Polygon p = new Polygon(new int[]{300, 300, 500, 500}, new int[]{200, 400, 400, 200}, 4);

对于顶点(300,400),输出是false,这就是我想要的:

System.out.println(p.contains(new Point(300,400))); //prints "false"

但是,对于第一个顶点((300,200)),它显示true

System.out.println(p.contains(new Point(300,200))); // prints "true"

根据第一个语句,它也应该打印false

为什么结果不同?

zlobi.wan.kenobi

奇怪的行为。可能是这样,观察到了内部定义中的一些特殊情况(请参见下文,从文档中复制)。另一个解释可能是双精度值的精度。

内部性的定义:当且仅当:

  • 它完全位于形状边界内
  • 它正好位于Shape边界上,并且在X方向上紧邻该点的空间完全在边界内,或者
  • 它恰好位于水平边界线段上,并且在递增的Y方向上紧邻该点的空间在边界内。

点(300,400)位于水平边界上,但在Y方向上紧邻的空间不在边界内=> contains将返回false。

但是,点(300、200)位于水平边界(也位于形状边界),并且在Y和X方向上紧邻该点的空间在边界内=> contains将返回true。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用多边形包含

来自分类Dev

包含多边形的MYSQL多边形

来自分类Dev

MarkLogic搜索包含多边形的文档

来自分类Dev

查询以匹配包含点的多边形

来自分类Dev

在多边形内包含png / svg?

来自分类Dev

传单绘制出多边形是否包含另一个多边形

来自分类Dev

找到包含给定坐标的多边形并找到多边形的坐标(python opencv)

来自分类Dev

使用gIntersection循环多边形裁剪

来自分类Dev

使用matplotlib绘制运动多边形

来自分类Dev

使用设计器绘制多边形

来自分类Dev

如何使用EaselJS绘制多边形?

来自分类Dev

使用openLayers绘制多边形

来自分类Dev

使用matplotlib转换多边形的动画

来自分类Dev

使用OSMnx提取约束多边形

来自分类Dev

使用矩阵变换多边形

来自分类Dev

如何对多边形使用polygonPointTest函数?

来自分类Dev

如何使用OpenCV绘制多边形?

来自分类Dev

使用boost的多边形联合

来自分类Dev

使用gIntersection循环多边形裁剪

来自分类Dev

使用 pixijs 渲染多边形

来自分类Dev

使用leaflet-pip和d3.geo包含多边形中的点

来自分类Dev

使用PostGIS计算邻域多边形包含的点数(来自两个数据集)

来自分类Dev

在 R 中使用 SP 包无法找到哪些多边形包含哪些点

来自分类Dev

圆角多边形

来自分类Dev

多边形图

来自分类Dev

滚动多边形

来自分类Dev

圆角多边形

来自分类Dev

标记多边形

来自分类Dev

多边形遏制