2017-05-21 26 views
1

這裏有一些扭曲的三角棱鏡的例子。有一個扭曲的三角形棱鏡的兩個三角形的座標,我怎麼知道一個點是否在它內部?

enter image description hereenter image description hereenter image description here

我想知道,如果移動的三角形將達到某一個點。這就是爲什麼我需要解決這個問題。

的想法是,用隨機座標的三角形變成了其他隨機三角形的頂點動彈然後

相關之間:How to determine point/time of intersection for ray hitting a moving triangle?

+0

你想知道這一點是否在扭曲棱鏡的某個水平截面內? – MBo

+0

@MBo,如果水平段你指的是三角形共面的點的體積內,那麼是) –

回答

0

我的一個學生在數學做出這個小動畫。


Schonhart
它顯示了棱鏡扭向Schönhardt多面體。 見 the Wikipedia page其意義。 很容易確定某個特定點是否在多面體內部。

但是,它是否在一個特定的平滑扭曲,如在你的形象,取決於細節(率)的扭曲。

+0

棱鏡不是平滑的,但它的邊。邊不能用兩個三角形表示,因爲它不能正確表示第一個三角形到另一個三角形的變化。感謝維基 –

0

讓我們底部三角形位於平面z = 0,其具有旋轉角0,頂三角形具有旋轉角Fi。扭曲棱鏡的高度爲Hgt。

旋轉角度線性依賴於高度,所以在高度h層具有旋轉角

a(h) = Fi * h/Hgt 

如果點的座標(x,y,z),然後轉移指向z=0和旋轉(x,y)通過-a(z)角座標繞軸線(rx, ry)旋轉

t = -a(z) = - Fi * z/Hgt 
xn = rx + (x-rx) * Cos(t) - (y-ry) * Sin(t) 
yn = ry + (x-rx) * Sin(t) - (y-ry) * Cos(t) 

然後檢查是否(xn, yn)lies inside bottom triangle

+0

不錯,但這種解決方案,如果三角形是相似的,並有相同的正常只會工作。這個想法是,用隨機座標的三角形變成了其他隨機三角爲從0到1 –

+0

因子的功能,但你有沒有在您的初始後指定的隨機性,這就是爲什麼我覺得自由選擇方便的模式。 – MBo

相關問題