如何从凹多边形中的顶点v查找多边形的可见性

我正在研究2D美术任务分配问题,以找到最少数量的顶点保护。作为使用遗传算法解决问题的一部分,我需要找出多边形的区域,该区域对于放置在顶点上的警卫可见。

输入是具有已知2d(x,y)坐标的多边形。您能帮我知道如何计算放置在多边形顶点上的保护罩的可见性(即他可能看到的多边形的哪个部分)?

qazzaqqaz4444 回答:如何从凹多边形中的顶点v查找多边形的可见性

这是从多边形内任意点查找可见区域的解决方案。您可以更改它以将点限制为多边形顶点: enter image description here

步骤1::从保护线向每个顶点绘制光线,并找到与多边形所有边的交点。

第2步::检查射线是否穿过多边形(黄色)或只是碰到多边形(紫色)。

第3步:按射线与防护点的距离对交叉点进行排序,找到壁橱的交叉点。将所有其他点称为不可见(红色),将较近的点称为可见(绿色)。

第4步:现在,多边形的每个边都等效于一个或多个线段,每个线段的两个端点都标记为可见。这些段的总长度。

这是一个更复杂的示例:

enter image description here

请记住,这只是一个开始,您可以对其进行优化。考虑一下Niko的第一个改进意见。

本文链接:https://www.f2er.com/3142067.html

大家都在问