给定2D平面中的两个点,以及与这两个点相交的半径r的圆,计算该圆的中心的公式是什么?
我意识到圆圈可以放置两个位置。我想要的是,当从任意角度开始扫描连接这些点中的一个点的两个点的线时,首先以顺时针方向遇到中心的圆。在我找到第一部分的答案之后,我想这是我问题的下一个阶段。
我希望整个计算可以在没有三角法的情况下完成。我从整数坐标开始,如果有帮助,将以整数坐标结束。
答案 0 :(得分:6)
不确定这是否是正确的问题,但是:
令:
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
答案 1 :(得分:2)
这已在此处得到解答:Ask Dr. Math: Finding the Center of a Circle from 2 Points and Radius
这也可能是有意义的:Gamedev.net: Circle centre given two points and radius。
答案 2 :(得分:2)
A =(ax,ay)
B =(bx,by)
d =((bx-ax)^ 2 +(by-ay)^ 2)^(1/2)#A到B的距离
r =你的圆的半径
if(2 * r> d)现实世界中没有解决方案 - 有一个复杂的解决方案; - )
if(2 * r = d)有一个解决方案:A和B之间的中间。
画一条从A到B的线 在中点处从该线绘制垂线并向外绘制距离D,使得r =(D ^ 2 +(d / 2)^ 2)^(1/2)。根据您的需要选择向左或向右。