我在兩個不同的平面上有橢圓光束的圖像。我知道兩個平面之間的距離(d =平面A和平面B之間的距離),並且知道了知道兩個平面上橢圓的中心座標計算出的旋轉角theta(θ)。如何計算投射回光源原點的距離R?我可以找到從平面A到原點的距離(D)。我一直在想這個問題一段時間,不能完全弄明白。我想實現一個算法來計算R中的C#。編程部分很簡單,但數學我不太確定如何去做。計算光束指向角度
計算光束指向角度
回答
如果圖像拍攝用長焦透鏡軸線刺穿束源,使得縮短和離軸效果是微不足道的,情況最好從右側爲您繪製它被觀看。然後你有兩個相同的直角三角形,在光源處有共同的頂點。
|^--..._
rA | rB| ^^__
|_____|______o (Pardon my ascii art skills.)
<--d-->
<--------x-->
你似乎知道或可以很容易找到的rA和rB從束源圖像elipse中心平面的距離,也可爲d平面間的距離。你想知道x。
對於這個剛剛成立的比例
x/rA = (x-d)/rB.
現在你可以很容易地解決對於x。
如果圖像是從相對靠近光源的普通透鏡拍攝的,則需要了解相機的幾何圖形,以便說明透視效果。即使這樣,鏡頭失真也會導致錯誤,除非您知道很多關於相機的信息並進行一些精彩的更正。
謝謝你的回答。我認爲我的問題和解釋並不清楚,但你肯定是在正確的軌道上。根據你的繪製,我實際上想知道rA和rB(或者基本上是在平面A和平面B上投影時產生rA和rB的角度。實際上我知道d和X. – Patratacus
我只知道中心的位置在平面A(XA,YA)和平面B(XB,YB)上的橢圓和距離「d」分開兩個平面,我可以測量距離「x」,我想計算矢量由每個平面上的點和矢量創建,如果光束在我的繪圖中直接從平面中投射出來的話 – Patratacus
謝謝@Gene讓我朝着正確的方向前進,沒有你的迴應,我無法想象通過問題和解決辦法很煩人,人們總是認爲數學與編程沒有任何關係,如果不知道數學方法,就不能編碼算法 – Patratacus
- 1. Android - 計算指南針角度度
- 2. 光束方向算法
- 3. 從速度計算角方向
- 4. 角度雙向約束
- 5. 計算角度 - android
- 6. 角度計算cordanates
- 7. Android加速度計角度計算
- 8. 計算給定兩個向量的橢圓弧開始和結束角度
- 9. SVG - 計算三角形內的角度方向
- 10. 計算元素的寬度 - 角度指令
- 11. 計算角加速度c#
- 12. 查看計算角度360
- 13. 計算2點的角度
- 14. 計算旋轉角度
- 15. 角度綁定計算
- 16. 角度計算的Delaunay圖
- 17. 如何計算角度
- 18. 精確角度計算
- 19. 計算移動的角度
- 20. 計算角度/曲率?
- 21. 旋轉角度計算AS3
- 22. 計算餅圖切片的開始和結束角度
- 23. 用Javascript計算三角形的角度?
- 24. 在WP7中計算量角器角度
- 25. 指向控制器的角度指令
- 26. 計算機視覺 - 找出相機在移動時指向什麼角度?
- 27. 指數計算速度
- 28. 從高度和角度計算斜邊
- 29. 根據強度計算光量半徑
- 30. 使用光流計算實際速度
我不明白你問的問題 – argentage
我想我想通了。它只是使用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