Eigen::Isometry3d入门
欧式变换也称为等距变换(Isometry Transform),可以看作是维持任意两点距离不变的仿射变换。
( R o t a t e t r a n s l a t i o n 0 T 1 ) \left( \begin{matrix} Rotate &translation \\ 0^T & 1 \\ \end{matrix} \right) (Rotate0Ttranslation1)
0.初始化
共两种方法,第一种使用较为频繁。
//设置旋转向量V
Eigen::AngleAxisd V(3.1415926 / 4, Eigen::Vector3d(1, 0, 1).normalized());
//设置平移向量
Eigen::Vector3d translation(1, 3, 4);
//将T初始化为单位阵,再做其他操作。
//虽然称为3D,实质上为4*4矩阵。
Eigen::Isometry3d T= Isometry3d::Identity();
1.两种求欧式变换矩阵
//设置欧式变换矩阵——方式1
//此种方式和下一种方式输出相同。
//a.translate(b)等价于aXb,描述的是在世界坐标系下的平移(虽然b在设置时为只含有3个元素列向量,猜想内部可能会有操作时其为下面这种形式)。
//形式为 0 0 0 1
// 0 0 0 3
// 0 0 0 4
// 0 0 0 0
//此操作相当于将translation中的数值放入欧式变换矩阵translation位置(注意!!!此种效果的前提T为单位矩阵)
//结果为 1 0 0 1
// 0 1 0 3
// 0 0 1 4
// 0 0 0 1
T.translate(translation);
//a.rotate(b)等价于aXb,描述的是在世界坐标系下的旋转。
T.rotate(V);
//结果为 0.853553 -0.5 0.146447 1
// 0.5 0.707 -0.5 3
// 0.146447 0.5 0.853553 4
// 0 0 0 1
//matrix()返回变换对应的矩阵,T输出时用此函数。
std::cout << T.matrix() << std::endl;
/*----------------------------------------------------------------------
------------------------------------------------------------------------*/
//设置欧式变换矩阵——方式2
//凡是前面带pre的函数,相当于右乘。
//a.rotate(b)等价于aXb,描述的是在世界坐标系下的旋转。
//结果为 0.853553 -0.5 0.146447 0
// 0.5 0.707 -0.5 0
// 0.146447 0.5 0.853553 0
// 0 0 0 1
T.rotate(V);
//我们的目的是为了形成文章开头欧式变换的矩阵,
//变换顺序必须是先平移,再旋转,也就是单位矩阵E X 平移矩阵T X 旋转矩阵R。
//按照R右乘T也就是T X R,实际和方式1相同T左乘R(T X R)这样理解就可以,
//但是根据查看源码,只有在mode==Projective时为右乘,否则为T translation,
//然而translation为含有3个元素的列向量,这也印证了之前的猜想,有内部机制使translation转换成下面的形式
//形式为 0 0 0 1
// 0 0 0 3
// 0 0 0 4
// 0 0 0 0
T.pretranslate(translation);
//结果为 0.853553 -0.5 0.146447 1
// 0.5 0.707 -0.5 3
// 0.146447 0.5 0.853553 4
// 0 0 0 1
//matrix()返回变换对应的矩阵,T输出时用此函数。
std::cout << T.matrix() << std::endl;
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgffiih
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01