# eul2rotm
将欧拉角转换为旋转矩阵
函数库: TyMath
# 语法
rotm = eul2rotm(eul)
rotm = eul2rotm(eul,sequence)
# 说明
rotm = eul2rotm(eul) 将一组欧拉角 eul 转换为相应的旋转矩阵 rotm。使用旋转矩阵时,将其与要旋转的坐标预乘(而不是后乘)。欧拉角旋转的默认顺序为 "ZYX"。示例
rotm = eul2rotm(eul,sequence) 将欧拉角转换为旋转矩阵 rotm。欧拉角在轴旋转序列 sequence 中指定。欧拉角旋转的默认顺序为 "ZYX"。示例
# 示例
将欧拉角转换为旋转矩阵
using TyMath
eul = [0,pi/2,0];
rotmZYX = eul2rotm(eul)
rotmZYX = 3×3 Matrix{Float64}:
6.12323e-17 0.0 1.0
0.0 1.0 0.0
-1.0 0.0 6.12323e-17
使用 ZYZ 轴顺序将欧拉角转换为旋转矩阵
将矩阵 x、y 和 z 中对应项定义的三维笛卡尔坐标转换为柱坐标 theta、rho 和 z。
using TyMath
eul = [0,pi/2,pi/2];
rotmZYZ = eul2rotm(eul,"ZYZ")
rotmZYZ = 3×3 Matrix{Float64}:
3.7494e-33 -6.12323e-17 1.0
1.0 6.12323e-17 0.0
-6.12323e-17 1.0 6.12323e-17
# 输入参数
eul — 欧拉旋转角度长度为 3 的向量
以弧度表示的欧拉旋转角,指定为固有欧拉旋转角的长度为 3 的向量。向量代表序列参数定义的序列中的一个欧拉角集。例如,对于默认序列 "ZYX",eul 采用 [zAngle ,yAngle ,xAngle] 的形式。
数据类型: Int | Float
复数支持: 是
示例: [0 ,0 ,1.5708]
sequence — 轴旋转序列"ZYX" (默认) | "ZYZ" | "ZXY" | "ZXZ" | "YXY" | "YZX" | "YXZ" | "YZY" | "XYX" | "XYZ" | "XZX" | "XZY"
欧拉角的轴旋转序列,指定为以下字符串标量之一:
"ZYX" (默认)
"ZYZ"
"ZXY"
"ZXZ"
"YXY"
"YZX"
"YXZ"
"YZY"
"XYX"
"XYZ"
"XZX"
"XZY"
每个字符表示相应的轴。例如,如果序列为 "ZYX",则三个指定的欧拉角按顺序解释为绕 z 轴的旋转、绕 y 轴的旋转和绕 x 轴的旋转。当将此旋转应用于某个点时,它将按 x、y、z 的顺序应用轴旋转。
数据类型: String
# 输出参数
rotm — 旋转矩阵3 × 3 矩阵
旋转矩阵。旋转矩阵的大小为 3×3,且是正交的。使用旋转矩阵时,将其与要旋转的坐标预乘(而不是后乘)。
数据类型: Int | Float
复数支持: 是
示例 : [0 0 1; 0 1 0; -1 0 0]