如果我有一個點(x,y,z)如何將其投影到球體(x0,y0,z0,radius)(在其表面上)。 我的輸入將是點和球體的座標。 輸出應該是球體上投影點的座標。如何將點投影到球體上
只需從直角座標轉換爲球座標?
如果我有一個點(x,y,z)如何將其投影到球體(x0,y0,z0,radius)(在其表面上)。 我的輸入將是點和球體的座標。 輸出應該是球體上投影點的座標。如何將點投影到球體上
只需從直角座標轉換爲球座標?
對於最簡單的投影(沿着點連接至球體的中心的直線):
寫入點在球體的中心(X0,Y0,Z0爲中心的座標系):
P =(X 'Y',Z')=(X - X 0,Y - Y 0,Z - Z 0)
計算該矢量的長度:
| P | = SQRT(X '^ 2 + Y'^2 + Z'^ 2)
量表載體中,使得它具有長度等於所述球體的半徑:
Q =(半徑/ | P |)* P
並改回原來的座標系,以獲得投影:
R = Q +(X0,Y0,Z0)
:好的,謝謝。你能解釋我的(3)嗎?(爲什麼我們縮放?)。 – George 2012-03-07 16:12:50
@George將點直接放置在球的表面上,其大小等於半徑 – 2015-12-13 06:04:49
基本上你想要構建一條穿過球體中心和點的線。然後你將這條線與球體相交,並且你有你的投影點。
更詳細地說:
讓p
是點,s
球體的中心和r
半徑然後x = s + r*(p-s)/(norm(p-s))
其中x
是你正在尋找的點。實施由您決定。
我同意球面座標方法也可以,但在計算上要求更高。在上面的公式中,唯一不平凡的操作是規範的平方根。
如果您將球體中心的座標設置爲系統的原點(x0,y0,z0),它會起作用。所以你將得到與原點相關的點的座標(Xp',Yp',Zp'),並將座標轉換爲極座標,則丟棄半徑(球體中心與點之間的距離)和角度將定義投影。
你如何投影點?連接球體的點和中心?平行於某個軸?其他投影?點(x,y,z)和球體的中心也是相同的值,或者您只是使用相同的變量名稱? – 2012-03-07 15:22:41