求多边形内角与圆周长之间的距离

Find distance between inside corner of polygon and perimeter of circle

提问人:Brendan Sadaka 提问时间:8/11/2023 最后编辑:jonrsharpeBrendan Sadaka 更新时间:8/14/2023 访问量:55

问:

我正在尝试计算图像中示例中红线的长度。我掌握的信息是:

  • 多边形所有点的坐标
  • 圆的半径
  • 每个角的角度

我想放置一个具有给定半径的圆,尽可能靠近多边形的角,这意味着圆和角坐标之间的外切线是圆靠边的位置 - 如提供的图像所示。

除了圆的半径之外,我不知道如何计算那一点额外的空间,以防止圆与边缘相交。

enter image description here

JavaScript 数学 三角函数

评论

0赞 Scott Hunter 8/11/2023
你忘了包括你试图解决这个问题。
3赞 Pointy 8/11/2023
一旦数学部分被计算出来,JavaScript 部分应该非常明显。数学部分并不是真正的编程,而是数学。
0赞 Pointy 8/11/2023
@DarrylNoakes在我看来,基本问题是将一定半径的圆挤压到特定角度。多边形的其余部分只是对半径的约束。
0赞 Darryl Noakes 8/11/2023
一种核心方法是找到两条平行线,每条平行线对应构成顶点的线,以及与所述线的半径距离。圆的坐标是它们的交点。
0赞 Darryl Noakes 8/15/2023
我相信我没有仔细阅读并误解了。你只想计算红线的长度,而不是圆的实际位置?如果你最后要计算位置,你是怎么从这个长度开始计算的?

答:

0赞 ControlAltDel 8/11/2023 #1

好的,这是你要做的:

  1. 找到在圆接近的拐角处形成的角度。您可以在多边形中的特定线段上使用 arctan(arctan2) 来执行此操作。从角度 2 中减去角度 1,然后除以 2,您就得到了接近角。

  2. 现在做tan(接近角 - 更小的角度),这将给你斜率。

  3. 沿接近角的距离将是半径/斜率。

这应该有效

1赞 Brendan Sadaka 8/14/2023 #2

下图显示了我为弄清楚它所做的工作。 我意识到在顶点、圆的中心和圆与多边形一侧接触的点之间总会形成一个直角三角形。

我知道圆接近的角度,也知道圆的半径,所以我既有边长,也有角度可以工作。

圆心到顶点的距离可以使用余弦定律来计算。

enter image description here

评论

1赞 Darryl Noakes 8/15/2023
是的,那是因为边必须与圆相切,并且切线始终垂直于半径。