Unity旋转值Quaternion交换旋转轴
最近项目上用到一款AR眼镜,其陀螺仪的给出的旋转值与预期有差异。如戴上眼镜左右转动头部时,视角却是沿着脸部朝前的轴旋转的。经过整理发现陀螺仪与Unity相机各轴正确对应关系如下:
x(陀)->-x(相),y(陀)->-z(相),z(陀)->-y(相)。
那么,怎么变换呢。
最简单直接的方式是这样的,不过这种方式是错误的,达不到想要的效果。
Vector3 angle = gyro.attitude.eulerAngles;
camera.transform.localRotation = Quaternion.Euler(new Vector3(-angle.x, -angle.z, -angle.y));
正确的方式
Quaternion output;
output.x = -gyro.attitude.x;
output.y = -gyro.attitude.z;
output.z = -gyro.attitude.y;
output.w = gyro.attitude.w;camera.transform.localRotation = output;
Unity旋转值Quaternion交换旋转轴相关推荐
- Unity 旋转欧拉角及万向锁问题
先说明unity 3D欧拉角的旋转顺序(父子关系)是y-x-z.即旋转y轴x和z轴都变,旋转x轴只有z轴变化,旋转z轴其它轴不变. 模型坐标系 又称物体坐标系. 与特定的物体关联,每个物体都有自己特定 ...
- ThreeJS - 直接设置Fbx模型的某个关节的位移和旋转值
1 在ThreeJS中直接设置Fbx模型的某个关节的位移和旋转值 示例代码如下: fbxModel.traverse(function (child) {// 如果子节点为骨骼if(child.isB ...
- c语言怎么将两个整数变量值交换,C语言如何利用异或进行两个值的交换详解
C语言异或运算 位运算符家族中,最常用的,某过于异或运算符. 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例 ...
- unity初识之Quaternion和旋转
与之前做2d游戏不一样,3d游戏中,角度变换,用四元数来表示和计算 什么是欧拉角 四元数 欧拉旋转 一个女生的文章 unity对于四元数的定义 在学习3d数学或者学习shader的书籍里,都会有一章是 ...
- Unity旋转问题的总结
1.物体的直接旋转 transform.Rotate();这个函数是在当前状态下网某个方向旋转.并且这里可以设置为世界空间或者自身空间. transform.rotation;这里可以通过直接定义一个 ...
- Unity旋转之四元数(开关车门,第一人称控制器)
在Unity中,常用的旋转方式有三种,分别是transform.Rotate(参数),欧拉角旋转,和今天我们要聊的四元数.虽然四元数理解起来不如欧拉角那么直观,但是它却能很好的避免了万向锁问题,而且在 ...
- unity 旋转欧拉角 万向锁 解释
万向锁 一直困惑我很久....原因出在这里,我以为欧拉角旋转是以模型坐标(齐次坐标系)为旋转轴.问题就来了,无论旋转那个轴,其它两个轴也会相应的变化,下面看图: 根据上面的说明两个旋转面(圆圈)怎么会 ...
- Unity旋转之左手坐标系
几何坐标系分为左手坐标系和右手坐标系,分别适用左手法则和右手法则. 左手坐标系和右手坐标系 上图分别是左手坐标系和右手坐标系 二维坐标系我们习惯X轴朝右,Y轴向上,所以左手坐标系和右手坐标系也可以是 ...
- python中交换a和b的值_交换A和B之间的元素以获得和相等
如果有这样的互换,那么两个值之间的差值必须是总和差的一半.交换两个值意味着两个列表的总和将改变,一个上升,另一个下降,以相同的数量.这两个变化必须加上掉期前的和之间的差值,且两个总和都会以相同的值(^ ...
最新文章
- PHP上传文件函数move_upload,如何使用php中move_uploaded_file函数
- 基于轮廓调整的SOTA实例分割方法,速度达32.3fps | CVPR 2020
- UltraEdit-64中文安装
- 如何帮助企业优化商业模式?看精益数据分析的“欺”与“破”
- Eclipse报错:!!MESSAGE Job found still running.......
- android静态方法如何测试,android – 如何使用mock()和spy()测试静态方法
- Docker查看关联容器的卷宗在本机的存储位置
- 计算机目标导学方法,计算机教学计划
- phpcmsV9 “来源” 的添加与管理
- Python程序员面试必备常用问题答案及解析
- life words
- C# 文件读写系列二
- 用Java开发手机Andriod系统Apk软件
- SpringCloud 单Eureka简单例子consumer-provider
- 计算机软件工作室起名'',游戏工作室起名大全
- 女性内分泌失调的8种症状
- linux服务器被挖矿的解决办法
- vue使用过滤器,文字超出显示省略号
- 玩转步进电机控制,自定义中文编程
- /etc/init.d/sshd配置SSHD路径忘记修改导致启动失败
热门文章
- 1063: 判断三角形的形状(3级)输入三角型的三条边,判断三角形的形状。
- 华为轮值CEO徐直军全面剖析华为
- c语言作业i love gplt,Jmete 入门一
- PETS 5 五级听力介绍备考注意事项
- 2021-08-12 Android APP 保持屏幕常亮和取消屏幕常亮方法
- 0004-python第三天:基本数据类型
- 【转】如何管理PDF书签:Foxit、PDF XChange、PDF补丁丁
- python薪资核算-Python解释器的环境中,用于表示上一次运算结果的特殊变量为( )...
- 剑指offer面试题(41-50)——java实现
- 基于Spark的FPGrowth(关联规则算法)