1.1、3D点和向量的齐次坐标表示
根据1中的第三部分变换的组合可知,3D点的仿射变换的齐次坐标方程可表示为
根据1中的2D线性变换中的缩放变换可类推3D的缩放变换的齐次坐标为
根据1中的2D变换中的平移变换可类推3D的平移变换的齐次坐标为
3D旋转变换与2D旋转略有不同,2D旋转只是绕着原点进行逆时针旋转,而3D空间中有三个轴,所以,三维空间中的物体可以分别绕三个轴进行旋转,所以,相应的旋转矩阵就有三个,假定坐标轴如下
因为是绕X轴旋转,所以,x轴的坐标不发生变化,变化的只有y和z的坐标,所以,相应的旋转矩阵可以写成如下形式
根据1中2D变换中旋转矩阵的推导,可知a=cosθ,c=sinθ,b=-sinθ,d=cosθ,所以,最终的旋转矩阵可以写成
绕y轴旋转与绕x和z轴旋转略有不同,当绕y轴旋转时,x轴与z轴的负方向垂直。
所以,符号会发生变化,1中的左上角定点坐标由(0,-1)变为(-sinθ,-cosθ)。右下角定点(1,0)的坐标分别变为(cosθ,-sinθ)
解上面两个方程,得到a=cosθ,b=sinθ,c=-sinθ,d=cosθ。所以就得到下面的旋转矩阵
这样做需要做三个矩阵的乘法,运算量较大,而罗德里格斯旋转矩阵解决了这个问题
空间中任一向量v,沿任一旋转轴k,旋转任一角度θ后得到的向量v'可以表示为
如上图所示,假设旋转轴k是个单位向量,因为向量v可以分解为平行于k的向量投影和垂直于k的向量投影
参考
GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili
欢迎大家评论交流,作者水平有限,如有错误,欢迎指出