quaternions相关内容

如何将 2 个四元数旋转回起始位置,然后计算相对旋转?

我有 2 个 IMU(惯性测量单元),我想计算它们的相对旋转.不幸的是,IMU 的输出给了我相对于全局的两个四元数(我假设这就是四元数的工作方式).但是,我需要测量一个传感器相对于另一个传感器的旋转.一直以来,这两个传感器都从其初始方向在全局轴上旋转. 例如:我将一个传感器连接到胸部,另一个连接到手臂.两个传感器都针对全局轴进行校准.如果我保持这个方向,我可以很好地计算旋转.但是,当我将我的 ..
发布时间:2021-06-30 19:16:57 其他开发

使用笛卡尔坐标和欧拉角控制 OpenSceneGraph 相机

我正在尝试使用从文件中读取的笛卡尔坐标(X、Y、Z)和欧拉角(偏航、俯仰、滚动)来控制 osg::Camera. 第 1 部分 由于某种原因,设置我的滚动会导致相机围绕 z 轴旋转,而不是像预期的那样围绕 y 轴旋转. 以下是我将位置数据输入到的先前编写的相机操纵器. class EulerManipulator : public osgGA::CameraManipulato ..
发布时间:2021-06-30 19:16:54 C/C++开发

四元数到达万向节锁

为了在执行旋转时避免角度锁定,我尝试切换到四元数.不知何故,我仍然设法达到万向节锁定. 我不确定是因为我实施的数学运算还是设计错误,所以请指出我是否应该更改对象坐标的方法. 我的每个对象都有一个 X、Y、Z 值和一个俯仰、偏航、滚动值.当我更改旋转值时,对象会根据上述信息重新计算其顶点.这个逻辑如下: //顶点数组vertices[x] -=/*原点偏移*/;//Quat. 表示绕 ..
发布时间:2021-06-30 19:16:51 C/C++开发

如何在three.js中为相机设置动画以查看对象?

在 Three.js 中,我想让相机看着场景中的一个对象,当我点击另一个对象时,让相机平滑旋转以查看新对象.(即为相机的旋转设置动画). 我已经检查过,这是最相似的问题: Three.js 如何使用四元数旋转相机 我也试过修改这个网站中的代码,我设法得到了一些东西像这样http://jsfiddle.net/F7Bh3/ var quat0 = mesh2.quaternio ..
发布时间:2021-06-30 19:16:48 其他开发

什么时候需要使用四元数?

我多年来一直在进行 2D 和 3D 操作,包括图形操作,但从未使用过四元数,因此我对它们没有感觉.我知道它们可用于在欧拉角中困难的某些操作,并且它们还可用于找到最适合一组坐标所需的旋转 (X1, X2...XN, X=(xyz))到另一个(X1',X2'...XN'). 是否有四元数必不可少的地方?有哪些地方可以让解决方案更优雅或更高效? 解决方案 与旋转矩阵相比,它们的内存占用更小 ..
发布时间:2021-06-30 19:16:45 其他开发

如何将四元数转换为角度?

我正在尝试在 https://docs.microsoft.com/en-us/xamarin/essentials/orientation-sensor 计算设备的俯仰、偏航和滚转.图书馆工作,并以四元数返回. 我希望能够将这个四元数转换为 360 度空间中的俯仰、偏航和滚动,以及设备“向"360 度旋转多远的 0 到 100 的百分比. 我一直在研究这一点,并发现了各种以数学符号表 ..
发布时间:2021-06-30 19:16:42 C#/.NET

计算四元数逆

嗨,我想弄清楚如何计算四元数的倒数.代码示例会很棒. 干杯 解决方案 参见 维基百科文章整个四元数数学. 不知道您想使用哪种语言,但我会尝试在 Haskell 中提供一些提示. data Quaternion = Q Double Double Double Double deriving (Show, Eq) 首先需要实现四元数的乘法和加法. instance Num ..
发布时间:2021-06-30 19:16:39 其他开发

使用向上向量查看四元数

我有一个相机(在自定义 3D 引擎中),它接受旋转变换的四元数.我有两个 3D 点代表一个相机和一个要查看的对象.我想计算从相机到物体的四元数,同时尊重世界上轴. 这个问题要求没有“向上"向量的相同问题.所有三个答案都会导致相机指向正确的方向,但会滚动(如偏航/俯仰/滚动;想象在看东西时将头靠在耳朵上). 我可以通过以下方式计算与所需坐标系匹配的向量的正交基: lookAt = no ..
发布时间:2021-06-30 19:16:35 其他开发

如何推导出“标准"使用四元数时来自three.js的旋转?

stackoverflow 新手参与者,3D 新手程序员,并且远离数学奇才......所以我会尽可能清楚地描述这个问题,希望它有道理,并希望得到一个不超过一英里的答案我的头. 我使用three.js 编写了一个非常酷的应用程序,让用户可以在3D 空间中飞行并探索太阳系.飞行模型松散地基于 Three.js 包中的 Fly.Controller 示例/扩展,它教会我使用四元数来保持所有相对于彼 ..
发布时间:2021-06-30 19:16:32 其他开发

四元数绕轴旋转的分量

我无法找到有关此主题的任何好的信息.基本上我想找到四元数旋转的分量,即围绕给定轴(不一定是 X、Y 或 Z - 任何任意单位向量).有点像将四元数投影到向量上.因此,如果我要求绕平行于四元数轴的某个轴旋转,我会得到相同的四元数.如果我要求绕与四元数轴正交的轴旋转,我会得到一个恒等四元数.中间......好吧,这就是我想知道如何解决的问题:) 解决方案 前几天我试图为动画编辑器找到完全相同的 ..
发布时间:2021-06-30 19:16:29 其他开发

四元数和归一化

我知道如果我想旋转一个向量,需要对四元数进行归一化. 但是有什么理由不自动规范化四元数吗?如果有,哪些四元数运算会导致非标准化四元数? 两个四元数相乘? 点积? 对不起,如果这个问题有点模糊.我仍在尝试围绕四元数. 解决方案 任何产生四元数的操作都需要归一化,因为浮点进动错误会导致它不是单位长度. 出于性能原因,我建议不要使用标准例程自动执行规范化.任何有能力的程 ..
发布时间:2021-06-08 18:58:23 其他开发

使用四元数消除向量

我在x,y,z方向(传感器主体框架)上具有一组加速度值.在操作过程中,传感器多次倾斜和改变方向.使用陀螺仪,磁力计和加速度计,我能够以四元数格式融合并提取侧倾角,俯仰角和偏航角(校准为Q). 现在,将加速度值旋转到全局X,Y,Z位置.我只是简单地1.通过将标量部分设置为0(称为Acc)将加速度值转换为四元数2.将加速四元数乘以以下公式:Qtranspose * Acc * Q ?? 还 ..
发布时间:2021-05-31 21:10:59 其他开发

Glm四元数查找功能

我正在尝试基于此 answer 来编写一个使用glm :: quat表示旋转的外观函数..但是,我在获取正确角度时遇到了麻烦.这是我的查找功能: void Camera :: LookAt(float x,float y,float z){glm :: vec3 lookVector = glm :: vec3(x,y,z);断言(lookVector!= position);glm :: v ..
发布时间:2021-05-11 18:59:08 C/C++开发

Unity Fix NavMeshAgent自动旋转90度

我目前正使用AI的敌人作为出租车模型,该模型会驶向不同的航路点.每当汽车移动到某个路点时,它都会立即向右自动旋转90度,但会不断在一个路点之间移动. 如何修复在移动到航路点时自动旋转90度的NavMeshAgent?注释掉的代码可修复自动旋转,但在setDestination上移动到航路点时旋转不足. 未注释的代码首先旋转90度,然后在每个航路点之后(从90度位置开始)旋转一点.(来自 ..
发布时间:2021-05-09 20:33:57 C#/.NET

本征:矩阵到四元数和反数的结果不同

我使用Eigen库将矩阵秘密转换为四元数,但是当我将其中一个矩阵转换为四元数并将其烧回时,它又变成了另一个矩阵,即单位矩阵.我使用的旋转矩阵是从变换矩阵分解而成的. Eigen :: Matrix3f R3d = R.topLeftCorner();* Rquat = R3d;R3d =(* Rquat).normalized().toRotationMatrix(); 什么可 ..
发布时间:2021-05-03 20:10:18 其他开发

“距离"是指四元数之间的距离(或角度大小)?

我想找到两个四元数之间的“距离".“距离"是指单个浮点数或整数,而不是另一个四元数(这就是区别,即 inverse(q1)* q2 ).我猜你可以称呼我想要的“角度大小". 我需要从物理角度进一步旋转物理对象,然后再施加更大的扭矩. 我不了解四元数中涉及的数学,因此基于代码的示例将非常有帮助.我已经看过其他几个问题,但我不相信有任何答案,或者至少不会以我理解的方式回答. 解决方案 ..
发布时间:2021-04-30 20:52:36 其他开发

如何使用numpy-四元数计算角速度

我有一个时间序列,其中每个度量都是一个四元数.我想估计两次测量之间的角速度.目前,我使用了非常简单的方法: wheel_angular_dists = []对于wheel_quats中的配对:差异= t [0] * np.conj(t [1])角度=漫射角wheel_angular_dists.append(angle)df_wheel_dists = pd.Series(wheel_angu ..
发布时间:2021-04-23 20:22:10 Python

threejs-如何将与鼠标有关的对象从其当前中心点旋转到一个度设置

我在一个场景中有一个threejs模型,其终点是0,0,0点.我必须旋转它,以便它的静止位置处于我想要的角度,并将其设置为场景动画,因此该位置和旋转均不为0,0,0.此外,已将相机定位并设置为注视对象,因此其位置和旋转已更改. 我想获取用户的鼠标坐标,只是让模型围绕其在世界Y轴上的中心点旋转一定数量的最大和最小度数.我知道如何将鼠标坐标映射到所需的度数/弧度角,但是如何告诉模型旋转? ..
发布时间:2021-04-02 18:59:07 其他开发

四元数和球面旋转坐标之间的正确转换?

我正在学习更多的四元数转换,并且在本网站的以下部分中有一个关于四元数到球面旋转转换代码的问题: http://web.archive.org/web/20041029003853/http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q59 此代码中的angle和sin_angle应该是什么?角度从未使用过,所以我猜它是旋转角度.是sin_ ..
发布时间:2021-04-02 18:58:30 其他开发

使用GLM的基于四元数的点旋转

我正在尝试使用GLM中实现的四元数来旋转点.最终目标是使用此代码创建轨道摄像机,但这是帮助您理解代码背后动机的旁注. 为了更好地理解基于四元数的旋转,我编写了一些包含两个循环的代码.第一个循环将四元数围绕X轴逐步旋转到90度,从而逐步改变四元数的方向,第二个循环将继续对Z四轴逐步进行四度旋转到90度.循环每个执行4个步骤.因此,每个回路围绕其各自的轴增量旋转90/4 = 22.5度.使用四元 ..
发布时间:2020-11-16 00:28:20 C/C++开发