quaternions相关内容

正交基的四元数

我有一个沿速度矢量移动的弹丸对象.我需要确保对象始终面向速度矢量的方向.此外,我使用四元数而不是矩阵来表示对象旋转. 我知道第一步是找到正交基: forward = direction of velocity vector up = vector.new(0, 1, 0) right = cross(up, forward) up = cross(forward, right) ..
发布时间:2020-11-12 19:19:39 其他开发

通过Euler角度输入旋转四元数

我正在编写代码来控制3D空间中的机械臂。机械臂通过四元数来处理旋转,但是我希望用户通过更改偏航角,俯仰和滚动来控制它,因为它对人类使用这些更敏感。 我编写了函数获取用户想要在每个方向(滚动,俯仰,偏航)上旋转手臂并输出新的四元数的量。我将current_quaternion保存为全局变量。 我正在使用C ++和Eigen。 Eigen ::四元数euler2Quaternion ..
发布时间:2020-10-27 23:31:24 C/C++开发

3D相机意外滚动

我一直在使用C ++在opengl中制作3d相机。 当我环顾相机时,有时相机会意外滚动, 我怀疑这是一个浮点错误,但我不知道如何检测。 这是相机类别: #ifndef CAMERA_H #define CAMERA_H #include #include #include ..
发布时间:2020-09-29 01:23:28 C/C++开发

threejs:将摄像头朝对象平滑旋转

我刚刚开始研究three.js,但是我在编写一个函数时遇到了一些麻烦,该函数将对象位置(Vector3)和一个时间(以毫秒为单位)作为参数,然后逐渐旋转相机使其在该时间内面对它。 首先,我尝试使用tweenjs获得平滑的旋转过渡。对于开始和结束参数,我创建了一个虚拟对象,并将其位置,旋转和四元数设置为与相机相同,然后使用其上的lookAt函数面向该对象,并将其四元数存储在新变量“ targe ..
发布时间:2020-09-29 01:12:38 其他开发

将单位向量转换为四元数

因此,我对四元数非常陌生,但是我了解如何使用四元数来处理事物.我目前正在尝试做的是将已知的四元数与空间中的两个绝对点进行比较.我希望我能做的只是将这些点转换为第二个四元数,从而为我提供了一种比较两者的简便方法. 到目前为止,我所做的是将两个点转换为单位向量.从那时起,我希望我可以直接将i j k插入标量为零的四元数的虚部.从那里,我可以将一个四元数与另一个的共轭相乘,得到第三个四元数.可以将 ..
发布时间:2020-08-30 22:24:01 其他开发

Wiimote方向作为3D矢量

我想知道,由于Wiimote具有3个加速度计,是否有可能将加速度计的读数转换为3D向量. 我知道提取俯仰/侧倾的技巧,但是它仅使用X和Z加速度计,并且存在万向节锁定问题. 我想要的是一个完整的3D矢量,可以将其转换为四元数旋转表示. 解决方案 进一步考虑,加速度计值是我要寻找的向量的组成部分...您只需要表达参考向量和此向量(作为四元数)之间的最短弧线. 例如,如果acc ..
发布时间:2020-07-28 04:11:31 其他开发

难以绕着父轴旋转子级

我知道关于旋转有100万个问题,我已经尝试并阅读了很多东西,但似乎无法解决这个特定问题. 我想正确解释的唯一方法是绘制一些不良的图表,所以去吧! 我有一个父对象和一个子对象(在这里,它表示为一个骰子,相对的面总计为7),此图中的轴为父X,Y和Z方向 起点: 我希望子对象具有两个方法,分别称为RotateZ和RotateX. RotateZ和RotateX应该使子骰子绕父母Z ..
发布时间:2020-07-26 04:07:56 其他开发

与失忆症类似,在Unity3D中打开门的前部和后部

我正在尝试实现类似于失忆症的功能:黑暗后裔使玩家按住鼠标按钮并向前或向后拖动门以将其打开(如果您不熟悉,请参见门示例大约在36:30). 我有以下代码,并且可以正常工作,但是开口有点抖动并且前后来回跳动,而且我无法弄清楚是否使用了transform.Rotate错误: if (previousMousePosition == garbageVector) // if this ..
发布时间:2020-07-13 00:03:34 C#/.NET

Unity-陀螺仪-仅绕一轴旋转

我正在使用Unity制作使用陀螺仪的游戏.我正在尝试检测设备围绕穿过屏幕的轴的旋转,我假设它是Unity Space中的Z轴.我尝试使用Input.gyro.attitude.eulerAngles.z,但是在使设备绕其他轴倾斜时不会保持恒定,例如,我希望它保持恒定,以便仅由"Z轴"确定汽车方向盘的旋转.我该如何实施? 编辑: 我尝试做其他事情.我用Input.gyro.rotationRa ..
发布时间:2020-07-12 23:09:24 移动开发

单位在最小和最大距离之间旋转

我正在尝试拖动一个对象.该对象只能旋转这么多. (Similair到门). 这是对位进行编辑的代码,该代码旋转有效的对象. 我有2个向量用于最大旋转和最小旋转. 每当用户拖动可交互对象时,就会调用此代码. (例如更新,但仅在拖动时显示) if (GestureManager.Instance.IsNavigating && HandsManager.Ins ..
发布时间:2020-07-12 22:46:26 C#/.NET

将外部四元数映射到Unity

我正在尝试使用四元数将传感器的旋转映射到Unity中,但是我无法 似乎弄清楚了为什么旋转不能正确映射. 我正在使用 Adafruit BNO055 来以四元数的形式拉伸绝对方向.这 可以在此处中找到其Quaternion实现的来源.据我了解 四元数,这几乎没有什么,我应该能够将四元数从传感器中拉出, 将其泵入Unity内部的任何GameObject中,以便它们共享相同的方向.如果我有一个循环 ..
发布时间:2020-07-12 22:13:28 其他开发

将四元数拆分为轴旋转

我有一个表示对象(黄色框和球体)方向的四元数.我想知道是否有可能将该四元数分解为其他四元数,从而使每个局部轴(X,Y和Z)旋转. 到目前为止,我一直在做Euler表示并使用它,但这并不是针对我的特定情况的正确解决方案: 给出两个点(蓝色框),我想限制对象的方向,以便即使四元数从该平面之外也不能指向灰色平面. 我想分割(分解)四元数,因为当我的对象达到平面的极限(例如,右侧)时,我想使 ..
发布时间:2020-07-12 20:51:16 其他开发

如何以当前设备方向启用陀螺仪摄像头

我想启用陀螺仪控制的相机的onButtonClick事件,但是我希望它从相机的当前位置开始.当前,当启用陀螺仪时,它将摄像机移动到新位置(可能是设备当前的陀螺仪旋转),而不是将其放置在原处并从该点开始陀螺仪旋转. 希望我有道理,但基本上我不希望用户注意到他们在游戏中看到的任何变化(即,陀螺仪控制的摄像头,但该用户不会注意到该变化).这是我正在使用的代码: void Update () ..
发布时间:2020-07-12 19:16:57 C#/.NET

随着时间旋转GameObject

我在这里是新来的,我尝试开始使用Unity Engine. 有人可以向我解释一下Quaternion.Slerp的工作原理吗?因为我想以90、180和270度的角度旋转某个对象.我的代码如下所示.不幸的是,当我增加180度时,对象会做出疯狂的事情,而不是将此游戏对象的旋转度设为(0,180,180).我想得到(180,0,0) public float speed = 0.1F ..
发布时间:2020-07-12 19:01:07 C#/.NET

使用四元数来计算iPhone的偏航,俯仰和横滚?

我看到许多问题和文章提到四元数可用于从iPhone得出更好,准确和稳定的偏航,俯仰和横滚读数,而不是直接读取偏航,俯仰和横滚读数.但是同时,我还没有看到在iPhone平台上实现四元数的任何适当方法.作为一个初学者,真的很难知道,这些四元数是如何工作的,并在一段代码中实现它们? (很抱歉没有提供任何代码,因为我不知道它如何在苹果的xcode平台中工作) 因此,请为我的问题提供足够的答案,以使大 ..