水平旋转平面

时间:2013-09-28 12:09:42

标签: c++ rotation

我有一个非常简单的问题,但这让我很困惑如何在c ++中做到这一点。

这里,我有一个正常向量为(a,b,c)的斜面。现在我想将这个平面水平旋转90度和180度。即我想将XY平面中的平面法线旋转90度和180度。

问题是我不知道矢量落在哪个象限。它可能是第一或第三......或任何其他。

所以,我的问题是,将旋转矢量旋转90度和180度的任何通用公式。

例如,如果更新的矢量是[a1,b1,c](90)和[a2,b2,c](180),那么a1,b1和a2,b2是什么?

2 个答案:

答案 0 :(得分:3)

a1 = -b
b1 =  a

a2 = -a
b2 = -b

答案 1 :(得分:1)

更一般:旋转[x,y,z]围绕Z轴的角度θ变为

[x,y,z]->[cos(theta)*x-sin(theta)*y , sin(theta)*x+cos(theta)*y , z]