gpt4 book ai didi

algorithm - 找到只有 2 个随机点和凸起的圆心(x 和 y 位置)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:07 27 4
gpt4 key购买 nike

我正在尝试寻找圆心。我唯一的信息是:圆圈中的两个随机点和圆圈凸起。到目前为止,我已经设法计算出圆的半径(至少我认为我做到了)。我将在我目前使用的等式下面发布。

这些只是随机值,会根据用户输入而改变)

A 点(x = 10,y = 15)PointB(x = 6, y = 12)

circle_bulge = 0.41

距离 = B 点 - A 点

半径 = (距离/4) * (circle_bulge + (1/circle_bulge ))

如果这个数学不正确,请告诉我,但请记住,我需要找到圆心的 X 和 Y 坐标

最佳答案

这是问题的图片:

enter image description here

根据定义,凸起是 b = tg(Alpha/4)

根据三角函数公式:tg(2 ​​角度) = 2tg(角度)/(1-tg2(角度))

应用于角度 = Alpha/4 并使用凸起的定义:

tg(Alpha/2) = 2 b/(1-b2)

另一方面

tg(Alpha/2) = s/d

然后

s/d = 2 b/(1-b2 ) 和

d = s(1-b2)/(2 b)

这允许我们计算 d 因为 b 是已知的并且 s = ||B - A||/2,其中 ||B - A||表示向量 B - A 的范数。

现在,让我们计算一下

(u,v) = (B - A)/||B - A||

然后 ||(u,v)|| = 1, (v,-u) 与 B - A 正交,我们有

C = (v,-u)d + (A +B)/2


更新

计算中心的伪代码

输入:

A = (a1, a2), B = (b1, b2) "two points"; b "bulge"

计算:

"lengths"
norm := sqrt(square(b1-a1) + square(b2-a2)).
s := norm/2.
d := s * (1-square(b))/(2*b)

"direction"
u := (b1-a1)/ norm.
v := (b2-a2)/ norm.

"center"
c1 := -v*d + (a1+b1)/2.
c2 := u*d + (a2+b2)/2.
Return C := (c1, c2)

注意:中心有两种解决方案,另一种是

c1 := v*d + (a1+b1)/2.
c2 := -u*d + (a2+b2)/2.
Return C := (c1, c2)

关于algorithm - 找到只有 2 个随机点和凸起的圆心(x 和 y 位置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29105838/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com