空间变换其参数化

目录

什么是欧式变换与变换矩阵

什么是轴角

什么是欧拉角

什么是四元数

其他空间变换​编辑​编辑​编辑


什么是欧式变换与变换矩阵

两个坐标系之间的运动是由一个旋转和一个平移所组成,我们称这种运动为刚体运动。由于刚体运动保持了向量的长度和夹角,相当于我们把一个刚体原封不动地进行移动或旋转,不改变它自身的形状,因此它是一种欧式变换。假设单位正交基(e_1,e_2,e_3)经过了一次旋转变成(e_1^′,e_2^′,e_3^′),那么对于向量a而言,它在两个坐标系下的坐标分别为(a_1,a_2,a_3)^T和(a_1^′,a_2^′,a_3^′)^T。由于a本身没有改变,因此:

如果将上式3×3的矩阵写作R,则有a=Ra^′,它描述了同一个向量坐标的变换关系,也就是旋转变换,因此称R为旋转矩阵(Rotation Matrix)。

如果考虑平移,则a=Ra^′可以更新表示为a=Ra^′+t。因此两个坐标系直接的刚体运动可以由R和t进行描述。但是由于该变换不是一个线性变换,因此引入齐次坐标,对变换进行改写:

将原始的三维向量末尾增加1个维度,取值为1,该四维向量被称为齐次坐标(Homogeneous Coordinates),而矩阵[■8(R&t@0^T&1)]写作T,被称为变换矩阵(Transform Matrix),这种类型的矩阵又被称为特殊欧式群:

R为3×3的矩阵,t为3×1的列向量,0^T为1×3的行向量。同时T的逆表示进行反向的变换:

什么是轴角

旋转矩阵有9个量,但是一次旋转只有3个自由度并且旋转矩阵自身存在正交约束和行列式值约束从而导致旋转矩阵表示旋转存在冗余变量,Rodrigues最早提出使用一个三维向量来表示三维旋转变换,其方向与旋转轴一致,向量的模长等于旋转角度。我们称这种向量为旋转向量。如果是用四个元素进行描述,即三个元素描述旋转,另外一个描述旋转角,则称这种形式的描述为轴角(Axis Angle),轴角共有三个量且无约束,因此具有三个自由度。表示为:

式中n与旋转轴方向一致的单位向量,θ为角度。从轴角变换到旋转矩阵可以使用罗德里格斯公式进行转换

什么是欧拉角

旋转矩阵和轴角并不是最直观的表示形式,而欧拉角(Euler Angle)作为描述刚体在三维欧式空间的取向提供了一种非常直观的表示方式。从物体的最初始状态(一般会选择和世界坐标系重合作为最初状态)绕着自身坐标系的xyz三个轴进行旋转三个角度,来表示物体的朝向。

什么是四元数

任意一个在三维空间中的朝向都可以被表示为一个绕某个特定轴的旋转。给定旋转轴及旋转角度,很容易把其它形式的旋转表示转化为四元数或者从四元数转化为其它形式。四元数是一种扩展的复数,它具有紧凑性和非奇异性,它有3个虚部,1个实部,通常表示形式为:

式中q_0,q_1,q_2,q_3均为实数,i,j,k为四元数的三个虚单位,它们之间有如下关系:

其他空间变换

相关推荐
geobuilding1 天前
将大规模shp白模贴图转3dtiles倾斜摄影,并可单体化拾取建筑
算法·3d·智慧城市·数据可视化·贴图
jghhh011 天前
基于高斯伪谱法的弹道优化方法及轨迹仿真计算
算法
mm-q29152227291 天前
【天野学院5期】 第5期易语言半内存辅助培训班,主讲游戏——手游:仙剑奇侠传4,端游:神魔大陆2
人工智能·算法·游戏
MoRanzhi12031 天前
Python 实现:从数学模型到完整控制台版《2048》游戏
数据结构·python·算法·游戏·数学建模·矩阵·2048
2401_841495641 天前
【数据结构】基于BF算法的树种病毒检测
java·数据结构·c++·python·算法·字符串·模式匹配
蒙奇D索大1 天前
【算法】递归算法实战:汉诺塔问题详解与代码实现
c语言·考研·算法·面试·改行学it
一只鱼^_1 天前
力扣第 474 场周赛
数据结构·算法·leetcode·贪心算法·逻辑回归·深度优先·启发式算法
叫我龙翔1 天前
【数据结构】从零开始认识图论 --- 单源/多源最短路算法
数据结构·算法·图论
深圳佛手1 天前
几种限流算法介绍和使用场景
网络·算法
陌路201 天前
S14排序算法--基数排序
算法·排序算法