2013-01-10 77 views
-1

我在兩個不同的平面上有橢圓光束的圖像。我知道兩個平面之間的距離(d =平面A和平面B之間的距離),並且知道了知道兩個平面上橢圓的中心座標計算出的旋轉角theta(θ)。如何計算投射回光源原點的距離R?我可以找到從平面A到原點的距離(D)。我一直在想這個問題一段時間,不能完全弄明白。我想實現一個算法來計算R中的C#。編程部分很簡單,但數學我不太確定如何去做。計算光束指向角度

enter image description here

+0

我不明白你問的問題 – argentage

+0

我想我想通了。它只是使用2個向量的點積計算出角度。我畫的插圖真的不清楚。我應該畫2個向量。一個從平面A到平面B(用(Vx,Vy,Vz)座標稱之爲V),另一個只是平面表面矢量的法線(用(Nx,Ny,Nz)座標稱之爲N)。我圖中的R值就是兩個向量之間的角度φ。計算cos(phi)= V dot B /(| V || N |)所以phi就是ArcCos(V dot N)/(| V || N |)。 – Patratacus

回答

1

如果圖像拍攝用長焦透鏡軸線刺穿束源,使得縮短和離軸效果是微不足道的,情況最好從右側爲您繪製它被觀看。然後你有兩個相同的直角三角形,在光源處有共同的頂點。

|^--..._ 
rA | rB| ^^__ 
    |_____|______o (Pardon my ascii art skills.) 
    <--d--> 
    <--------x--> 

你似乎知道或可以很容易找到的rA和rB從束源圖像elipse中心平面的距離,也可爲d平面間的距離。你想知道x。

對於這個剛剛成立的比例

x/rA = (x-d)/rB. 

現在你可以很容易地解決對於x。

如果圖像是從相對靠近光源的普通透鏡拍攝的,則需要了解相機的幾何圖形,以便說明透視效果。即使這樣,鏡頭失真也會導致錯誤,除非您知道很多關於相機的信息並進行一些精彩的更正。

+0

謝謝你的回答。我認爲我的問題和解釋並不清楚,但你肯定是在正確的軌道上。根據你的繪製,我實際上想知道rA和rB(或者基本上是在平面A和平面B上投影時產生rA和rB的角度。實際上我知道d和X. – Patratacus

+0

我只知道中心的位置在平面A(XA,YA)和平面B(XB,YB)上的橢圓和距離「d」分開兩個平面,我可以測量距離「x」,我想計算矢量由每個平面上的點和矢量創建,如果光束在我的繪圖中直接從平面中投射出來的話 – Patratacus

+0

謝謝@Gene讓我朝着正確的方向前進,沒有你的迴應,我無法想象通過問題和解決辦法很煩人,人們總是認爲數學與編程沒有任何關係,如果不知道數學方法,就不能編碼算法 – Patratacus