quaternions相关内容

点看点

所以我在 3D 空间中有一个点,并且在 3D 空间中有相机的位置和旋转. 所以基本上对象上有Vector3.相机 Vector3 和 Quaternion. 我需要知道如何看待这一点. 我想告诉用户如何移动到那个点.用户应该向左、向右还是向后直接拍摄相机? 解决方案 一种方法是将相机当前面向的方向计算为偏航角(如罗盘航向),并计算它需要的方向脸才能看重点. 从另一个 ..
发布时间:2021-11-25 04:19:25 C#

通过坐标2个物体在两个位置的点来计算四元数

对象在 3D 中旋转.我有旋转中心和 2 点坐标在旋转而不是旋转位置.计算将对象从第一个位置旋转到两个位置的四元数. 解决方案 我们必须在对象的第一个位置矢量化 OA' 和 OB' OA 和 OB 位居第二 Q 向量部分四元数 Q0 标量部分 图 1 评论 OAOB - 点向量积 OAxOB - 交叉向量积 从第一个位置到第二个位置的旋转对象的四元数是: 1 个案例 ..
发布时间:2021-11-25 04:11:22 C#

java 3D旋转四元数

我有这种使用四元数在 3D 中旋转点的方法,但它似乎无法正常工作: public static ArrayList旋转3D(ArrayList点,双角,int xi,int yi,int zi){ArrayListnewPoints = new ArrayList();for (int i=0;i 如果我打这个电话 rotation3D(list, Math.toRadians(90), 0 ..
发布时间:2021-11-25 04:01:06 Java开发

通过坐标2个物体在两个位置的点来计算四元数

对象在 3D 中旋转.我有旋转中心和 2 点坐标在旋转而不是旋转位置.计算将对象从第一个位置旋转到两个位置的四元数. 解决方案 我们必须在对象的第一个位置矢量化 OA' 和 OB' OA 和 OB 位居第二 Q 向量部分四元数 Q0 标量部分 图 1 评论 OAOB - 点向量积 OAxOB - 交叉向量积 从第一个位置到第二个位置的旋转对象的四元数是: 1 个案例 ..
发布时间:2021-11-25 03:58:22 C#

约束俯仰、偏航和卷

我有一个表示为四元数的旋转,并试图限制俯仰、偏航和滚动轴.我试着这样做: 公共结构方向{公共 Vector3 向上,向前;公共方向(Vector3 向上,Vector3 向前){this.up = 向上;this.forward = 转发;}}公共静态方向 [] 方向 = 新方向 [3]{新方向(Vector3.right,Vector3.up),新方向(Vector3.up,Vector3.f ..
发布时间:2021-11-25 03:54:34 C#

我可以从偏航/俯仰/滚动创建的两个四元数中插入旋转吗?

四元数适用于在它们之间插入旋转.到目前为止一切顺利. 如果我有一个网络游戏,将旋转转换为 vector3f 就足够了,还是应该使用四元数?为了让游戏更流畅,我可能需要在上次发送的轮播和当前轮播之间进行插值. 但是我可以在从偏航/俯仰/滚动创建的两个四元数之间插入旋转吗? 四元数 a = Quaternion.FromYawPitchRoll(x1,y1,z1);四元数 b = Qua ..
发布时间:2021-11-25 03:27:56 C#

四元数平滑旋转

四元数不仅可以描述旋转,还可以描述方向,即从初始(零)位置旋转. 我希望模拟从一个方向到另一个方向的平滑旋转.我计算了开始方向 startOrientation 和结束方向 endOrientation 并希望将中间方向描述为 startOrientation*(1-argument) + endOrientation*argument 而argument 从 0 变为 1. monk ..
发布时间:2021-11-25 02:54:13 Java开发

使用四元数插入旋转时的翻转问题

我使用 slerp 在表示旋转的两个四元数之间进行插值.然后将产生的旋转提取为欧拉角以输入图形库.这种工作,但我有以下问题;当沿绿色箭头方向围绕两个(一个工作正常)轴旋转时,如左图所示 这里 旋转很快就会跳来跳去,从相反的位置向相反的视觉方向旋转,如右框中的红色箭头所示. 从数学的角度来看这可能是合乎逻辑的(虽然对我来说不是),但这是不受欢迎的.围绕多个轴旋转时,如何在没有视觉翻 ..
发布时间:2021-11-25 02:53:07 C#

旋转的四元数数学?

我正在我的场景中使用 gluDisk() 绘制一个平面磁盘.gluDisk() 绘制面向正 Z 轴的磁盘,但我希望它面向我拥有的任意法线. 显然我需要使用 glRotate() 来使磁盘正确面对,但旋转应该是什么?我记得这可以使用四元数计算,但我似乎不记得数学了. 解决方案 解决方案应该非常简单,并且不应该需要四分之一. 从 Normal1 到 Normal2 的旋转轴必须与两者正 ..
发布时间:2021-11-25 02:30:00 C#

如何插入旋转?

我有两个描述旋转的向量;开始旋转 A 和目标旋转 B.我如何最好地通过因子 F 插入 A 以接近 B? 当需要对多个维度进行插值(即产生不需要的旋转)时,在向量上使用简单的 lerp 不起作用.也许从旋转向量构建四元数并使用 slerp 是可行的方法.但是,那么,我怎样才能从结果四元数中提取一个描述新旋转的向量呢? 提前致谢. 解决方案 由于我似乎不明白你的问题,这里有一点 S ..
发布时间:2021-11-25 02:20:11 C#

将 Unity 变换转换为 THREE.js 旋转

如何将 THREE.js 相机或对象的旋转与 Unity 游戏对象的变换相匹配? Unity 使用具有 ZXY 欧拉阶数的左手系统.THREE.js 使用具有 XYZ euler 阶数的右手系统. 将GameObject.transform.rotation(四元数)转换为Object3D.rotation(THREE.Vector3)需要进行哪些转换? 解决方案 我们最终解决 ..
发布时间:2021-11-25 02:14:59 C#

我可以在四元数中切换 X Y Z 吗?

我有一个 Y 轴向上的坐标系.我需要将其转换为 Z 为 UP 的坐标系.我将旋转存储在四元数中,所以我的问题是:如果我有一个四元数 X、Y、Z,我可以将 Y 与 Z 切换并得到 Z 实际上向上的结果吗? 解决方案 只是在四元数中交换两个轴?不,这不起作用,因为这会翻转手性.然而,如果你翻转手性并否定四元数的实部,那么你又回到了原来的手性.在一般形式中,您可以将其写为 Q'(Q, i' ..
发布时间:2021-11-25 02:11:15 C#

将方向向量转换为四元数旋转

我可以找到很多关于将四元数转换为方向向量的问题,但没有其他问题,这让我觉得我做错了什么,但请耐心等待. 我想要做的只是使用箭头模型显示定向光的方向. 平行光的方向是单位向量,但模型使用四元数旋转. 那么.. 我如何旋转这个模型以匹配光的方向? 还是我疯了,我真的不能那样做,因为灯光没有位置而模型有位置? 解决方案 方向向量不是定义的旋转,它仍然有无数种可能的解决方案 ..
发布时间:2021-11-25 02:10:27 C#

欧拉角与四元数 - 由内部存储和向用户呈现之间的紧张引起的问题?

四元数可以说是在内部表示对象旋转的合适选择.它们可以简单有效地插入并明确表示单个方向. 但是,在用户界面中呈现四元数通常是不合适的 - 用户通常更熟悉欧拉角,并且它们的值更直观和可预测. 欧拉角在代码级别很复杂——它们需要存储一个旋转顺序,并且使用这个顺序和相关的角度组成一个实际的方向(矩阵或四元数)是很麻烦的,至少可以说. 使用四元数表示最方便地执行可靠插值 - 那么这是否意味 ..
发布时间:2021-11-25 01:39:51 C#

高效四元数角速度

我有一个用四元数表示的方向和一个用四元数或数字表示的角速度(围绕原始方向的每秒弧度).我了解如何使用转换为轴角来做到这一点,但该方法在计算上相当昂贵,并且不是一个现实的选择.在给定时间间隔(以秒为单位)的情况下,我将如何修改方向四元数?我需要针对这两种情况(四元数和数字)的解决方案.但是,将一种情况转换为另一种情况是可以接受的,并且可能更可取,具体取决于转换所需的各种算法/公式的计算复杂性. ..
发布时间:2021-11-25 01:31:34 C#

如何沿所有轴正确旋转四元数?

我想编码一个第一人称相机,其旋转存储在四元数中.不幸的是,旋转有问题. 以下函数负责旋转相机.参数Mouse 和Speed 传递鼠标移动和旋转速度.然后该函数获取旋转四元数,旋转它并存储结果.顺便说一下,我正在使用 Bullet Physics,这是类型和函数的来源. void Rotate(vec2 Mouse, float Speed){btTransform transform = ..
发布时间:2021-11-25 01:27:05 C/C++开发

什么是四元数旋转?

四元数旋转是否只是一个带有物体将向其旋转的 X、Y、Z 的向量,以及一个使物体绕其轴旋转的滚动? 有那么简单吗? 意思是如果你有 X=0、Z=0 和 Y=1,物体会朝上吗? 如果您有 Y=0、Z=0 和 X=1,对象将面向右侧? (假设 X 右,Y 上和 Z 深度) 解决方案 四元数有 4 个分量,它们可以与一个角相关和一个轴向量 n.旋转将使对象绕轴 n 旋转角度θ. ..
发布时间:2021-11-25 01:10:06 C#

在 JavaFX 中正确旋转 3 轴上的 3D 对象

所以到目前为止我在 JavaFX 中旋转对象的方法是我将它分成 3 组,每组附加一个旋转并锁定到一个轴,如下所示: 旋转航向、横滚、俯仰;组 normalrotate、rollrotate、verticalrotate;Heading.setAxis(new Point3D(0,1,0));normalrotate.getTransforms().add(heading);roll.setAx ..
发布时间:2021-11-25 00:54:29 Java开发

为什么四元数用于旋转?

我是一名物理学家,一直在学习一些编程,并且遇到过很多人使用四元数进行旋转而不是以矩阵/向量形式编写东西. 在物理学中,我们有充分的理由不使用四元数(尽管偶尔会讲到关于 Hamilton/Gibbs/等的奇怪故事).物理学要求我们的描述具有良好的分析行为(这具有精确定义的含义,但在某些相当技术性的方式上远远超出了正常介绍课程中所教授的内容,因此我不会详细介绍).事实证明,四元数没有这种好的行为 ..
发布时间:2021-11-25 00:42:31 C#