一般位置下的3D齐次旋转矩阵

下面的矩阵虽然复杂,但它的逆矩阵求起来非常简单,只需要在 sin ⁡ θ \sin\theta sinθ 前面加个负号就是原来矩阵的逆矩阵。

如果编程序是可以直接拿来用的,相比其它获取一般旋转轴不经过原点的三维旋转矩阵的途径或算法,应该能够一定程度降低计算或编程复杂度。如果是引用,这个叫 LC三维旋转矩阵公式(L和C是两作者的姓的首字母联合)。

得到这个结果没有什么取巧之处,纯粹就是堆计算量、靠眼力和数学公式化简的经验。本来以为只是再现了另一种罗德里格斯公式,但实际上并不是。

R ( x 0 , y 0 , z 0 , a , b , c , θ ) = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 2 − cos ⁡ θ ] + ( sin ⁡ θ [ 0 − c b 0 c 0 − a 0 − b a 0 0 0 0 0 0 ] a 2 + b 2 + c 2 \displaystyle R\left(x_0,y_0,z_0,a,b,c,\theta\right)=\left[ \begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 2-\cos \theta \\ \end{array} \right]+\left(\frac{\sin \theta \left[ \begin{array}{rrrr} 0 & -c & b & 0 \\ c & 0 & -a & 0 \\ -b & a & 0 & 0 \\ 0 & 0 & 0 & 0 \\ \end{array} \right]}{\sqrt{a^2+b^2+c^2}} \right. R(x0,y0,z0,a,b,c,θ)= 1000010000100002cosθ + a2+b2+c2 sinθ 0cb0c0a0ba000000

− ( 1 − cos ⁡ θ ) ( [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] − [ a b c 0 ] . [ a b c 0 ] a 2 + b 2 + c 2 ) ) . [ 1 0 0 − x 0 0 1 0 − y 0 0 0 1 − z 0 0 0 0 1 ] \displaystyle {\left.-(1-\cos \theta) \left(\left[ \begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} \right]-\frac{\left[ \begin{array}{c} a \\ b \\ c \\ 0 \\ \end{array} \right].\left[ \begin{array}{cccc} a & b & c & 0 \\ \end{array} \right]}{a^2+b^2+c^2}\right)\right).\left[ \begin{array}{rrrr} 1 & 0 & 0 & -{x_0} \\ 0 & 1 & 0 & -{y_0} \\ 0 & 0 & 1 & -{z_0} \\ 0 & 0 & 0 & 1 \\ \end{array} \right]} (1cosθ) 1000010000100001 a2+b2+c2 abc0 .[abc0] . 100001000010x0y0z01

在这里插入图片描述

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
齐次变换矩阵是一种用于在三维空间中描述物体位置、方向以及尺度变化的数学工具,在图形学、计算机视觉等领域广泛应用。而坐标旋转矩阵则是齐次变换矩阵的一种特定形式,专门用于表示三维空间中某一轴线围绕自身旋转的角度。 ### 齐次变换矩阵 齐次变换矩阵是一个4x4的矩阵,它可以同时包含平移、旋转和缩放信息,并将所有操作统一在一个矩阵乘法中完成。这种矩阵通常包含以下几个部分: 1. **旋转**:矩阵的左上3x3区域表示了绕各个轴(X、Y、Z)的旋转。 2. **平移**:矩阵的右下一行表示了物体沿X、Y、Z轴的移动距离。 3. **缩放**:通常由单独的一个向量给出,分别对应于每个轴的缩放比例。 4. **单位变换**:最后一行保证了变换后的点仍然保持其原相对距离,通常是`[0 0 0 1]`的形式。 ### 坐标旋转矩阵 坐标旋转矩阵是针对某个坐标轴(如X、Y或Z轴)进行旋转的特殊情况下的齐次变换矩阵的一部分。它只涉及一个维度的旋转。例如: - 对于围绕X轴的旋转,旋转矩阵可以表示为: \[ R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\theta) & -\sin(\theta) \\ 0 & \sin(\theta) & \cos(\theta) \end{bmatrix} \] - 类似地,对于围绕Y轴的旋转,旋转矩阵会有所不同: \[ R_y(\theta) = \begin{bmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{bmatrix} \] - 而围绕Z轴的旋转则有: \[ R_z(\theta) = \begin{bmatrix} \cos(\theta) & -\sin(\theta) & 0 \\ \sin(\theta) & \cos(\theta) & 0 \\ 0 & 0 & 1 \end{bmatrix} \] ### 区别总结 - **功能范围**:齐次变换矩阵能够处理更广泛的变换需求,包括但不限于旋转、平移、缩放等;而坐标旋转矩阵仅专注于旋转单一轴线的变化。 - **复杂度**:使用齐次变换矩阵进行计算时需要考虑更多的参数(旋转、平移、缩放),因此可能会比简单的坐标旋转矩阵计算更复杂一些。 - **应用领域**:由于其多功能性,齐次变换矩阵3D图形渲染、动画制作、机器人控制等多个领域的应用更为广泛;而坐标旋转矩阵因其简洁性和针对性,在局部旋转调整方面更具优势。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值