EulerAngles[r]
给出对应于旋转矩阵 r 的欧拉角 {α,β,γ}.
EulerAngles[r,{a,b,c}]
给出旋转顺序为 {a,b,c} 的欧拉角 {α,β,γ}.
EulerAngles
EulerAngles[r]
给出对应于旋转矩阵 r 的欧拉角 {α,β,γ}.
EulerAngles[r,{a,b,c}]
给出旋转顺序为 {a,b,c} 的欧拉角 {α,β,γ}.
更多信息
- EulerAngles[r,{a,b,c}] 给出角 {α,β,γ},满足 EulerMatrix[{α,β,γ},{a,b,c}]r.
- EulerAngles[r] 等价于 EulerAngles[r,{3,2,3}],z-y-z 旋转.
- 默认 z-y-z 角 EulerAngles[r,{3,2,3}] 将旋转分解为三个步骤:
- 旋转轴 a、b 和 c 可以是任意整数 1、2 或者 3. 但是,只有十二个组合足够普适可以指定任意三维旋转.
- 第一个轴和最后一个轴重复的旋转:
-
{3,2,3} z-y-z 旋转(默认) 


{3,1,3} z-x-z 旋转 


{2,3,2} y-z-y 旋转 


{2,1,2} y-x-y 旋转 


{1,3,1} x-z-x 旋转 


{1,2,1} x-y-x 旋转 


- 所有三个轴不同的旋转:
-
{1,2,3} x-y-z 旋转 


{1,3,2} x-z-y 旋转 


{2,1,3} y-x-z 旋转 


{2,3,1} y-z-x 旋转 


{3,1,2} z-x-y 旋转 


{3,2,1} z-y-x 旋转 


- 重复其余的轴的旋转可能不可逆,因为这些不能表示在三维空间中的所有旋转.
范例
打开所有单元 关闭所有单元基本范例 (2)
应用 (6)
旋转表示 (4)
a = {Pi / 2, Pi / 3, Pi / 4};m = EulerMatrix[a, {3, 2, 1}];EulerAngles[m, {1, 2, 1}]m = RollPitchYawMatrix[{Pi / 2, Pi / 3, Pi / 4}];EulerAngles[m]在由 t{1,1,1} + s{1,–2,1} 给定的平面中获得三维旋转的欧拉角:
m = RotationMatrix[Pi / 3, {{1, 1, 1}, {1, -2, 1}}];EulerAngles[m]m1 = EulerMatrix[{Pi / 2, Pi / 2, Pi / 4}];
m2 = EulerMatrix[{Pi / 3, Pi / 4, 3Pi / 2}];
m3 = m1.m2;a = EulerAngles[m3]arrow = Arrow[{{0, 0, 0}, {0, 1, 0}}];Table[Graphics3D[{arrow, Red, GeometricTransformation[arrow, m]}, BoxStyle -> LightGray], {m, {m3, EulerMatrix[a]}}]坐标系 (2)
{x1, y1, z1} = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
{x2, y2, z2} = RotationTransform[π / 3, {1, 0, 0}][{x1, y1, z1}];给定
,其中旋转
轴由
给出,即可发现
,因为
是正交矩阵,而它的逆是它的转置:
R = {x2, y2, z2}.{x1, y1, z1};{x2, y2, z2} == R.{x1, y1, z1}//SimplifyEulerAngles[R]billboard[s_, p_] := Inset[Framed[s, Background -> LightGray], p];s1 = {{Arrow[{{0, 0, 0}, x1}], billboard["X", x1]},
{Arrow[{{0, 0, 0}, y1}], billboard["Y", y1]}, {Arrow[{{0, 0, 0}, z1}], billboard["Z", z1]}};s2 = {{Red, Arrow[{{0, 0, 0}, x2}], billboard["X", x2]},
{Green, Arrow[{{0, 0, 0}, y2}], billboard["Y", y2]}, {Blue, Arrow[{{0, 0, 0}, z2}], billboard["Z", z2]}};Show[Graphics3D[#, ViewPoint -> {2, 1, 1}]& /@ {s1, s2}]右手系、z 轴向上的坐标系是数学中笛卡尔坐标的标准. 但是,在计算机图形应用中,可能采用不同的系统,比如右手系、y 轴向上的系统. 使用前面的例子,求将 z 轴向上的坐标系变换为 y 轴向上坐标系:
{x1, y1, z1} = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
{x2, y2, z2} = {{0, 1, 0}, {0, 0, 1}, {1, 0, 0}};R = {x1, y1, z1}.{x2, y2, z2};ea = EulerAngles[R]使用这些角变换 y 轴向上坐标系,并且可视化(z 轴向上系统、y 轴向上系统和变换过的 y 轴向上系统):
billboard[s_, p_] := Inset[Framed[s, Background -> LightGray], p];s1 = {{Arrow[{{0, 0, 0}, x1}], billboard["X", x1]},
{Arrow[{{0, 0, 0}, y1}], billboard["Y", y1]}, {Arrow[{{0, 0, 0}, z1}], billboard["Z", z1]}};s2 = {{Red, Arrow[{{0, 0, 0}, x2}], billboard["X", x2]},
{Green, Arrow[{{0, 0, 0}, y2}], billboard["Y", y2]}, {Blue, Arrow[{{0, 0, 0}, z2}], billboard["Z", z2]}};s3 = GeometricTransformation[s2, EulerMatrix[ea]];Row[Graphics3D[#, ViewPoint -> {2, 1, 1}, ImageSize -> Tiny]& /@ {s1, s2, s3}]属性和关系 (1)
EulerAngles 返回角度,其中 EulerMatrix 给出相同旋转矩阵:
m1 = EulerMatrix[{π / 3, π / 2, π / 4}];
m2 = EulerMatrix[EulerAngles[m1]];m1 == m2a1 = {π / 2, π, π / 3};
m1 = EulerMatrix[a1];a2 = EulerAngles[m1]EulerMatrix[a1] == EulerMatrix[a2]可能存在的问题 (1)
EulerAngles 允许相等的相邻轴,并且这能产生一个旋转矩阵:
m = EulerMatrix[{Pi, Pi / 2, Pi / 8}, {1, 1, 2}]{OrthogonalMatrixQ[m], Det[m]}//Simplify但是,EulerAngles 要求相邻轴是不同的:
EulerAngles[m, {1, 1, 2}]m1 = EulerMatrix[{Pi / 3, 0, 0}, {3, 2, 1}]m2 = EulerMatrix[{α, β, γ}, {1, 1, 2}]FindInstance[And@@Thread[m1 == m2], {α, β, γ}]相关指南
-
▪
- 几何变换
文本
Wolfram Research (2015),EulerAngles,Wolfram 语言函数,https://reference.wolfram.com/language/ref/EulerAngles.html.
CMS
Wolfram 语言. 2015. "EulerAngles." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/EulerAngles.html.
APA
Wolfram 语言. (2015). EulerAngles. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/EulerAngles.html 年
BibTeX
@misc{reference.wolfram_2026_eulerangles, author="Wolfram Research", title="{EulerAngles}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/EulerAngles.html}", note=[Accessed: 08-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_eulerangles, organization={Wolfram Research}, title={EulerAngles}, year={2015}, url={https://reference.wolfram.com/language/ref/EulerAngles.html}, note=[Accessed: 08-September-2026]}