math - 是否可以根据位置随时间的变化计算欧拉/方向角?
问题描述
如果我在时间 t 和时间 t+1 有两个 3D (XYZ) 位置,是否可以计算第二个位置 (t+1) 相对于 t 的欧拉/方向角?
我可以很容易地获得偏航/Z。y 在 x 或 atan2(dx, dy) 上的变化。Pitch/YI 认为 Z 随距离的变化而变化。不,我不知道roll/X。
为了做到这一点,还需要什么其他信息?更多积分?开始方向?
我正在尝试生成/模拟位置、速度和方向数据,其中我所拥有的只是一系列点/航点,以及航点之间的时间。与此 matlab 工具箱类似的 API,用户可以在其中输入航点和航点之间的时间,并生成航点之间的速度和方向。 https://www.mathworks.com/help/nav/ref/waypointtrajectory-system-object.html
解决方案
您始终可以利用叉积从轨迹上的 2 个结果点构造3 个基向量和原点确定坐标系。
但是,由于您没有定义锚点,因此此类系统将倾向于沿轨迹轴旋转。为了解决这个问题,通常使用向上向量或您获得的任何固定方向作为叉积的开始。但是,如果您的轨迹与它过于平行,旋转/扭曲奇点仍然会出现。
要从中获得欧拉角,您可以使用Is there a way to calculate 3D rotation on X and Y axis from a 4x4 matrix。
推荐阅读
- leaflet - 除了不透明度之外,如何更改 Leaflet 的 imageOverlay 中的样式?
- java - G1GC 选项 -XX:ParallelGCThreads 与 -XX:ConcGCThreads 有什么区别
- swift - 如何从谷歌地点选择器标记获取所选位置的地址
- sql-server - Spectre/Meltdown 减慢了 delphi 服务的速度
- mysql - 会计系统:如何实现账户关闭,管理多个用户创建的数十亿笔交易?
- java - 计算矩阵中非直接连接节点之间的距离
- azure-cognitive-search - 可以在本地文件夹上使用 Azure-Search 吗?在远程网站上?
- r - R - 将类似对象(超过 3 个值)的矩阵转换为 RGB 系统
- ruby-on-rails - 来自不同型号的链和订单
- javascript - CSS Scale 和 Transform 导致重叠