本文由CSDN点云侠原创,首发于:2021年9月4日。博客长期更新,本文最新更新时间为:2025年4月20日。
目录
一、齐次变换
1.算法原理
见:相关链接
2.软件实现
Apply inverse transformation
:使用逆变换
可通过输入4X4变换矩阵实现齐次欧式变换和仿射变换。
3.结果展示
二、轴角变换
1.算法原理
见:相关链接
2.软件实现
Rotation axis
:旋转轴Rotation angle
:旋转角度,(角度制)Translation
:平移量
3.结果展示
可以看出,默认情况下是按照逆时针旋转的。
三、欧拉变换
1.算法原理
1.1 空间平移变换
假设空间中点
P
P
P的初始坐标为
(
x
,
y
,
z
)
(x,y,z)
(x,y,z),经过平移后的位置坐标为
(
x
′
,
y
′
,
z
′
)
(x',y',z')
(x′,y′,z′),
(
t
x
,
t
y
,
t
z
)
(t_x,t_y,t_z)
(tx,ty,tz)
是点
P
P
P在空间的平移向量,则有
1.2 空间旋转变换
空间旋转变换要按照不同旋转轴线分情况处理,我们以右手坐标系为准,且以正对坐标轴的正方向来看,记逆时针转动时旋转角为正、顺时针转动时为负。下图分别展示了坐标系绕各轴旋转的示意图。
以图(a)为例,坐标系绕
Z
Z
Z 轴旋转
γ
γ
γ 得到新的坐标系
O
X
′
Y
′
Z
′
OX'Y'Z'
OX′Y′Z′ ,点
p
p
p 在初始和转换后的坐标系下的位置分别为
(
x
,
y
,
z
)
(x,y,z)
(x,y,z)、
(
x
′
,
y
′
,
z
′
)
(x',y',z')
(x′,y′,z′)。则有
2.软件实现
Euler angles
:欧拉角Translation
:平移量
3.结果展示
四、缩放
1.算法原理
2.软件实现
Scale
:缩放量以及绕哪个轴缩放。Sample scale for all dimensions
:是否在每个方向上使用统一的缩放系数。
五、相互转换
可以实现齐次变换、欧拉变换、轴角变换之间的相互转换。比如,绕Z轴逆时针旋转90°
直接就在Matrix 4X4中生成用变换矩阵表示绕Z轴旋转90°的形式。
六、相关链接
[1] PCL 点云变换
[2] PCL 欧式变换,实现点云坐标变换
[3] PCL 仿射变换,实现点云平移旋转
[4] Eigen(几何模块)——常用相互转换
[5] Open3D 点云变换
[6] Open3D 四元数、欧拉角、旋转向量转旋转矩阵
[7] python 欧拉角、四元数、旋转矩阵的相互转换