首页 > 解决方案 > 如何使用四元数捕捉到直角 90 度

问题描述

我有一些方向四元数'CurrentQ'。

我可以将其保存为参考“RefQ”

如果角度之间的差异很小,我想将更新的 CurrentQ 捕捉到 RefQ 和所有 RefQ 90 度旋转(总共 6 个角度)。

就像是:

if(Math.abs(CurrentQ.x-RefQ.x)<0.05 && ....) CurrentQ=RefQ;

性能很重要。

标签: javascriptquaternionsanglebabylonjs

解决方案


我已经这样做了:

  1. 为所有 6 个捕捉旋转创建单位轴矢量

  2. 带参考四元数 RefQ 的 6 轴矢量

  3. 制作当前方向向量(用 CurrentQ 旋转的单位向量)

  4. 检查当前方向向量与 2) 的 6 个轴向量中的每一个之间的距离

我将在几天内上传代码和应用程​​序


推荐阅读