OpenGL实例教程07:旋转变换
给定一个角度和一个点,让这个点绕其中一个轴旋转。改变的是X、Y和Z三个分量中的两个,而第三个分量保持不变。这意味着路径将位于三个主要平面之一:
XY(绕Z旋转)
YZ(绕X旋转)
XZ(绕Y旋转)
还有更复杂的旋转转换,允许绕任意向量旋转,但在此阶段我们不需要它们。
一个简单的选择示例
要沿着圆从点(x1,y1)移动到点(x2,y2)。即,要旋转点(x1,y1)角度a2。

假设圆的半径是1。这意味着:

使用三角恒等式来展开x2和y2:

如果x和y是4向量的一部分,那么上面的方程可以写成矩阵形式:

如果为YZ(围绕X轴)和XZ(围绕Y轴)平面创建旋转,那么方程基本上是相同的,但矩阵的排列略有不同。以下左边是围绕Y轴旋转的矩阵,右边是围绕X轴旋转的矩阵:

代码展示:
如果需要旋转,使用uniform变量将矩阵传输到shader里即可,其他代码与与位移变换代码相同。
运行效果:
