24小时热门版块排行榜    

查看: 3063  |  回复: 26
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yuguangdong

银虫 (小有名气)

[求助] 已知球上任意三点坐标和球的半径,求球的球心坐标 已有11人参与

思路很简单,半径已知,将三点坐标代入到球的方程中可以得出三个三元二次方程,解这三个方程即可。但是这三个方程解起来很麻烦,有没有什么好的办法?自己使用matlab的solve编程求解,发现求出的解有时可能存在虚数,很是不解,而且即使没有虚数,解出来的解也不准确,有没有什么好的办法求解呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞廉望舒

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
这是一个三元二次方程组,需要四个点才能求解唯一坐标。个点以及球心坐标:(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),),(x4,y4,z4),((x,y,z), 半径r
其中,(x,y,z)是未知数。
(1):(x-x1)^2+(y-y1)^2+(z-z1)^2=r^2
(2):(x-x2)^2+(y-y2)^2+(z-z2)^2=r^2
(3):(x-x3)^2+(y-y3)^2+(z-z3)^2=r^2
(4):(x-x4)^2+(y-y4)^2+(z-z4)^2=r^2

(1)-(4), (1)-(4),(2)-(4),即有:
(5):x(x1-x4)+y(y1-y4)+z(z1-z4)=0
(6):x(x2-x4)+y(y2-y4)+z(z2-z4)=0
(7):x(x3-x4)+y(y3-y4)+z(z3-z4)=0
14楼2014-03-08 13:20:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 27 个回答

千帆过也

木虫 (著名写手)


【答案】应助回帖

感谢参与,应助指数 +1
既然纠结这个,可能有很多要处理?那就解三元二次方程,把公式推导出来,然后用c或者vc写段代码实现一下,以后就方便了
2楼2014-03-07 21:24:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuankf666

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
可以以三点为球心画三个实体球,他们的几何交点就是原球的球心。
得之我幸,失之我命
3楼2014-03-08 08:01:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuqh

铁杆木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
当半径过小时就会出现虚数,这应该是很正常的啊。
另外你可以用两点连线的中面的方法求解,应该很简单啊。
4楼2014-03-08 08:33:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见