线扫 - 这是什么?

时间:2014-01-06 16:16:39

标签: math graphics geometry

有人可以试着向我解释一下Line Sweeping是什么吗?我有数学和几何的基本知识。请尝试用我最有可能理解的语言进行解释。

另外,关于如何在某个程序(最好是Java)中实现它的编码示例会很棒。

非常感谢

1 个答案:

答案 0 :(得分:2)

检查@Josiah's link,但基本上就是这个想法:

通过空间“扫描”一条线(可能是2D),并在遇到点,顶点或其他物体时采取一些行动。您可以使用此

  • 围绕点云构建边界形状

  • 收缩包裹点以获得凸多边形,

  • 生成Voronoi图表(参见上面wiki链接中的示例)

  • 执行原始波模拟(扫描线或波前遇到的点会导致波形的干扰)

  • 可见度确定:在起始扫描线上选择一个查看器位置(甚至多个查看器位置)。每次遇到一个物体时,从观察者位置通过遇到物体的外边界生成一个圆锥或其他体积,该物体代表遇到点的“后面”区域。

  • 2D / 3D排序,虽然这远非最有效的排序方式,

  • 可能是我没想过的一大堆东西。

<强>更新

对于多边形交叉点,最好使用Separating Axis Test。 (See this link用于Java示例。)

此外,see this link用于对算法进行较少混淆的概述。

相关问题