光線和球體的交點

先看一張圖:

三維空間中光線的起點是P0,d是光線的單位向量。 球體的中心點爲c,半徑爲r。 求交點的關鍵是求出a的長度和f的長度,然後光線長度t處就是交點,t=a-f,求光線和球體交點的步驟如下:

1. 連接P0和c,構成一條向量e

2. 求出e向量在d向量上的投影長度a,a=e點乘d,投影的終點爲m

3. 連接球體的中心點c到投影終點m,構成一條向量b,因爲m是投影的終點,所以向量b垂直於向量d

4.  用畢達哥拉斯定理求出b向量的長度

5. 現在知道了r和b,那麼就可以用畢達哥拉斯定理求f的長度

6. 然後t=a-f, 將t帶入光線的方程式,就能求出交點了。只是這裏要注意在求f的過程中要做開方根計算,如果開方根內部的值爲負數,就說明沒有交點;如果開方根內部的值爲0,就說明只有一個交點;如果開方根內部的值大於0,就說明有兩個交點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章