查找给定多边形 w.r.t 的两个“边界”顶点。已知(光源)点

Posted

技术标签:

【中文标题】查找给定多边形 w.r.t 的两个“边界”顶点。已知(光源)点【英文标题】:Finding two "bounding" vertices of a given polygon w.r.t. a known (light source) point 【发布时间】:2021-12-08 03:02:55 【问题描述】:

上下文:我提前为这个问题的不严谨性表示歉意,因为事实证明它比我最初想象的更难表述。我将通过不同的方法在给定多边形 w.r.t 的 2D 空间中找到两个“边界”顶点。到一个已知点。在这种情况下,“边界”顶点是指this image 最能描述的情况。 IE。让p 成为已知点并假设我们在p 放置一个光源。那么多边形P(x_1,...,x_n) 的边界顶点就是这两个点v_1, v_2,连接线段l(v_1, v_2) 阻挡来自p 的光,就像整个多边形P(x_1,...,x_n) 一样。

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

【问题讨论】:

也许这会有所帮助:dgp.toronto.edu/~ghali/publications/thesis/html/node8.html 【参考方案1】:

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

LeftOf 检验只是 2x2 行列式的标志。

【讨论】:

以上是关于查找给定多边形 w.r.t 的两个“边界”顶点。已知(光源)点的主要内容,如果未能解决你的问题,请参考以下文章