5.5、复合变换手册

本节会讲解一些常见的复合变换序列。

5.5.1 倾斜

倾斜(skew) 是一个复合变换,这个变换产生了不再相互垂直的坐标轴。立方体会变成带有梯形面的盒子。

  1. 围着一个轴旋转。
  2. 施加不均匀的缩放,比如缩放X轴但不缩放Y轴或者z轴。
  3. 沿着在第一步中使用的轴做反向旋转。

想要在例子OpenGLES_Ch5_4中看到倾斜效果,首先围着Y轴旋转45°,然后沿着X轴尽量放大,最后围着Y轴回转。测试并试着对齐白色变换轴和半透明的参考轴。

5.5.2 围着一个点旋转

旋转和缩放常常围绕当前坐标系的原点发生。想象一下,太阳就是我们太阳系的假想坐标系的原点。地球围绕着太阳旋转,但也沿一条自己的轴旋转。围绕一个点而不是原点旋转的解决方案很简单。

  1. 平移到所需的旋转中心;
  2. 施加所需的旋转。
  3. 使用与第1步相反的平移值平移回来。

5.4.4节中关于textureMatrix模式的例子需要围着纹理的中心而不是它的左下角旋转纹理坐标系。试着注释掉例子OpenGLES_Ch5_5中的包含平移的代码行。重建并重新运行例子以观察结果。

为了围绕例子OpenGLES_Ch5_4 中的圆环形状的中心旋转,设置第一个滑动条沿着Z轴平移并把滑动条一直移动到最左边。使用第二个滑动条来围着Y轴旋转。设置第3个滑动条沿着Z轴平移并把滑动条一直移动到最右边。保持第个和最后-一个滑动条不改变,利用中间的滑动条测试不同的旋转量。

5.5.3 围着一个点缩放

围绕任意一个点缩放与围绕一个点旋转相似。

  1. 平移到所需的缩放中心。
  2. 施加想要的缩放。
  3. 使用与第1步相反的平移值平移回来。

results matching ""

    No results matching ""