Ogl Step8 缩放Scaling Transformation

Get The Source

背景

缩放变换很简单,就是改变物体的大小。如果你想使用同一个模型构造大小不一样的物体以适应不同的分辨率。你可以同时缩放3个坐标轴,也可以只缩放其中的一个或者两个来让物体变得更瘦身,更精简。

你想要缩放哪一维,只需对应的改变矩阵对角线上的值就可以了。

代码漫游

1
2
3
4
World.m[0][0]=sinf(Scale); World.m[0][1]=0.0f;        World.m[0][2]=0.0f;        World.m[0][3]=0.0f;
World.m[1][0]=0.0f;        World.m[1][1]=sinf(Scale); World.m[1][2]=0.0f;        World.m[1][3]=0.0f;
World.m[2][0]=0.0f;        World.m[2][1]=0.0f;        World.m[2][2]=sinf(Scale); World.m[2][3]=0.0f;
World.m[3][0]=0.0f;        World.m[3][1]=0.0f;        World.m[3][2]=0.0f;        World.m[3][3]=1.0f;

与上一节不同的只是这个矩阵。三角形会随着正弦值(0,1]由小变大,为0时缩放到最小三角形消失。在[-1, 0)时只是反过来而已。

Comments