如果說已知三維空間的三個點位
A(Xa,Ya,Za)
B(Xb,Yb,Zb)
C(Xc,Yc,Zc)
又知道DA、DB、DC三個斜距,想要解出D點的位置。
距離 DA=SQRT((Xa-X)^2+(Ya-Y)^2+(Za-Z)^2)
同理 DB=SQRT((Xb-X)^2+(Yb-Y)^2+(Zb-Z)^2)
同理 DC=SQRT((Xc-X)^2+(Yc-Y)^2+(Zc-Z)^2)
上三式展開後
DA^2=Xa^2-2XaX+X^2+Ya^2-2YaY+Y^2+Za^2-2ZaZ+Z^2 1式
DB^2=Xb^2-2XbX+X^2+Yb^2-2YbY+Y^2+Zb^2-2ZbZ+Z^2 2式
DC^2=Xa^2-2XcX+X^2+Yc^2-2YcY+Y^2+Zc^2-2ZcZ+Z^2 3式
1式-2式
DA^2-DB^2 = Xa^2-2XaX+X^2+Ya^2-2YaY+Y^2+Za^2-2ZaZ+Z^2
-Xb^2+2XbX-X^2-Yb^2+2YbY-Y^2-Zb^2+2ZbZ-Z^2
已知值放左側整理後
(DA^2-DB^2-Xa^2-Ya^2-Za^2+Xb^2+Yb^2+Zb^2)/2=X(Xb-Xa)+Y(Yb-Ya)+Z(Zb-Za) 4式
同理1式-3式
(DA^2-DC^2-Xa^2-Ya^2-Za^2+Xc^2+Yc^2+Zc^2)/2=X(Xc-Xa)+Y(Yc-Ya)+Z(Zc-Za) 5式
4式整理成Z=f(X,Y)
Z=(((DA^2-DB^2-Xa^2-Ya^2-Za^2+Xb^2+Yb^2+Zb^2)/2)-X(Xb-Xa)-Y(Yb-Ya))/(Zb-Za) 6式
同理5式
Z=(((DA^2-DC^2-Xa^2-Ya^2-Za^2+Xc^2+Yc^2+Zc^2)/2)-X(Xc-Xa)-Y(Yc-Ya))/(Zc-Za) 7式
6式-7式 可消去未知數Z
然後再整理成 Y=f(X) 8式
代回6或7式即可得到Z=f(X)
照上述感覺好像可以解出來,但是項次真的太多了....好難...
不知道有沒有其他方法(例如用矩陣)可以用乾淨一點的算式得出X、Y、Z到底等於多少
直覺答案會有兩個(兩個球的交集成一個圓,圓跟第三個球會交成兩個點)
另一個想法是三點購成的平面,解在法向量上正跟負各有一解....但不會列式...
請教高人協助!