旋转缩放平移模型有几种方式?并简述各种方式实现原理。
两种。一是通过控制相机来达到看起来物体的旋转和缩放,这种方式的效果就像人站在一个位置转身,眼睛所看到的景色也会改变,人朝一个物体方向走近,物体会近大远小。二是通过控制物体自身,来达到旋转、缩放和平移,这种方式是对单个物体操作。
从WebGL的角度看,旋转、缩放、平移对应的都是模型变换矩阵。
旋转:
缩放:
平移:
对于一个三维坐标(x, y, z),我们想让它往x轴正方向移动1个单位,往y轴正方向移动1个单位,往z轴正方向移动1个单位,则可以让它加上一个向量(1, 1, 1);
平移没什么好说的,(x,y,z,1)向x,y,z轴分别移动a,b,c单位长度后变成(x+a, y+b, z+c, 1);
对于旋转,任何一个旋转都可以认为是沿着x,y,z轴分别旋转 α \alpha α, β \beta β, γ \gamma γ 度数,所以选旋转就先讲沿着某个轴向的旋转。这里以逆着坐标轴正向方向看去的顺时针为旋转的正向,就是你的视线朝向和坐标轴正向是相反的;
缩放感觉也没的说,直接上公示,下面公式表示沿着x,y,z轴分别缩放a,b,c倍
1.旋转缩放平移模型有几种方式:
缩放可以沿着不同方向,分别选择缩放倍数。
旋转可以分别绕x,y,z,不同角度进行旋转。
平移可以分别沿着x,y,z,轴进行移动,也可以沿自定义方向移动。
2.实现原理:变换矩阵
(1)缩放(2)旋转(3)平移