查找给定多边形的两个"bounding"顶点 w.r.t. 已知(光源)点



上下文:我提前为这个问题的不严谨性道歉,因为它比我最初想象的更难表述。我正在寻找两种不同的方法;边界";给定多边形的二维空间中的顶点w.r.t.到已知点。在本文中;边界";顶点我指的是这张图片最能描述的情况。即,设p为已知点,并假设我们在p处放置光源。则多边形P(x_1,...,x_n)的边界顶点是连接线段l(v_1, v_2)以与整个多边形P(x_1,...,x_n)相同的方式阻挡来自p的光的那两个点v_1, v_2

问题:我已经有了一个解决方案,通过旋转角度w.r.t.将P的顶点与p的顶点进行比较。然而,这种方法需要使用三角atan2函数,所以我很想知道是否有一种计算成本更低的方法。

选择一个任意的起始顶点,让A。现在选择另一个,让B,并检查它是否位于FA的左侧。如果是,继续FB,依此类推。同时对左侧和右侧执行此操作。

LeftOf检验只是2x2行列式的一个符号。

最新更新