opengl - 在给定初始和目标位置以及初始滚动、俯仰和偏航角的情况下计算目标滚动、俯仰和偏航角
问题描述
我有一个在模拟世界中移动的模型。操作框架是右手的,X - 前进,Y - 左和 Z - 上。
我知道当前位置P1 (x1, y1, z1)
和当前 RPY 角度(R1, P1, Y1)
。我有一个目标位置,P2 (x2, y2, z2)
。我想将我的模型从 移动P1
到P2
. 我一直在计算目标 RPY 角度。我希望我的模型首先朝从 P1 到 P2 的方向转身,然后朝那个方向移动以达到目标。
(R2, P2, Y2)
给定上述信息,我如何计算目标 RPY 角度?
解决方案
计算方向向量
D = P2 - P1 = (x2 - x1, y2 - y1, z2 - z1)
沥青
P2 = asin(Dz / |D|)
偏航
Y2 = atan2(Dy, Dx)
(NB 可以P2 = atan2(Dz, sqrt(Dx^2 + Dy^2))
改为在球形极点附近使用以提高鲁棒性)
推荐阅读
- python - 计算张量流梯度
- reactjs - 类型“IntrinsicAttributes”上不存在属性“样式”
- php - 如何使用登录页面中的会话变量显示用户数据?
- php - 在 VSCode 上调试 Laravel 应用程序
- sql-server - 如何获取 Patterson 的 Eaglesoft 数据库的数据库架构
- spyder - 无法使用 anaconda navigator 或 conda propmt 升级或降级 spyder 3.2.8 吗?
- idris - Idris 中的实例解析
- angularjs - 路由演示在更新到 AngularJS 1.6 时停止工作
- hyperledger-fabric - 不同 ORG 的 2 个对等点可以实例化相同的 ChainCode 并提交交易吗?
- linux - 有没有办法在 Ubuntu 上运行映像 Windows Docker?