不同坐标系的矩阵变换

不同坐标系的矩阵变换

不同坐标系的矩阵变换

概要:三维坐标系的变换,实质上则是原点以及正交基向量的变化,在空间中表现为平移和旋转。

如图所示的坐标系变换,可以用一个变换矩阵来表示。

接下来,就当复习一下,我来推导出这个变换矩阵是如何得到的,用到是一些比较基本的线性代数的知识。

首先,我们要理解为什么需要这个矩阵,我们在什么情况下需要这个矩阵。很明显,在已知新坐标系的基向量的情况下,如果我们需要将原坐标系的坐标转化为新坐标系下的坐标,就可以使用这个矩阵。

已知:点P在原坐标系的坐标为(x,y,z),x轴方向的单位向量为在这里插入图片描述,y轴方向的单位向量为在这里插入图片描述,z轴方向的单位向量为在这里插入图片描述

新坐标系的原点在原坐标系的坐标为(x0,y0,z0),

x轴方向的单位向量为 :在这里插入图片描述

y轴方向的单位向量为:在这里插入图片描述

z轴方向的单位向量为:在这里插入图片描述

求:点P在新坐标系下的坐标(x’,y’,z’)。

理解:所谓点的坐标其实就是向量的线性组合,而坐标系之间基向量的转变也是向量的线性组合,这时候很明显要想到矩阵了!

为了得到这个矩阵,我们需要构造一个线性方程组。如下:
在这里插入图片描述

根据这个方程组我们可以比较容易地得到:

在这里插入图片描述

接下来是最后一步,我要求出这个方阵的逆矩阵,这里只需要先左乘一个矩阵使得方阵变为这个形式的矩阵。

在这里插入图片描述

然后,再对A、B分别求逆矩阵即可,而A矩阵是正交矩阵,正交矩阵的逆矩阵等于转置矩阵,这里只需要简单地转置即可,而B矩阵为[1],逆矩阵为[1]。
在这里插入图片描述
最后得到,
在这里插入图片描述
右边的方阵就是我们所需要的变换矩阵!

总结:坐标系的转化,其实就是将衡量标准通过另一组正交基向量来展示,而正交基向量的转化就是对原正交基向量的线性组合。

code:

double u0 = R_inv.element[0][0];
double u1 = R_inv.element[0][1];
double u2 = R_inv.element[0][2];
double v0 = R_inv.element[1][0];
double v1 = R_inv.element[1][1];
double v2 = R_inv.element[1][2];
double n0 = R_inv.element[2][0];
double n1 = R_inv.element[2][1];
double n2 = R_inv.element[2][2];
double t2[3];
t2[0] = -1 * ((t[0] * u0) + (t[1] * u1) + (t[2] * u2));
t2[1] = -1 * ((t[0] * v0) + (t[1] * v1) + (t[2] * v2));
t2[2] = -1 * ((t[0] * n0) + (t[1] * n1) + (t[2] * n2));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值