# 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]