Algorithm 给定光线和多边形,计算多边形内的最大圆,其中中心位于光线上,端点位于圆上
给定一个简单多边形(不一定是凸多边形)和一条射线,其原点位于多边形内,我想计算多边形中包含的最大圆,但要受以下约束:Algorithm 给定光线和多边形,计算多边形内的最大圆,其中中心位于光线上,端点位于圆上,algorithm,geometry,Algorithm,Geometry,给定一个简单多边形(不一定是凸多边形)和一条射线,其原点位于多边形内,我想计算多边形中包含的最大圆,但要受以下约束: 圆的中心位于光线的某个地方 射线的原点位于圆上 有没有一个算法可以精确地计算这个?近似值呢 设C为满足问题条件的圆集(即,射线上圆的中心和射线的原点在圆上) 考虑多边形的边e。然后: C中没有一个圆与e相接触。在这种情况下,r(e)=∞. 有一个最小的圆c∈ 与e相切的C(或者e与C相切,或者e的一个端点位于C上-您可以通过求解这些可能性来找到C)。在这种情况下,r(e)是c的半
让C是满足问题条件的圆的集合(即光线的中心和光线的原点在圆圈上)。 考虑多边形的边e。然后:
- 绘制由多边形侧面和光线原点定义的抛物线
- 如果抛物线与扇区内的光线相交,则相交点为圆心
- 绘制由多边形侧面和光线原点定义的抛物线
- 如果抛物线与扇区内的光线相交,则相交点为圆心
(这只是一个快速草图,使用圆而不是真正的抛物线;各部分显然应该在线段的边缘相交。)如果光线的原点都位于圆上,另一点是圆的中心,则表示属于光线的两个点位于圆上,这意味着两个点位于多边形上,这意味着它不再相交,光线和多边形在同一平面上,或者,这两个点是同一点。@Alexandrubarbosie我编辑了这个问题,说光线的原点在多边形内。这有意义吗?我觉得一张图片会更有意义;如果我误解了这个问题,请告诉我。我必须说,它看起来像一个数学问题,而不是一个编程问题。将一个点从其原点穿过光线,计算到多边形所有边的距离,直到最短距离等于到原点的距离。@m69的图像完美地说明了这一点。谢谢。如果射线的原点都在圆上,而另一个点是圆的中心,这意味着属于射线的两个点在圆上,这意味着两个点在多边形上,这意味着它不再相交,射线和多边形在同一平面或平面上,这两个点是同一点。@Alexandrubarobasie我编辑了这个问题,说光线的原点在多边形内。这有意义吗?我觉得一张图片会更有意义;如果我误解了这个问题,请告诉我。我知道