quaternions相关内容

当我有两个方向四元数时,如何找到从一个方向到另一个方向所需的旋转四元数?

我在游戏中使用四元数,并且想知道当我有两个方向四元数时,如何获得从第一个q1到第二个q2所需的旋转四元数. 我是自学成才的,因此我的词汇表中可能缺少明显的解决方案. 在等式中,当我从第一个旋转到另一个时,我正在做的事情如下: q2 = r * q1 但是,现在r是未知数.代数规则在这里也算在内吗?如果真是这样,我最终会把一个四元数除以另一个,这在互联网上找不到很好的解释. 我正在 ..
发布时间:2020-06-16 19:08:19 其他开发

从两个四元数和时间步获取动量四元数

我有一个四元数,它可以保持对象的旋转。在框架期间,我对其进行了修改并获得了新的四元数。我可以计算出从“上一帧”旋转到“当前帧”的四元数。 我不知道如何将四元数除以t 即,基于时间步长,我需要知道将四元数应用于自身后会是什么样子X倍的次数(即28.5 fps,28.5倍,等等)。 有人知道怎么做吗?还是建议您做一些转换为欧拉,相乘然后转换回去的事情? 解决方案 因为组合旋转 ..
发布时间:2020-06-11 19:03:57 其他开发

LSM9DS0上的Madgwick传感器融合

我正在尝试实施Madgwick传感器融合算法从这里在STM Cortex M3微控制器上的LSM9DS0传感器(加速度计,陀螺仪和磁力计)上。 所有传感器的原始数据似乎都很好。 p> 我的问题是:当我将传感器的z轴水平或向下放置时(即,横滚角或俯仰角大于90度)-滤镜中的四元数实际上变得不稳定且随机翻转180度。 更正确地说,q0和q3不断变化的符号,导致旋转180度翻转。 我 ..
发布时间:2020-05-31 23:14:36 其他开发

旋转相机以查看three.js中的Selected对象

我正在尝试设计地图。因此,当我选择任何几何图形时,我希望对象位于视口的中心,而相机要对其进行观察。我已经花了很多时间在网上无处不在,但找不到答案。请注意,我不想旋转对象。我只想更新相机。我试图在此示例中获得类似的信息,当我们单击该数字时,它会出现在中心: https://sketchfab.com/3d-models/jurassic-aquarium-diorama-with-annotatio ..
发布时间:2020-05-31 21:18:33 前端开发

点看点

因此,我在3D空间中有一个点,而我在3D空间中有Camera的位置和旋转。 因此,基本上该对象上有 Vector3 。 相机 Vector3 和四元数。 我需要了解如何看待这一点。 我想告诉用户如何发展到这一点。 用户应该将摄像机向左还是向右或向后引导? 解决方案 做到这一点的一种方法是以偏航角的形式计算相机当前所面对的方向(例如指南针方向) ,然后计算出要面对该点所 ..
发布时间:2020-05-31 21:14:41 其他开发

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

关于将四元数转换为方向向量,我能找到很多问题,但反过来都没有,这让我觉得我做错了,但请忍受。 我想做的只是使用箭头模型显示定向光的方向。 定向光的方向是单位矢量但是使用四元数来旋转模型。 所以。如何旋转该模型以匹配光的方向? 还是我疯了,鉴于灯光没有位置,但是模型确实有,我真的不能做到吗? 解决方案 方向向量不是定义的旋转,它仍然具有无限数量的可能解。找不到关于如何 ..
发布时间:2020-05-31 21:04:26 其他开发

限制俯仰,偏航和滚

我将旋转表示为四元数,并试图限制音调,偏航和横滚轴。我试着这样做: public struct Orientation { public Vector3向上,向前; 公共方向(Vector3向上,Vector3向前) { this.up = up; this.forward = forward; } } public static Orientation [ ..
发布时间:2020-05-31 21:02:44 其他开发

有效四元数角速度

我有一个用四元数表示的方向和一个用四元数或数字(围绕原始方向的弧度/秒)表示的角速度。我知道如何使用转换为轴角的方法来做到这一点,但是该方法在计算上相当昂贵,而且不是现实的选择。给定时间间隔(以秒为单位),我将如何修改方向四元数?我需要两种情况(四元数和数字)的解决方案。但是,将一种情况转换为另一种情况是可以接受的,并且可能更可取,这取决于转换所需的各种算法/公式的计算复杂性。 解决方案 ..
发布时间:2020-05-31 21:00:50 其他开发

如何在不使用transform.Rotate的情况下在其本地轴或世界轴上旋转带有第二四元数的四元数?

Transform.Rotate 有一个非常有用的界面,用于选择是否应相对于世界轴或局部轴进行旋转。 在幕后,它对转换的旋转(一个四元数,以及另一个四元数。数学的确切性质会根据您选择的是本地标志还是世界标志而变化。 如何在不分配第一个四元数到变换的旋转(浪费内存和/或时间)只是为了做一些数学运算? 假设我的第一个四元数是四元数q1 = Quaternion.Euler(0f,0f ..
发布时间:2020-05-31 20:59:23 C#/.NET

3D在考虑玩家Y旋转的情况下创建到距离的点

我需要在一个Point(这是我们的玩家位置)前面定义一个2D平面区域,并检查其中包含哪些Point(敌人). 在游戏中,它用于通过X宽度,Y高度和Z长度来确定我们前面的“盒子"中有哪些敌人. 我需要帮助计算飞机的左下角和右上角. 输入:我们知道玩家的位置,我们知道玩家的旋转.只有飞机Y旋转很重要,因为飞机必须始终在运动员的前方. 我们知道飞机的宽度和长度.在这种情况下,身高无关紧 ..
发布时间:2020-05-28 21:09:45 Java开发

四元数的Arcball旋转(使用iOS GLKit)

我正在寻找一种带有四元数的3D模型上的弧线球旋转的简单实现,特别是在iOS上使用GLKit .到目前为止,我已经检查了以下来源: 使用GLKit进行Arcball旋转 如何旋转使用OpenGL进行触摸的3D对象 我也一直试图从此处和此处.我可以旋转我的物体,但它会一直以一定角度跳动,所以我担心云台锁定装置在起作用.我正在使用手势识别器来控制旋转(平移手势会影响滚动和偏航,旋转手势会影 ..
发布时间:2020-05-21 00:20:19 移动开发

ROS Rviz的Tango Pose数据可视化

我们已经修改了 C API的示例代码,因此Tango构成了数据(位置(x,y,z)和四元数(x,y,z,w))作为PoseStamped ROS消息发布. 我们正在尝试使用Rviz可视化姿势.姿势数据似乎需要进行一些转换,因为当我们四处移动时,Rviz箭头的旋转与Tango的行为不匹配. 我们意识到,在示例代码中,在探戈屏幕上进行可视化之前,理想情况下,在发布姿势数据以进行可视化之前, ..

使用GLM围绕点进行OpenGL旋转

我一直在阅读其他文章,内容涉及如何通过将枢轴平移到原点,旋转和向后平移来围绕OpenGL中的点旋转对象.但是,我似乎无法正常工作.我有一个多维数据集,并且正在使用glm :: perspective和glm :: lookAt生成投影和视图矩阵. glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.0f) ..
发布时间:2020-05-20 23:37:26 C/C++开发

为什么我的FPS相机一劳永逸?

如果我忽略四元数代数的肮脏细节,我想我理解旋转和平移变换背后的数学原理.但是仍然无法理解我在做什么. 为什么我的相机一劳永逸!! :) 更具体地说,我应该如何从其方向(旋转矩阵)计算摄像机视图矩阵? 我正在用Python编写一个简约的3d引擎,其中包含一个场景Node类,该类处理3d对象的旋转和平移机制.它具有暴露“旋转"和“平移"矩阵以及“模型"矩阵的方法. 还有一个Ca ..
发布时间:2020-05-20 23:27:54 Python

将glm :: lookat矩阵转换为四元数并返回

我正在使用glm创建相机类,并且我在使用lookat函数时遇到了一些问题.我正在使用四元数来表示旋转,但是我想使用glm的预先编写的lookat函数来避免重复代码.这是我现在的lookat函数: void Camera::LookAt(float x, float y, float z) { glm::mat4 lookMat = glm::lookAt(position, glm: ..
发布时间:2020-05-20 22:46:54 C/C++开发

如何在opengl中使用四元数围绕屏幕中心旋转?

我正在尝试实现arcball/trackball旋转,但是中心位置有问题 回转.无论如何,我都希望中心成为屏幕的中心. 让我解释一下到目前为止我做了什么. 我创建了一个四分位数 (旋转轴:vector_start x vector_end,角度:vector_start * vector_end) 根据该四元数,我创建了一个旋转矩阵,以便将其与glMultMatrixf(matr ..
发布时间:2020-05-20 22:36:22 其他开发

SceneKit –映射物理360度旋转

我很难将设备运动(传感器融合)映射到SceneKit节点旋转.问题的前提如下, 我有球体,并且将摄影机定位在球体内,以使球体的几何中心与摄影机节点的中心重合.我要实现的是,当我绕某个点物理旋转时,还需要将运动准确地映射到摄像机上. 实现细节如下: 我有一个节点,球体为风水学,是根节点的子节点.我正在使用传感器融合来获取姿态四元数,然后 将它们转换为欧拉角.的代码是: - ( ..

numpy中的球坐标生成四元数

在尝试了解numpy的四元数扩展名的用法时,我看到了 import numpy as np import quaternion as q theta = np.pi * 1.0 / 3.0 phi = 0.0 print(q.from_spherical_coords(theta,phi)) 打印出 (quaternion(0.866025403784439, -0, 0.5, ..
发布时间:2020-05-18 23:19:23 Python

创建统一的随机四元数和两个四元数的乘法

我有一个python(NumPy)函数,可创建统一的随机四元数.我想从同一个函数或另一个函数中获得两个四元数乘法作为二维返回数组.在我最近的情况下,四元数乘法的公式为Q1 * Q2和Q2 * Q1.在这里,Q1=(w0, x0, y0, z0)和Q2=(w1, x1, y1, z1)是两个四元数.预期的两个四元数乘法输出(作为二维返回数组)应为 return([-x1*x0 - y1*y0 ..
发布时间:2020-05-18 20:24:14 Python