美文网首页
iOS SceneKit欧拉角转四元数

iOS SceneKit欧拉角转四元数

作者: pokeey | 来源:发表于2018-07-16 17:08 被阅读0次

使用欧拉角

    self.shipNode.eulerAngles = SCNVector3Make(pitch, -yaw, -roll);

使用欧拉角会造成万向锁,转成四元数就没有问题了

    float fCosHRoll = cos(-roll * .5f);
    float fSinHRoll = sin(-roll * .5f);
    float fCosHPitch = cos(pitch * .5f);
    float fSinHPitch = sin(pitch * .5f);
    float fCosHYaw = cos(-yaw * .5f);
    float fSinHYaw = sin(-yaw * .5f);
 
    float w = fCosHRoll * fCosHPitch * fCosHYaw + fSinHRoll * fSinHPitch * fSinHYaw;
    float x = fCosHRoll * fSinHPitch * fCosHYaw + fSinHRoll * fCosHPitch * fSinHYaw;
    float y = fCosHRoll * fCosHPitch * fSinHYaw - fSinHRoll * fSinHPitch * fCosHYaw;
    float z = fSinHRoll * fCosHPitch * fCosHYaw - fCosHRoll * fSinHPitch * fSinHYaw;
 
    
    self.shipNode.orientation = SCNVector4Make(x, y, z,w);

相关文章

  • iOS SceneKit欧拉角转四元数

    使用欧拉角 使用欧拉角会造成万向锁,转成四元数就没有问题了

  • iOS原生3D渲染--SceneKit框架学习笔记

    1、ios 3D引擎 SceneKit 开发(1) --起始篇 2、ios 3D引擎 SceneKit 开发(2)...

  • 机器臂matlab篇

    1.Matlab ——旋转矩阵,四元数,欧拉角之间的转换 matlab练习程序(旋转矩阵、欧拉角、四元数互转) 2...

  • ios - 3D

    SceneKit iOS - SceneKit显示与交互3D建模(一)https://yiweifen.com/h...

  • UE4 三种旋转(二)

    UE4 三种旋转(二) UE4 中旋转操作常用的方式:欧拉角、四元数和旋转矩阵。 欧拉角 四元数 利用四元数进行旋...

  • Cocos 3.x 四元数 rotateAroundLocal

    一、欧拉角 如何通俗地解释欧拉角?之后为何要引入四元数?[https://www.zhihu.com/questi...

  • 学习笔记2

    欧拉角和四元数 笔记主要摘自下列博文和回答中 如何通俗地解释欧拉角?之后为何要引入四元数? - 知乎 【Unity...

  • unity-四元数

    什么是四元数? 欧拉角和四元数,都是表示物体旋转的。但欧拉角有个万向节死锁的问题,为了解决这个问题,因此引入了四元...

  • 四元数 欧拉角

    关于四元数和欧拉角的一段引用 原文链接 That rotation though is still a quate...

  • iOS - SceneKit显示与交互3D建模(二)

    上篇文章iOS - SceneKit显示与交互3D建模(一)中我们介绍了sceneKit的简单使用,还提到一个需求...

网友评论

      本文标题:iOS SceneKit欧拉角转四元数

      本文链接:https://www.haomeiwen.com/subject/ngbbpftx.html