多语言展示
当前在线:1691今日阅读:155今日分享:35

先移动后旋转与先旋转后移动的区别

在OpenGL中先移动后旋转与先旋转后移动的最终效果并不一定相同,初学很容易直觉判断这两种变换是一样的。最好的办法就是可以从矩阵变换的角度去考虑这样的问题。假设平移矩阵为T,旋转矩阵为R,要操作的顶点为V,则先平移后旋转为:T*R*V先旋转后平移为:R*T*V由线性代数知识可知矩阵相乘不满足交换律,即T*R与R*T不一定相等。
一、原图

假设对下面一个图形作平移和旋转变换

二、先平移后旋转
1

沿X轴平移一段距离xt后

2

再沿Z轴方向(垂直于纸张方向)逆时针旋转一定固定角度θ后得到最终结果图

三、先旋转后平移
1

沿Z轴旋转固定角度θ后,注:坐标轴也跟随着旋转了相同角度θ

2

再沿X轴平衡一段距离xt后得到最终效果图

四、比较

通过上述两个不同的操作,可以看出产生的最终效果图片并不一样,根据其不满足矩阵的交换律亦可以得到相同结论。

推荐信息