5

给定二维平面中的两个点,以及与这两个点相交的半径为 r 的圆,计算该圆心的公式是什么?

我意识到圆圈可以定位在两个地方。当从任意角度开始扫描连接其中一个点周围的两个点的线时,我希望首先在顺时针方向遇到其中心的圆。我想这是我问题的下一个阶段,在我找到第一部分的答案之后。

我希望整个计算可以在没有三角函数的情况下完成。我从整数坐标开始,如果有帮助,将以整数坐标结束。

4

3 回答 3

8

不确定这是否是问这个问题的正确地方,但是:

让:

q = sqrt((x2-x1)^2 + (y2-y1)^2)
x3 = (x1+x2)/2
y3 = (y1+y2)/2

第一圈:

x = x3 + sqrt(r^2-(q/2)^2)*(y1-y2)/q
y = y3 + sqrt(r^2-(q/2)^2)*(x2-x1)/q  

第二圈:

x = x3 - sqrt(r^2-(q/2)^2)*(y1-y2)/q
y = y3 - sqrt(r^2-(q/2)^2)*(x2-x1)/q  

这里

于 2011-02-06T15:20:44.253 回答
3

A=(ax, ay)
B=(bx, by)
d=((bx-ax)^2 + (by-ay)^2)^(1/2) # A到B的距离
r=你的半径圆圈

如果 (2*r>d) 在现实世界中没有解决方案 - 有一个复杂的解决方案;-)

如果 (2*r=d) 有一个解决方案:A 和 B 之间的中间。

从 A 到 B
画一条线。在中点画出这条线的垂线并向外画出距离 D,使得 r=(D^2 + (d/2)^2)^(1/2)。根据您的需要选择左侧或右侧。

于 2011-02-06T15:27:25.080 回答
2

这已经在这里得到了回答:问数学博士:从 2 个点和半径找到圆的中心

这可能也很有趣:Gamedev.net:给定两个点和半径的圆心

于 2011-02-06T15:18:50.073 回答