主题:(求高手)已知空间四点组成的四面体 求其外接球球心
小达11
[专家分:0] 发布于 2011-07-18 15:44:00
已知空间四点坐标(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4) 求其外接球球心(x,y,z)
回复列表 (共5个回复)
沙发
yeg001 [专家分:14390] 发布于 2011-07-18 18:30:00
先用空间几何算, 算出来再把公式代入写程序.
板凳
adda [专家分:1520] 发布于 2011-07-18 18:51:00
解析表达式很麻烦的
直接根据距离相等,解一个3*3的线性方程组就行了
3 楼
小达11 [专家分:0] 发布于 2011-07-18 20:42:00
我编了一个程序,可是出现了问题,您帮我看一下哪里出了问题?感激不尽。程序里面还有要算球的半径的。
4 楼
fortran2008 [专家分:750] 发布于 2011-07-18 21:41:00
我试试,明天答复。
5 楼
fortran2008 [专家分:750] 发布于 2011-07-18 22:23:00
use imsl
real*8 :: x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,x,y,z,r
real*8 :: A(3,3),B(3),c(3)
real*8 :: r1,r2,r3,r4
x1=0
y1=0
z1=0
x2=1
y2=0
z2=0
x3=0
y3=1
z3=0
x4=0
y4=0
z4=1
a(1,1)=2*(x2-x1)
a(1,2)=2*(y2-y1)
a(1,3)=2*(z2-z1)
a(2,1)=2*(x3-x2)
a(2,2)=2*(y3-y2)
a(2,3)=2*(z3-z2)
a(3,1)=2*(x4-x3)
a(3,2)=2*(y4-y3)
a(3,3)=2*(z4-z3)
b(1)=x2*x2+y2*y2+z2*z2-(x1*x1+y1*y1+z1*z1)
b(2)=x3*x3+y3*y3+z3*z3-(x2*x2+y2*y2+z2*z2)
b(3)=x4*x4+y4*y4+z4*z4-(x3*x3+y3*y3+z3*z3)
c=a .ix. b
x=c(1)
y=c(2)
z=c(3)
r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1))
r1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1))
r2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2)+(z-z2)*(z-z2))
r3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3)+(z-z3)*(z-z3))
r4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4)+(z-z4)*(z-z4))
write(*,*)x,y,z,r
write(*,*)r1,r2,r3,r4
end
做了一下,以上是在Compaq Visual Fortran运行的(有用到IMSL库求解AX=Bx线性方程组。)
我来回复