2012-11-30 70 views
0

知道三維三角形的頂點的段的點,而x,在屬於三角形點E的水平面投影的y座標。還給出角度α,表示相對於位於三角形的同一平面上的線段的邊緣AB的角度。我想找出三件事情:退出角和位於上三角形在3D

  • 對於給定的α,在哪一側是F
  • 是什麼(考慮總是以下頂點通過與段EF「退出」側產生的角度順時針方式)
  • EF
  • 段BF的長度,如果BC是出口側(順時針再次)

這是雖然...的長度,我想看看它是如何會執行。 謝謝。

grid http://www.keplero.com/upps/mesh.jpg

回答

1
  1. 查找點E.畫出垂直於水平面的直線,通過E公司的投影。點E是該線與三角形所在平面的交點。 (如果三角形的平面垂直於水平面,你沒有足夠的信息來找到E.)
  2. 於點A執行變換,B,C,E,使他們趴在水平面上。只使用旋轉和平移,以保持角度和距離。通過這一步,問題只能在兩個維度解決,這就簡化了一些事情。
  3. 畫出射線給E延伸出的,具有α角相對於AB。
  4. 對於每個AB,BC,CA的,確定基於E延伸的射線相交是否它。點F是光線與其相交線段的交點。 (如果光線通過三角,而不是一個邊緣的一個頂點,那麼你可能無法獲得有意義的回答你的問題涉及到「退出」的一面。)
  5. 使用F的位置,確定每個問題的答案你的子彈點。
  6. 可選,執行步驟2中完成轉變的相反,得到F的真實位置
+0

我還在考慮把一切在2D,但它需要大量的三角之前通過它去我想知道如果我可以直接做到這一點,而不需要改變座標系。我想避免任何不必要的步驟,因爲性能原因 –

+0

我更喜歡把東西放在2D中,因爲我期望算法的實現將使用有限精度的變量。如果你用3d做這個問題,描述線段和光線的方程有誤差,那麼你需要一個「模糊邏輯」算法來找到交點。有些東西可以說,「Ray E沒有任何交點,但它在BC段0.00001單位內,所以這足夠接近」。如果你在2D中做到這一點,你可以找到非模糊算法的交點,所以我相信它整體上更簡單。 – Kevin