0

我们都知道如何检查2D 点是否在 2D 多边形内,但是如何精确检查点是否在由直线、圆弧、椭圆弧和样条线组成的复杂轮廓内?我的意思是不使用偏差容差将其转换为 2D 多边形。

你知道解决这个问题的任何强有力的方法吗?

谢谢。

4

2 回答 2

3

缠绕/交叉测试不仅适用于多边形。您只需要能够使轮廓与特定线相交(并且在绕组数的情况下,评估轮廓在该点的切线)。您还需要注意数值准确性,并记住双根算作 2 个交点。

对于样条线,虽然有线/样条线相交方法,但离散为多边形(请记住,您只需要穿过线的多边形的一小部分)可能是最简单的方法。

于 2013-09-12T08:47:27.487 回答
0

我不确定您使用的是哪种数据,但如果您能以某种方式与图像处理进行类比... Ray Casting Algorithm 可以帮助您找到答案。

多边形中的点问题可以在任何类型的复杂结构中实现,并且通常效果很好。检查此链接以获取伪代码:Ray Casting

但是,如果您没有任何明确定义的方法来查找复杂轮廓中的交点,则此方法将不起作用。

您可以尝试闯入寻找交叉点的子问题:

  1. 样条与直线的交点
  2. 线段圆交点
于 2013-09-12T09:10:45.383 回答