淄博 建网站,个人网站收款,kingcms 暂未创建网站首页,专业东莞网站制作公司games101的第四节课讲了三维变换和观察变换#xff0c;我们这里先记录一下三维变换的知识#xff0c;后面再讲观察变换
齐次坐标下的三维变换
类似于解决之前二维变换平移的问题#xff0c;三维变换下用齐次坐标通过增加一个维度来表示#xff0c;第四个维度为1表示这是个…games101的第四节课讲了三维变换和观察变换我们这里先记录一下三维变换的知识后面再讲观察变换
齐次坐标下的三维变换
类似于解决之前二维变换平移的问题三维变换下用齐次坐标通过增加一个维度来表示第四个维度为1表示这是个点第四个维度为0表示这是个向量这样就可以通过四维矩阵乘法来表示平移变换了 这样所有的三维变换就可以通过一个矩阵乘法来表示了 和之前二维变换类似的三维下的缩放和平移都可以用类似的矩阵表示 比较复杂的是三维中的旋转二维中的旋转方式是固定的要么是逆时针旋转要么是顺时针旋转
但是在三维中旋转的角度可以是任意方向的如何用一个变换矩阵来表示呢
首先从简单的x、y和z三个轴方向上的旋转来研究 如果是绕着x轴旋转那么就是x坐标不变y和z坐标在发生变化类似于二维的旋转矩阵表示 如果是绕着z轴旋转那么就是z坐标不变x和y坐标在发生变化类似于二维的旋转矩阵表示 但是到了绕着y轴旋转时实际的旋转矩阵是这样的 你可能会发现之前正弦值都是右上角的是负的为什么到了绕y轴旋转时却变成了左下角是负的呢
如何来理解这个事情我们知道x和y叉乘可以得到zy和z叉乘可以得到x但是呢x和z叉乘得到的是-y只有z和x叉乘得到的才是y所以呢到了旋转的时候实际上是整个的角度取反了余弦函数是偶函数所以没变化但是正弦函数是奇函数符号就发生了变化
现在呢我们知道了在三个轴上的旋转如何变换了那么对于任意角度的旋转实际上就可以通过在这三个轴上的旋转合成来实现这一组角就叫做欧拉角好比飞机的俯仰pitch、偏航yaw和翻转roll 现在问题是如何用一个统一的矩阵变换来表示三维空间的旋转实际上对于任意方向的旋转都可以表示为相对于某个方向的旋转轴旋转这里引入罗德里德斯的旋转公式可以根据旋转轴n和对应的旋转角度来完成任意方向的旋转