这个问题怎么解? ( 积分: 100 )

  • 主题发起人 主题发起人 woodlee
  • 开始时间 开始时间
W

woodlee

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道两个坐标a(x1,y1),b(x2,y2),它们之间是一段弧,另外我还知道夹角为c,我该用什么方法求出半径和圆心坐标
 
把高中的数学书拿出来翻翻.
 
(sqrt(sqr(y1-y2)+sqr(x1-x2))/2)/sin(c/2)就是半径
 
谢谢themars!
那圆心的坐标怎么求呢?有没有方便的函数或者代码呀?不胜感激!
 
草草计算了一下,不知道有没算错,你试试吧
var
d, a,b,t1,t2, x0, y0, x,y: Double
d := sin(c/2)
t1 := ((sqr(1/a))-1)*(sqr(x2-x1)+sqr(y2-y1))
t2 := sqe(1/a)*(sqr(x2-x1)+sqr(y2-y1))
a := (t1-t2)/2
b := (sqr(x1)+sqr(x2)+sqr(y1)+sqr(y2)-(t1+t2))/2
x0 := (((b+a)*y2)-((b-1)*y1))/(2*(x1*y2-x2*y1))
y0 := (((b+a)*x2)-((b-a)*x1))/(2*(x2*y1-x1*y2))
x :=(x0+x1)/2
y := (y0+y1)/2
(x,y)就是圆心坐标
 
第4行 的sqe是打错了 应该是sqr
 
好几处打错,重新写下
var
d, a,b,t1,t2, x0, y0, x,y: Double
d := sin(c/2)
t1 := ((sqr(1/d))-1)*(sqr(x2-x1)+sqr(y2-y1))
t2 := sqr(1/d)*(sqr(x2-x1)+sqr(y2-y1))
a := (t1-t2)/2
b := (sqr(x1)+sqr(x2)+sqr(y1)+sqr(y2)-(t1+t2))/2
x0 := (((b+a)*y2)-((b-1)*y1))/(2*(x1*y2-x2*y1))
y0 := (((b+a)*x2)-((b-a)*x1))/(2*(x2*y1-x1*y2))
x :=(x0+x1)/2
y := (y0+y1)/2
 
接受答案了.
 

Similar threads

后退
顶部