我有一个非常简单的问题,但这让我很困惑如何在c ++中做到这一点。
这里,我有一个正常向量为(a,b,c)的斜面。现在我想将这个平面水平旋转90度和180度。即我想将XY平面中的平面法线旋转90度和180度。
问题是我不知道矢量落在哪个象限。它可能是第一或第三......或任何其他。
所以,我的问题是,将旋转矢量旋转90度和180度的任何通用公式。
例如,如果更新的矢量是[a1,b1,c](90)和[a2,b2,c](180),那么a1,b1和a2,b2是什么?
答案 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]