2012-02-22 118 views
4

背景信息

考慮像這裏顯示的一球座標系:到平面球面座標距離

Coordinate System http://www.shokhirev.com/nikolai/projects/global/image013.gif

對於一個特定的點,我們通過(R,θ,Φ指定其位置)。

A面可以在此座標系中作爲設定的所有點(R,θ,Φ),使得披=披」來描述。

的問題

假設我們有由固定披=披」給定的單個平面內。對於任意點(r,theta,phi),計算從(r,theta,phi)到由phi = phi'定義的平面的距離的最快和最簡單的方法是什麼?

從本質上講,我試圖找到點到面的距離在球面座標的簡單公式。

我已經試過

我覺得就足夠了簡單的轉換,從球面到笛卡爾座標生成一個點(X,Y,Z)=(R,θ,Φ),然後生成一個平面也以笛卡爾座標表示。然後,我可以使用標準公式計算笛卡爾座標系中從點到平面的距離。 這種方法不是最優的,因爲我需要在我的代碼的內部循環中運行這個計算數十億次。

一個理想的答案會告訴我如何計算這個距離,而不轉化成直角座標。然而,如果有人能證實我在「我所嘗試過的」這個想法是合理的,這也是有用的。

在此先感謝!

回答

0

如果您正在尋找R的另一側(不是在披面),應當由下式給出:

d = |r|sin(90 - theta) 

因爲我們有一個直角三角形。

+0

它沒有意義,你的答案不依賴於平面的方向,**披'** – 2012-02-22 07:50:09

1

你的做法是「正確的」,但它是一個有點太普通了這個問題。在你遇到的問題中,你正在處理一種特定的平面:一個穿過z軸的平面。

鑑於這個事實,我們可以嘗試一個捷徑。假設我們圍繞z軸旋轉座標系以獲得另一個系統(X,Y,z),以便您之前給出的平面現在是X-z平面。

在這個新系統的點的座標爲(R,θ,Φ - 披')。因此,在X-Z平面上的投影是 r * sin(theta)* sin(phi-phi')。 這是最後的答案,因爲在我們的平面上投影點的長度在兩個座標系中都是相同的。

如果我們處理的是一個普通的平面,你的做法會更好。

+0

這將是有趣的,看看,如果你能通用的表達減少這種小一個是以某種方式插入平面穿過z軸的事實。 – 2012-02-22 07:18:11

0

只是另一種獲得@Parakram Majumdar答案的方法。

A面可以由單位矢量垂直於平面Ñ並且由平面離原點的距離來參數化的,b(見http://mathworld.wolfram.com/Point-PlaneDistance.html)。由於你的平面經過原點,我們有:b = 0,單位矢量與平面垂直,單位矢量爲phi方向,即phi = [ - sin(phi'),cos(phi '),0]。距離[R形成平面只是點積,ñ* R

n*r = [-sin(phi'), cos(phi'), 0] * [r*sin(theta)*cos(phi), r*sin(theta)*sin(phi), r cos(theta)] = r*sin(theta)*sin(phi-phi') 
0

難道不是R *棕褐色(PHI)?

落入xz平面(假設y軸是極軸),角度phi是「新平面」和當前phi位置之間的角度。

在下圖中,phi實際上等於(新phi - 當前phi)。

enter image description here