quaternions

    3热度

    3回答

    我正在使用iOS SceneKit框架构建360视频查看器。 我想使用UIPanGestureRecognizer来控制相机的方向。 SCNNode■找几个属性,我们可以使用,以指定它们的旋转:rotation(旋转矩阵),orientation(四元),eulerAngles(每个轴的角度)。 我读过的一切都说避免使用欧拉角度以避免gimbal lock。 我想使用四元数有几个原因,我不会在这里

    -1热度

    2回答

    假设如果我有两个向量A和B以及一个轴(归一化向量),我如何找到A和B之间的角度,使得旋转后的A(轴,角)和B之间的角度差与给定的轴是0.在旋转之后,A不必等于B.基本上我想找到A和B在指定平面上的角度差。 注意:这与找到2个向量之间的最短角度不同,因为轴不是A和B之间的叉积。因此,技术here(和许多SO答案)不适用。这需要在3D中工作。

    0热度

    1回答

    我已经看过三个单独的公式,虽然他们大多是相同的,但我想知道为什么他们的符号不同。为了说明,这里的公式: 共同守则 float xSin = Math::Sinr (x/2); float xCos = Math::cosr (x/2); float ySin = Math::Sinr (y/2); float yCos = Math::Cosr (y/2); float zSin =

    0热度

    1回答

    我的目标是让对象控制像太空船一样,我的理解是我需要使用四元数来实现这个目标。对于开始我试图让我的立方体开始旋转至左为我按一个键,这是该代码: if(controls.pressingA === true) { //var pLocal = new THREE.Vector3(0, 0, -1); //var pWorld = pLocal.applyMatrix4(me.ma

    0热度

    1回答

    从跟踪系统中,我可以访问与摄像头有关的颈部4x4变换矩阵(NeckWRTCameraMatrix)。 我需要在three.js中为颈部骨骼添加动画,该骨骼作为父母的其他骨骼,但是以脖子的旋转与相机有关的方式。 var m = new THREE.Matrix4(); m.fromArray(NeckWRTCameraMatrix); var quaternion = new THREE.Qu

    1热度

    1回答

    我正在WPF 3D(使用C#)开发控制器,以便能够使用Move()和函数轻松移动和旋转ProjectionCamera。我的控制器将成为Behavior<ProjectionCamera>,可以连接到ProjectionCamera。为了初始化控制器,我想通过查看其当前的Up和Forward -vectors并将它们与默认摄像机方向(Up = [0 1 0],Forward = [0 0 -1])

    3热度

    1回答

    我使用两种方法在3D空间中旋转点(矢量)p0。我有以黑色显示的世界坐标系(WCS)和以蓝色显示的坐标系1(CS1),其定义为围绕z轴旋转10度。我首先通过计算点积来计算WCS和CS1之间的方向余弦。现在我可以使用dcm2quat和dcm2angle轻松计算四元数和欧拉角。然后,我可以使用四元数和欧拉角来旋转点p0。 p0 = [1 0 0]; % point in world CS ijk =

    -1热度

    1回答

    我一直在写检查欧拉角和四元数的代码,但它不正确地将运行(或者也许我不明白的旋转): #include <stdio.h> #include <math.h> #define DR2D (180/M_PI) #define DD2R (M_PI/180) int main(int argc, char** argv) { float x, y, z; x = 0

    0热度

    1回答

    我一直在尝试一段时间,并找不出为什么它不工作。 我有一个PathHolder父项中的空对象的简单路径,它跟随该路径并顺利旋转以面对它将要前进的点。我的问题是,有一半的时间,角色对象并没有一直旋转,而是仍然朝着应有的方向前进。 另一个奇怪的是,将点移近会减少物体的旋转量,并且进一步移动它会使角色面对点。但是,在任何情况下工作路径都需要灵活,所以我不能让距离影响旋转。 理想情况下,我希望角色可以完全顺

    0热度

    1回答

    假设我有一个查看飞机vn,方向为q1,场景un中的飞机的方向为q2。 q1和q2是四元数。 我该如何找到未知点ux, uy, uz,使得proj_u_plane_vn等于已知点vx, vy, 0? 问题找到相对方向q2-q1会更简单吗? 现在我试图用i,j和k值来做这件事,但它看起来像是矫枉过正,我没有看到答案弹出没有做反向触发,不是我会介意的,但我正在寻找更优雅的解决方案。 在此先感谢。 :)