Unity 利用Quaternion.LookRotation API 将旋转矩阵转换成四元数
来源:互联网 发布:下载xlsx软件 编辑:程序博客网 时间:2024/05/16 02:07
Quaternion.LookRotation
- private staticQuaternion QuaternionLookRotation(Vector3 forward,Vector3 up)
- {
- forward.Normalize();
- Vector3 vector= Vector3.Normalize(forward);
- Vector3 vector2= Vector3.Normalize(Vector3.Cross(up, vector));
- Vector3 vector3= Vector3.Cross(vector, vector2);
- var m00= vector2.x;
- var m01= vector2.y;
- var m02= vector2.z;
- var m10= vector3.x;
- var m11= vector3.y;
- var m12= vector3.z;
- var m20= vector.x;
- var m21= vector.y;
- var m22= vector.z;
- float num8= (m00+ m11)+ m22;
- var quaternion= newQuaternion();
- if(num8 >0f)
- {
- var num= (float)Math.Sqrt(num8+ 1f);
- quaternion.w= num *0.5f;
- num =0.5f / num;
- quaternion.x= (m12- m21)* num;
- quaternion.y= (m20- m02)* num;
- quaternion.z= (m01- m10)* num;
- return quaternion;
- }
- if((m00 >= m11)&& (m00>= m22))
- {
- var num7= (float)Math.Sqrt(((1f+ m00)- m11)- m22);
- var num4= 0.5f/ num7;
- quaternion.x= 0.5f* num7;
- quaternion.y= (m01+ m10)* num4;
- quaternion.z= (m02+ m20)* num4;
- quaternion.w= (m12- m21)* num4;
- return quaternion;
- }
- if(m11 > m22)
- {
- var num6= (float)Math.Sqrt(((1f+ m11)- m00)- m22);
- var num3= 0.5f/ num6;
- quaternion.x= (m10+ m01)* num3;
- quaternion.y= 0.5f* num6;
- quaternion.z= (m21+ m12)* num3;
- quaternion.w= (m20- m02)* num3;
- return quaternion;
- }
- var num5= (float)Math.Sqrt(((1f+ m22)- m00)- m11);
- var num2= 0.5f/ num5;
- quaternion.x= (m20+ m02)* num2;
- quaternion.y= (m21+ m12)* num2;
- quaternion.z= 0.5f* num5;
- quaternion.w= (m01- m10)* num2;
- return quaternion;
- }
0 0
- Unity 利用Quaternion.LookRotation API 将旋转矩阵转换成四元数
- Quaternion.LookRotation 注视旋转
- [Unity 3D] Quaternion.LookRotation
- [Unity 3D] Quaternion.LookRotation
- Unity3D:详解注视旋转(Quaternion.LookRotation)
- Quaternion.LookRotation
- Quaternion.LookRotation
- Quaternion.LookRotation
- unity3d Quaternion.LookRotation 控制车载机抢旋转
- UnityEngine.Quaternion.LookRotation详解
- UnityEngine.Quaternion.LookRotation详解
- 从Quaternion.LookRotation()和Quaternion.AngleAxis()开始
- Transfor.LookAt与Quaternion.LookRotation
- Unity3d中Quaternion.LookRotation使用方法
- transform.LookAt与Quaternion.LookRotation
- 面向组件编程之Unity 11.Quaternion.LookRotation 转自lijing_hi
- 【Unity技巧】四元数(Quaternion)和旋转
- 【Unity技巧】四元数(Quaternion)和旋转
- ecshop 结构
- linux 下安装飞鸽
- 自定义标签 taglib的使用
- 在new与delete之间
- LINUX下的REALVNC部署方法(全)
- Unity 利用Quaternion.LookRotation API 将旋转矩阵转换成四元数
- vector<IplImage*>类型时push_back问题
- redhat 6设置CentOS的yum源
- Android library projects cannot be launched 问题解决方法
- LRU cache的简单实现
- Hibernate中inverse属性与cascade属性
- 解决jQuery $.getJSON() 传递参数中文乱码问题
- HashMap / Hashtable / LinkedHashMap / TreeMap的区别
- c++11学习笔记之auto