yaw pitch row欧拉角理解

本文详细解释了飞行中飞机在三维空间中的关键旋转动作——偏航(yaw)、倾斜度/俯仰(pitch)和翻滚(roll),通过字母记忆法帮助理解其在XYZ轴上的中心转动原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

飞行中的飞机可以在三维空间中自由旋转

 ---------------------------------------------------------------------------------------------

yaw 英文翻译为偏航 即左右转动 三维坐标中以Y轴为中心转动(记忆方法看字母y 有个分叉即左右摆动)

这里写图片描述

---------------------------------------------------------------------------------------------

pitch 英文翻译为倾斜度/俯仰 即上下转动 三维坐标中以X轴为中心转动(记忆方法看字母c 上下摆动即俯仰)

这里写图片描述

 ---------------------------------------------------------------------------------------------

roll 英文翻译为翻滚  即机身旋转 三维坐标中以Z轴为中心转动(记忆方法看字母o 绕圈即翻滚)

这里写图片描述

 ---------------------------------------------------------------------------------------------

简单yaw pitch roll分别以x y z轴为中心翻转

### 实现欧拉角到旋转矩阵转换 为了实现从欧拉角到旋转矩阵的转换,在 C++ 中可以按照如下方式构建函数: ```cpp #include <cmath> struct Vector3 { double x, y, z; }; // 定义一个 3x3 的旋转矩阵结构体 struct Matrix3x3 { double m[3][3]; void setIdentity() { for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { m[i][j] = (i == j); } } } static Matrix3x3 fromEulerAngles(const Vector3& eulerAngles) { const double roll = eulerAngles.x * M_PI / 180.0; const double pitch = eulerAngles.y * M_PI / 180.0; const double yaw = eulerAngles.z * M_PI / 180.0; // 计算各个轴上的旋转变换矩阵 // 绕 X 轴旋转矩阵 R_x(roll) Matrix3x3 Rx; Rx.setIdentity(); Rx.m[1][1] = cos(roll); Rx.m[1][2] = -sin(roll); Rx.m[2][1] = sin(roll); Rx.m[2][2] = cos(roll); // 绕 Y 轴旋转矩阵 R_y(pitch) Matrix3x3 Ry; Ry.setIdentity(); Ry.m[0][0] = cos(pitch); Ry.m[0][2] = sin(pitch); Ry.m[2][0] = -sin(pitch); Ry.m[2][2] = cos(pitch); // 绕 Z 轴旋转矩阵 R_z(yaw) Matrix3x3 Rz; Rz.setIdentity(); Rz.m[0][0] = cos(yaw); Rz.m[0][1] = -sin(yaw); Rz.m[1][0] = sin(yaw); Rz.m[1][1] = cos(yaw); // 将三个基本旋转组合成最终变换矩阵 return multiply(multiply(Rz, Ry), Rx); } private: static Matrix3x3 multiply(const Matrix3x3 &A, const Matrix3x3 &B) { Matrix3x3 result; for(int row=0;row<3;++row){ for(int col=0;col<3;++col){ result.m[row][col]= A.m[row][0]*B.m[0][col]+A.m[row][1]*B.m[1][col]+A.m[row][2]*B.m[2][col]; } } return result; } }; ``` 上述代码定义了一个 `Matrix3x3` 结构用于表示三维空间中的旋转矩阵,并实现了通过给定的欧拉角度创建对应的旋转矩阵的功能。这里假设输入的角度是以度数形式给出并将其转换为弧度来执行三角运算[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值