3维旋转--三维旋转矩阵

本文详细解释了二维旋转矩阵的原理,并扩展到三维空间,介绍了绕z、y、x轴旋转时的矩阵变换,强调了正交性和逆矩阵的关系。

三维旋转矩阵

二维旋转

在这里插入图片描述
先考虑二维的旋转,根据三角函数的关系,可以得到:
{x′=∣OP∣⋅cos⁡(α+β)=∣OP∣⋅(cos⁡α⋅cos⁡β−sin⁡α⋅sin⁡β)=x⋅cos⁡β−y⋅sin⁡βy′=∣OP∣⋅sin⁡(α+β)=∣OP∣⋅(cos⁡α⋅sin⁡β+sin⁡α⋅cos⁡β)=x⋅sin⁡β+y⋅cos⁡β\begin{cases}x'=\begin{vmatrix}OP\end{vmatrix}\cdot\cos(\alpha+\beta)=\begin{vmatrix}OP\end{vmatrix}\cdot(\cos\alpha\cdot\cos\beta-\sin\alpha\cdot\sin\beta)=x\cdot\cos\beta-y\cdot\sin\beta\\y'=\begin{vmatrix}OP\end{vmatrix}\cdot\sin(\alpha+\beta)=\begin{vmatrix}OP\end{vmatrix}\cdot(\cos\alpha\cdot\sin\beta+\sin\alpha\cdot\cos\beta)=x\cdot\sin\beta+y\cdot\cos\beta\end{cases}{x=OPcos(α+β)=OP(cosαcosβsinαsinβ)=xcosβysinβy=OPsin(α+β)=OP(cosαsinβ+sinαcosβ)=xsinβ+ycosβ
用矩阵形式表示:
[x′y′]=[cos⁡β−sin⁡βsin⁡βcos⁡β].[xy]\begin{bmatrix}x^{'}\\y^{'}\end{bmatrix}=\begin{bmatrix}\cos\beta&-\sin\beta\\\sin\beta&\cos\beta\end{bmatrix}.\begin{bmatrix}x\\y\end{bmatrix}[xy]=[cosβsinβsinβcosβ].[xy]
旋转矩阵即为:
[cos⁡β−sin⁡βsin⁡βcos⁡β]\begin{bmatrix}\cos\beta&-\sin\beta\\\sin\beta&\cos\beta\end{bmatrix}[cosβsinβsinβcosβ]

三维旋转

借助二维旋转矩阵,可以推广到三维的情况中,这里我们考虑X,Y,ZX,Y,ZX,Y,Z的情况(暂时只考虑了正方向的转动,逆方向是正向旋转矩阵的逆矩阵,由于旋转矩阵是正交阵,所以逆矩阵是转置矩阵)

1. 绕zzz

在这里插入图片描述
zzz轴比较简单,直接增加一个zzz轴,坐标zzz不变即可:
{x′=x⋅cos⁡β−y⋅sin⁡βy′=x⋅sin⁡β+y⋅cos⁡βz′=z[x′y′z′]=[cos⁡β−sin⁡β0sin⁡βcos⁡β0001]⋅[xyz]\begin{gathered} \begin{cases}x^{'}=x\cdot\cos\beta-y\cdot\sin\beta\\y^{'}=x\cdot\sin\beta+y\cdot\cos\beta\\z^{'}=z\end{cases} \\ \begin{bmatrix}x^{'}\\y^{'}\\z^{'}\end{bmatrix}=\begin{bmatrix}{\cos\beta}&-\sin\beta&0\\\sin\beta&\cos\beta&0\\0&0&1\end{bmatrix}\cdot\begin{bmatrix}x\\y\\z\end{bmatrix} \end{gathered}x=xcosβysinβy=xsinβ+ycosβz=zxyz=cosβsinβ0sinβcosβ0001xyz

2. 绕yyy

在这里插入图片描述
同绕zzz轴类似,让yyy不变即可;
{x′=x⋅cos⁡β+z⋅sin⁡βy′=yz′=−x⋅sin⁡β+z⋅cos⁡β[x′y′z′]=[cos⁡β0sin⁡β010−sin⁡β0cos⁡β]⋅[xyz]\begin{gathered} \begin{cases}x^{'}=x\cdot\cos\beta+z\cdot\sin\beta\\y^{'}=y\\z^{'}=-x\cdot\sin\beta+ z\cdot\cos\beta\end{cases} \\ \begin{bmatrix}x^{'}\\y^{'}\\z^{'}\end{bmatrix}=\begin{bmatrix}{\cos\beta}&0&\sin\beta\\0&1&0\\-\sin\beta&0&\cos\beta\end{bmatrix}\cdot\begin{bmatrix}x\\y\\z\end{bmatrix} \end{gathered}x=xcosβ+zsinβy=yz=xsinβ+zcosβxyz=cosβ0sinβ010sinβ0cosβxyz

3. 绕xxx

在这里插入图片描述
{y′=y⋅cos⁡β−z⋅sin⁡βz′=y⋅sin⁡β+z⋅cos⁡βx′=x[y′z′x′]=[cos⁡β−sin⁡β0sin⁡βcos⁡β0001]⋅[yzx]⇒[x′y′z′]=[1000cos⁡β−sin⁡β0sin⁡βcos⁡β]⋅[xyz]\begin{aligned} &\begin{cases}y^{'}=y\cdot\cos\beta-z\cdot\sin\beta\\z^{'}=y\cdot\sin\beta+z\cdot\cos\beta\\x^{'}=x\end{cases} \\ &\begin{bmatrix}y^{'}\\z^{'}\\x^{'}\end{bmatrix}=\begin{bmatrix}\cos\beta&-\sin\beta&0\\\sin\beta&\cos\beta&0\\0&0&1\end{bmatrix}\cdot\begin{bmatrix}y\\z\\x\end{bmatrix}\Rightarrow\begin{bmatrix}x^{'}\\y^{'}\\z^{'}\end{bmatrix}=\begin{bmatrix}1&0&0\\0&\cos\beta&-\sin\beta\\0&\sin\beta&\cos\beta\end{bmatrix}\cdot\begin{bmatrix}x\\y\\z\end{bmatrix} \end{aligned}y=ycosβzsinβz=ysinβ+zcosβx=xyzx=cosβsinβ0sinβcosβ0001yzxxyz=1000cosβsinβ0sinβcosβxyz

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值