euler-angles相关内容

使用笛卡尔坐标和欧拉角控制 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 setFromRotationMatrix 旋转超过 90 度时的奇怪行为

我有每个对象的每个旋转轴都有一个单独的父对象(X 轴旋转 1 个,Y 轴旋转 1 个,Z 轴旋转 1 个.它们也按以下顺序相互关联:X-rotation 对象是 Y-rotation 对象的子对象.Y-rotation 对象是 Z-rotation 对象的子对象). 我正在尝试制作一个功能,允许用户一起旋转场景中的所有对象(它们都包含在单个 Object3D 中).当 Object3D 旋转 ..
发布时间:2021-06-14 19:19:48 前端开发

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

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

难以绕着父轴旋转子级

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

将四元数拆分为轴旋转

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

来回旋转GameObject

我想在Y轴上将对象在90,-90之间来回旋转.问题是我可以在编辑器中将对象设置为-90,但是当我运行项目时,-90突然变成270.无论如何,这是我正在使用的代码: void Update() { if (transform.eulerAngles.y >= 270) { transform.Rotate(Vector3.up * speed * Time.de ..
发布时间:2020-07-12 19:29:09 C#/.NET

将2 3D点转换为方向向量再转换为欧拉角

本质上是我的问题。同样,也许我对欧拉角还不够熟悉,而且我尝试做的事情也不可能。 我在3d空间中有2个点。 p1(1,2,3) p2(4,5,6) 在为了获得这两点的单位矢量,我基本上是在做。 var productX =(position.X2-position.X1); var productY =(position.Y2-position.Y1); va ..
发布时间:2020-05-31 21:09:38 其他开发

如何从旋转矩阵计算角度

我正在使用单个对象的两个图像,该对象从其第一个图像旋转了一定程度. 我已经计算出每个图像的位姿,并使用Rodergues()将旋转矢量转换为Matrix.现在如何计算并查看其从第一个位置旋转了多少? 我尝试了很多方法,但是答案都还不是很接近 编辑:我的相机是固定的,只有物体在移动. 解决方案 我们可以使用以下公式从旋转矩阵中获得欧拉角. 给出3×3旋转矩阵 3 ..
发布时间:2020-05-20 19:13:57 C/C++开发

SceneKit –映射物理360度旋转

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

给定一组欧拉角(俯仰,偏航,横滚),如何找到描述相同3D方向的替代集?

我对欧拉方程有一个很好的四元数,有时会返回一组非直觉的角度. 例如: 间距:129 偏航:-85 卷:126 我想以编程方式找到交替旋转,以使俯仰和横滚在-90至90之间.偏航角可以为0至360. [EDIT]音高限制在-90到+ 90,Roll限制在-180到+180. 解决方案 基本上,您想防止方向超出极限.这很容易做到: 首先,检查螺距是否超出极点( ..
发布时间:2020-05-06 11:44:37 其他开发

有没有一种方法可以从4x4矩阵计算X和Y轴上的3D旋转

首先,我根本不是数学专家.请宽容我的数学错误,并在必要时纠正我,我很乐意学习. 我有一个立方体,该立方体使用带有以下转换的css动画旋转:matrix3d(4x4).我还可以手动旋转多维数据集,将用户操作转换为相同的matrix3d转换. 我想要的是当用户停止交互时从css开始的旋转多维数据集,从用户离开的地方开始.通过获取多维数据集的transform matrix3d值并使用乘法来 ..
发布时间:2020-05-06 10:29:21 前端开发

Gimbal Lock它是如何发生的?

所以我在网上搜索,我在想象如何发生 万向节锁的问题。根据我所看到的情况,当两个或更多的坐标轴对齐失去一定的自由度时,会发生这种情况,但我无法想象坐标轴将如何对齐? I意思是,当我围绕x轴旋转一个对象(例如)时,y轴和z轴不会随着X轴旋转而保持垂直吗?他们如何对齐?同样,每当我围绕Y轴或Z轴旋转,另一个2轴一起旋转,并保持垂直不是吗? 为了更清晰地看到我有什么问题想象,检查这个视频。 ..
发布时间:2018-05-25 19:26:46 其他开发