![](/img/trans.png)
[英]How to calculate a point of intersection on the surface of a sphere from a point within the sphere facing out along a given vector
[英]How do I rotate a point on the surface of a sphere given 3 degrees of rotation?
如果您有一個給定的旋轉作為四元數 q,那么您可以像這樣旋轉您的點 (Vector3) p:
Vector3 pRotated = q * p;
如果你在歐拉角中有旋轉,那么你總是可以像這樣將它轉換為四元數(其中 x、y 和 z 是圍繞這些軸的旋轉度數):
Quaternion q = Quaternion.Euler(x,y,z);
請注意,Unity 的歐拉角被定義為首先 object 繞 z 軸旋轉,然后繞 x 軸,最后繞 y 軸 - 這些軸都在父變換的空間中,如果有的話(不是對象的局部軸,每次旋轉都會移動)。
所以我假設 z 軸是滾動,x 軸是俯仰,y 軸是偏航。您可能必須切換某些軸上的符號以匹配預期結果 - 例如,正 x 旋轉將使 object 向下傾斜(假設對象的向前概念是在其正 z 方向並且向上是在其正 y 方向)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.