quaternions相关内容

有人可以解释一下如何使用Quanternions使用鼠标来看看像一个FPS?

昨天我问: 基本上,我发现因为“云台锁定”,如果你俯仰+偏航你将不可避免地产生滚动效应。有关详细信息,您可以阅读此问题。 我试图阻止这种情况发生。当你在一个正常的FPS射手环顾四周,你没有你的相机滚动的地方! 这是我当前的被动鼠标功能: int windowWidth = 640; int windowHeight = 480; int oldMouseX = ..
发布时间:2016-11-10 17:15:14 其它移动开发

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

我要对第一人称相机进行编码,其旋转存储在四元数中。不幸的是旋转有问题。 以下功能负责旋转相机。参数 Mouse 和 Speed 传递鼠标移动和旋转速度。然后函数获取旋转四元数,旋转它并存储结果。顺便说一句,我使用的是 Bullet Physics ,类型和功能来自于它。 void Rotate(vec2 Mouse,float Speed) { btTransform tran ..
发布时间:2016-11-10 16:29:00 C/C++开发

在c ++中,如何根据最新一个的四元数旋转在三维空间中附着到另一个点

p1和p2,p2连接到p1,不仅连接到p1的位置,而且连接到它的旋转,因此q1是代表p1旋转的四元数。 如果q1旋转,则p1的位置也必须围绕p1旋转。 我只需要计算p2的位置,而不是旋转,我已经完成了旋转。 所以基本上是一个飞船停靠到一个车站,我需要移动和旋转站与周围的船停靠到它。 我如何做? 我写的代码工作,只要车站在对接期间不旋转​​: bool docked [100] ..
发布时间:2016-11-02 01:56:02 C/C++开发

使用四元数旋转不完全正确

从我的上一个问题继续,我现在设法旋转我的对象与四元数,但仍有一个小问题,我不知道如何解决它。使用下面的代码我的对象旋转x和y轴。但是当我在x和y键之间切换时,它总是跳回到初始位置。所以我永远不会从新的位置轮换,但总是从程序开始的一个。 四元数q1 =四元数 - > quat_rotate(anglex,1,0,0); 四元数q2 =四元数 - > quat_rotate(angley,0, ..
发布时间:2016-10-30 04:55:40 C/C++开发

如何找到正确的旋转从一个向量到另一个?

我有两个对象,每个对象有两个向量: 正常向量 喜欢这张图片: 向上向量垂直于法线向量。现在我想找到从一个对象到另一个对象的唯一旋转,该如何做? 我有一个方法来找到一个向量和另一个向量之间的旋转,它的工作原理。问题是,我需要关心两个向量:法线向量和向量向量。如果我使用这个方法从对象1旋转法向量到对象2的正常向量,向上向量可能指向错误的方向,他们需要是平行的。 是找到最短 ..
发布时间:2016-10-24 16:25:20 C/C++开发

如何找到正确的旋转从一个向量到另一个?

我有两个对象,每个对象有两个向量: 正常向量 喜欢这张图片: 向上向量垂直于法线向量。现在我想找到从一个对象到另一个对象的唯一旋转,该如何做? 我有一个方法来找到一个向量和另一个向量之间的旋转,它的工作原理。问题是,我需要关心两个向量:法线向量和向量向量。如果我使用这个方法从对象1旋转法向量到对象2的正常向量,向上向量可能指向错误的方向,他们需要是平行的。 是找到最短 ..
发布时间:2016-10-24 15:27:38 C/C++开发

如何找到正确的旋转从一个向量到另一个?

我有两个对象,每个对象有两个向量: 正常向量 喜欢这张图片: 向上向量垂直于法线向量。现在我想找到从一个对象到另一个对象的唯一旋转,该如何做? 我有一个方法来找到一个向量和另一个向量之间的旋转,它的工作原理。问题是,我需要关心两个向量:法线向量和向量向量。如果我使用这个方法从对象1旋转法向量到对象2的正常向量,向上向量可能指向错误的方向,他们需要是平行的。 是找到最短 ..
发布时间:2016-10-24 15:23:56 C/C++开发

从模型矩阵或四元数中寻找最终世界坐标

我使用对象的模型矩阵在OpenGL中显示一个对象,我从我预先存储的对象位置和一个应用于旋转的四元数构建。我需要在应用旋转和变换(对象出现在屏幕上的坐标)后,找到我的对象的最终笛卡尔坐标在3D 。 解决方案 如果我理解正确,你有一个对象;如果您在未应用任何变换的情况下呈现,则其中心位于 [0,0,0] 。 您在3D空间中有一个点 [a,b,c] 。您将转换应用于modelview矩阵。 ..
发布时间:2016-10-23 21:33:09 C/C++开发

更快的四元数矢量乘法不工作

我需要一个更快的四元数矢量乘法例程为我的数学库。现在我使用规范 v'= qv(q ^ -1),这产生与将向量乘以从四元数形成的矩阵相同的结果,因此我相信这是正确的。 到目前为止,我已经实现了3个替代的“更快”的方法: #1,我不知道从哪里得到这个: v'=(q.xyz * 2 * dot (q.xyz,v))+(v *(qw * qw-dot(q.xyz,q.zyx)))+(c ..
发布时间:2016-10-23 21:09:43 C/C++开发

Arcball旋转90度

我已经成功地通过四元数实现了Arcball旋转,但是当相机的方向向量与向上的向量平行时,我会感到困惑。目前,当方向向量和向量向量的点积超过0.99时,我只是限制沿x轴(节距)的旋转。在Maya(或Max,XSI,其中使用arcball旋转)例如,您可以非常顺利地在一个完整的圆周围旋转。我希望有一个类似于Maya旋转的解决方案。 谢谢 解决方案 您需要同时调整视图法向量(VNV)和向上 ..
发布时间:2016-10-23 21:05:43 C/C++开发

Arcball旋转90度

我已经成功地通过四元数实现了Arcball旋转,但是当相机的方向向量与向上的向量平行时,我会感到困惑。目前,当方向向量和向量向量的点积超过0.99时,我只是限制沿x轴(节距)的旋转。在Maya(或Max,XSI,其中使用arcball旋转)例如,您可以非常顺利地在一个完整的圆周围旋转。我希望有一个类似于Maya旋转的解决方案。 谢谢 解决方案 您需要同时调整视图法向量(VNV)和向上 ..
发布时间:2016-10-23 20:59:47 C/C++开发

从四元数查看矩阵

我目前正在建立我自己的四元数相机。据我所知,你只需要一个四元数来完全指定相机的方向(纠正我,如果我错了)。那么,我将如何创建视图矩阵?我正在使用C ++作为编程语言。 任何帮助都会感激。 解决方案 首先有一些注意事项。你会看到很多明显冲突的公式在网上和文学上关于这个问题。大多数冲突只是明显的。一些是真正的冲突,但这是因为有人得到了数学错误。问题是没有一个正确的方法来做到这一点。你需要 ..
发布时间:2016-10-23 19:44:16 C/C++开发

在C / C ++中的四元数据库

在C / C ++中进行四元数计算的任何好的库? 旁注:任何好的教程/示例?我有google的,并已到前几页,但也许你有一些演示/实验从compsci或数学课程,你可以/将分享? 感谢 解决方案 我是Irrlicht四元组的粉丝类。它是zlib许可,并很容易从Irrlicht提取: Irrlicht Quaternion文档 quaternion.h ..
发布时间:2016-10-17 09:25:50 C/C++开发

使用cv :: Mat的高效C ++四元数乘法

我想乘以2个四元数,它们存储在 cv :: Mat 结构中。我希望功能尽可能高效。到目前为止,我有以下代码: / **四元数乘法 * * / void multiplyQuaternion(const Mat& q1,const Mat& q2,Mat& q) { //第一个四元数q1(x1 y1 z1 r1) const float x1 = q1.at ; float> ..
发布时间:2016-10-17 09:15:39 C/C++开发

四元数 - 旋转

我在世界空间有一些对象,让我们说(0,0,0),并把它旋转到面(10,10,10)。 解决方案 这个问题没有意义。你说你想要一个对象“面对”一个特定的点,但是没有给出足够的信息。 首先,面对方向是什么意思?在OpenGL中,这意味着本地参考系中的 -z 轴与某些外部参考系中的指定方向对齐。为了使这种对准发生,我们需要知道对象的相关轴当前“面向”的方向。 但是,仍然没有定义唯一的 ..
发布时间:2016-10-14 20:03:11 C/C++开发

从四元数到OpenGL旋转

我有一个对象,我想通过键旋转。物体应该偏航,俯仰和滚转。在尝试了很多,我想出了 glRotate 有它的局限性,它将不可能实现类似的功能。 我研究了一下,发现了基于四元数的旋转。 我已经阅读了关于四元数并且理解得很好的例子,但是如何在我的OpenGL程序中实现它们仍然是一个谜。有谁知道一个小例子吗?不是如何实现四元数类,而是如何使用它。 解决方案 最重要的是实现将构建旋转矩阵的 ..
发布时间:2016-10-14 12:57:32 C/C++开发

是否有转换四元数旋转到欧拉角旋转算法?

是否有一个旋转的四元数再presentation转换为欧拉角再presentation现有的算法?为欧拉旋转次序重新presentation是已知的,可以是任何的六个置换(即XYZ,XZY,YXZ,YZX,ZXY,ZYX)。我见过一个固定的旋转顺序(通常是NASA标题,银行,滚惯例),但不是任意的旋转顺序算法。 此外,因为有一个单一方向的多个欧拉角再presentations,这样的结果将是不明 ..