我有一個非常簡單的問題,但這使我困惑如何在C++中做到這一點。水平旋轉一個平面
在這裏,我有一個斜面,法向量是(a,b,c)。現在我想旋轉這個平面水平90和180度。即我想在XY平面上將平面正常旋轉90度和180度。
問題是我不知道矢量落在哪個象限中。它可能在第一或第三......或任何其他。
所以,我的問題是,任何通用公式將旋轉向量旋轉90度和180度。例如,如果更新的矢量是[a1,b1,c](90)和[a2,b2,c](180),那麼a1,b1和a2,b2是什麼?
我有一個非常簡單的問題,但這使我困惑如何在C++中做到這一點。水平旋轉一個平面
在這裏,我有一個斜面,法向量是(a,b,c)。現在我想旋轉這個平面水平90和180度。即我想在XY平面上將平面正常旋轉90度和180度。
問題是我不知道矢量落在哪個象限中。它可能在第一或第三......或任何其他。
所以,我的問題是,任何通用公式將旋轉向量旋轉90度和180度。例如,如果更新的矢量是[a1,b1,c](90)和[a2,b2,c](180),那麼a1,b1和a2,b2是什麼?
a1 = -b
b1 = a
a2 = -a
b2 = -b
一點更一般的:旋轉[X,Y,Z]繞Z軸的角度theta變得
[x,y,z]->[cos(theta)*x-sin(theta)*y , sin(theta)*x+cos(theta)*y , z]