当前位置: 首页 > news >正文

分析网站的关键词网页版视频怎么下载

分析网站的关键词,网页版视频怎么下载,app域名在哪里注册,北京王府井房价多少钱一平目录 1 三维空间里的旋转与欧拉角#xff0c;四元数 1.1 欧拉角比较符合直观 1.2 四元数 1.3 下面是欧拉角和四元数的一些参考文章 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 2.2 使用quaternion四元数,w,x,y,z 2.3 使用quaternion四元数,类 Vector3.zero 这种…目录 1 三维空间里的旋转与欧拉角四元数 1.1 欧拉角比较符合直观 1.2 四元数 1.3 下面是欧拉角和四元数的一些参考文章 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 2.2 使用quaternion四元数,w,x,y,z 2.3 使用quaternion四元数,类 Vector3.zero 这种固定坐标了固定的旋转 2.4 利用unity编辑器在unity里通过看向一个物体而实现旋转 2.5 互转 2.5.1 使用Euler转化为quaternion四元数 2.5.2 使用quaternion四元数转化为Euler角 3 逐一测试旋转效果 3.1 直接使用Euler角Vector3(0,30,0)来旋转 3.2   直接使用quaternion四元数旋转 3.3 将quaternion四元数转化为Euler角后旋转 3.4 用欧拉角转成四元数后旋转 3.5 直接用Quaternion.AngleAxis *Quaternion.AngleAxis 实现同时绕着多轴旋转 3.6 直接用Quaternion.AngleAxis *Quaternion.AngleAxis 实现同时绕着多轴旋转 3.7 下面是完整的测试草稿代码 4 未解决的问题 4.1 不了解为啥上面有的时候可以持续旋转有时候只能旋转1次 4.2 关于下面的匀速代码 5 另外一种匀速代码 1 三维空间里的旋转与欧拉角四元数 欧拉角四元数都是用来表达三维空间里的旋转的 1.1 欧拉角比较符合直观 欧拉角与四元数-CSDN博客文章浏览阅读1.6w次点赞29次收藏127次。一、欧拉角静态的定义对于在三维空间里的一个参考系任何坐标系的取向都可以用三个欧拉角来表现。参考系又称为实验室参考系是静止不动的。而坐标系则固定于刚体随着刚体的旋转而旋转。如图所示。设定xyz-轴为参考系的参考轴。称xy-平面与XY-平面的相交为交点线用英文字母N代表。zxz顺规的欧拉角可以静态地这样定义α\alphaα 是 x-轴与交点线的夹角β\betaβ 是z-..._欧拉角和四元数的区别https://blog.csdn.net/ViatorSun/article/details/102713679 unity里的E旋转很明显表示方式就是欧拉角的3种旋转轴 1.2 四元数 我们用复数两个数字可以表示二维上的旋转那么是不是用三个数字三元数可以表示三维空间中的旋转呢数学家告诉我们不是的要表示三维空间中的旋转我们得用四元数。unity 里不只支持欧拉角也支持用 四元数表达三维空间里的旋转 四元数的基本数学方程为 : q cos (a/2) i(x * sin(a/2)) j(y * sin(a/2)) k(z * sin(a/2)) 其中a表示旋转角度(x,y,z)表示旋转轴。 四元数的定义q [w,x,y,z]其中w是实部当然也有资料会把四元数写成q [x,y,z,w]其中w是实部。这都是正确的 注意四元数q有q^2 1. 若想要某个物体(i,j,k)绕着a(x,y,z)轴旋转θ度。 这个旋转用四元数表示就是q  ((x,y,z)sinθ/2, cosθ/2) 该物体用四元数表示为p ((j,j,k),0)。 那么旋转之后的物体的点为p′ 则 通过某个公式能算出p′的值。 Quaternion.AngleAxis (30.0f, transform.right) 这个方法的意思是创建一个四元数表示饶transform.right轴旋转30度。 四元数可以用*操作符来进行多个旋转操作比如 transform.rotation Quaternion.AngleAxis (30.0f, transform.right) * Quaternion.AngleAxis (30.0f,transform.up); 也可以用 Quaternion.Euler 欧拉旋转表示四元数旋转比如 transform.rotation Quaternion.Euler (new Vector3 (0.0f, 30.0f, 20.0f)) * Quaternion.AngleAxis (30.0f, transform.forward); 如果想对一个向量做旋转做法如下 Vector3 someVector new Vector3 (1.0f,1.0f,1.0f); Vector3 newVector Quaternion.AngleAxis(90, Vector3.up) * someVector; Quaternion.LookRotation(某个向量v) 使得物体的朝向和v一致 利用四元数做差值Quaternion.Slerp旋转 transform.rotation Quaternion.Slerp (transform.rotation,Quaternion.Euler (new Vector3 (0.0f, 30.0f, 0.0f)) * Quaternion.AngleAxis (30.0f, transform.forward),Time.deltaTime * 0.33f); 1.3 下面是欧拉角和四元数的一些参考文章 https://zhuanlan.zhihu.com/p/267359507https://zhuanlan.zhihu.com/p/267359507 https://zhuanlan.zhihu.com/p/513687673https://zhuanlan.zhihu.com/p/513687673 https://www.zhihu.com/question/23005815https://www.zhihu.com/question/23005815 https://zhuanlan.zhihu.com/p/27471300https://zhuanlan.zhihu.com/p/27471300 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 Vector3 rotate1 new Vector3(0,30,0);在unity里表示绕着Y轴旋转30度 2.2 使用quaternion四元数,w,x,y,z 其中W是实数部分xyz是虚数部分Quaternion quaternion1 new Quaternion(0,0,0,0); Quaternion.AngleAxis (30.0f, transform.right) 2.3 使用quaternion四元数,类 Vector3.zero 这种固定坐标了固定的旋转 Quaternion quaternion2 Quaternion.identity; 2.4 利用unity编辑器在unity里通过看向一个物体而实现旋转 quaternion2 Quaternion.LookRotation(new Vector3(0,0,0)); 2.5 互转 2.5.1 使用Euler转化为quaternion四元数 quaternion2 Quaternion.Euler(rotate1); 2.5.2 使用quaternion四元数转化为Euler角 rotate2 quaternion2.eulerAngles; using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){//使用euler欧拉角旋转Vector3 rotate1 new Vector3(0,30,0);//使用quaternion四元数,xyzw?Quaternion quaternion1 new Quaternion(0,0,0,0);//使用quaternion四元数,类 Vector3.zero 这种固定坐标了固定的旋转Quaternion quaternion2 Quaternion.identity;//利用unity编辑器在unity里通过看向一个物体而实现旋转//重新给quaternion2赋值quaternion2 Quaternion.LookRotation(new Vector3(0,0,0));///互转//使用Euler转化为quaternion四元数quaternion2 Quaternion.Euler(rotate1);//使用quaternion四元数转化为Euler角//给rotate2赋值,需要先定义rotate2Vector3 rotate2 new Vector3(0,0,0);rotate2 quaternion2.eulerAngles;}// Update is called once per framevoid Update(){} }3 逐一测试旋转效果 3.1 直接使用Euler角Vector3(0,30,0)来旋转 Vector3 rotate1 new Vector3(0,30,0);     this.transform.Rotate(rotate1);   using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//使用euler欧拉角旋转Vector3 rotate1 new Vector3(0,30,0);this.transform.Rotate(rotate1); } }3.2   直接使用quaternion四元数旋转 w,xyz ,其中w是实数部分xyz都是*i的虚数部分比如new Quaternion(0.866f,0,0,0.5f);new Quaternion(0,0,0,0);Quaternion.identity; //quaternion1不能持续旋转这个方法this.transform.Rotate(quaternion1);    //只能用this.transform.rotation 旋转到指定位置而不能持续旋转    this.transform.rotation quaternion1; using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//使用euler欧拉角旋转//Vector3 rotate1 new Vector3(0,30,0);//使用quaternion四元数,w,xyz ,其中w是实数部分xyz都是*i的虚数部分Quaternion quaternion1 new Quaternion(0.866f,0,0,0.5f); //quaternion1不能持续旋转这个方法this.transform.Rotate(quaternion1); //只能用this.transform.rotation 旋转到指定位置而不能持续旋转this.transform.rotation quaternion1;} }3.3 将quaternion四元数转化为Euler角后旋转 quaternion1.eulerAngles 可以将quaternion四元数转化为Euler角rotate2 quaternion1.eulerAngles; Quaternion quaternion1 new Quaternion(0.866f,0,0,0.5f);     Vector3 rotate2 new Vector3(0,0,0);     rotate2 quaternion1.eulerAngles;     this.transform.Rotate(rotate2);   using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){Quaternion quaternion1 new Quaternion(0.866f,0,0,0.5f); Vector3 rotate2 new Vector3(0,0,0);rotate2 quaternion1.eulerAngles;this.transform.Rotate(rotate2); } }3.4 用欧拉角转成四元数后旋转 // 创建一个表示xx度旋转欧拉角然后转换为的四元数表示绕Y轴旋转     Quaternion rotate3 Quaternion.Euler(0, 45, 0);     // 假设你有一个现有的四元数     Quaternion originalQuaternion Quaternion.identity;     // 转换为30度旋转     Quaternion newQuaternion rotate3 * originalQuaternion;     // 应用到游戏对象     this.transform.rotation newQuaternion; using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){// 创建一个表示xx度旋转欧拉角然后转换为的四元数表示绕Y轴旋转Quaternion rotate3 Quaternion.Euler(0, 45, 0);// 假设你有一个现有的四元数Quaternion originalQuaternion Quaternion.identity;// 转换为30度旋转Quaternion newQuaternion rotate3 * originalQuaternion;// 应用到游戏对象this.transform.rotation newQuaternion;} }3.5 直接用Quaternion.AngleAxis *Quaternion.AngleAxis 实现同时绕着多轴旋转 this.transform.rotation Quaternion.AngleAxis (90.0f, transform.right)  *  Quaternion.AngleAxis (30.0f, transform.up);Quaternion.AngleAxis (90.0f, transform.right)    // 绕着right轴X轴旋转90Quaternion.AngleAxis (30.0f, transform.up)       // 绕着up轴y轴旋转30this.transform.rotation 可以实现连续旋转不知道为啥上面的只能转1次 using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){this.transform.rotation Quaternion.AngleAxis (90.0f, transform.right)  *  Quaternion.AngleAxis (30.0f, transform.up);} }3.6 直接用Quaternion.AngleAxis *Quaternion.AngleAxis 实现同时绕着多轴旋转 但是其中一个Quaternion 用欧拉角转化而来    this.transform.rotation Quaternion.Euler (new Vector3 (0.0f, 90.0f, 0.0f))   *  Quaternion.AngleAxis (30.0f, transform.up); using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){this.transform.rotation Quaternion.Euler (new Vector3 (0.0f, 90.0f, 0.0f)) * Quaternion.AngleAxis (30.0f, transform.up);} }3.7 下面是完整的测试草稿代码 如下 using System.Collections; using System.Collections.Generic; using UnityEngine;public class rotateTest1 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){//使用euler欧拉角旋转//Vector3 rotate1 new Vector3(0,30,0);//this.transform.Rotate(rotate1); //使用quaternion四元数,xyzw?//Quaternion quaternion1 new Quaternion(0,0,0,0);//使用quaternion四元数,类 Vector3.zero 这种固定坐标了固定的旋转//Quaternion quaternion2 Quaternion.identity;//利用unity编辑器在unity里通过看向一个物体而实现旋转//重新给quaternion2赋值// quaternion2 Quaternion.LookRotation(new Vector3(0,0,0));///互转//使用Euler转化为quaternion四元数//quaternion2 Quaternion.Euler(rotate1);//使用quaternion四元数转化为Euler角//给rotate2赋值,需要先定义rotate2//Vector3 rotate2 new Vector3(0,0,0);//rotate2 quaternion2.eulerAngles;}// Update is called once per framevoid Update(){//使用euler欧拉角旋转//Vector3 rotate1 new Vector3(0,30,0);//使用quaternion四元数,w,xyz ,其中w是实数部分xyz都是*i的虚数部分//Quaternion quaternion1 new Quaternion(0.866f,0,0,0.5f); //quaternion1不能持续旋转这个方法this.transform.Rotate(quaternion1); //只能用this.transform.rotation 旋转到指定位置而不能持续旋转//this.transform.rotation quaternion1;//Quaternion quaternion1 new Quaternion(0.866f,0,0,0.5f); //Vector3 rotate2 new Vector3(0,0,0);//rotate2 quaternion1.eulerAngles;//this.transform.Rotate(rotate2); // 创建一个表示xx度旋转欧拉角然后转换为的四元数表示绕Y轴旋转//Quaternion rotate3 Quaternion.Euler(0, 45, 0);// 假设你有一个现有的四元数//Quaternion originalQuaternion Quaternion.identity;// 转换为30度旋转//Quaternion newQuaternion rotate3 * originalQuaternion;// 应用到游戏对象//this.transform.rotation newQuaternion;// 多个四元数旋转操作相乘 *然后转换为的四元数//其中四元数也可以被替换为 欧拉角this.transform.rotation Quaternion.Euler (new Vector3 (0.0f, 90.0f, 0.0f)) * Quaternion.AngleAxis (30.0f, transform.up);} }4 未解决的问题 4.1 不了解为啥上面有的时候可以持续旋转有时候只能旋转1次 4.2 关于下面的匀速代码 不理解下面的匀速代码不理解匀速代码下为啥改速度没效果改轴也没效果 5 另外一种匀速代码 using UnityEngine;public class RotateObject : MonoBehaviour {// 旋转速度度/秒public float speed 30.0f; // 旋转轴public Vector3 axis Vector3.right; void Update(){// 计算旋转量//Time.deltaTime 是上一帧的时间可以实现不同机器的匀速播放效果float angle speed * Time.deltaTime;// 绕axis轴旋转objecttransform.Rotate(axis, angle);} }
http://www.dnsts.com.cn/news/118310.html

相关文章:

  • 龙岗网站 建设seo信科找片子有什么好的关键词推荐
  • 衡水网站建设套餐自建站网址
  • 免费网站开发合同范本做修车行业需要在哪个网站做推广
  • 数商云是干嘛的杭州seo首页优化软件
  • 大丰哪家专业做网站抚州建设公司网站
  • 网站建设十一要点湖北省建设银行网站6
  • 内蒙古建设住房与城乡厅官方网站在线查网站的ip地址
  • 聊城质量最好网站建设南宁网红景点
  • 谷歌网站怎么打不开合肥做网站123cms
  • 西安网站建设云阔百度数字人内部运营心法曝光
  • 网站开通wordpress linux 下载
  • 用visual做的网站常州专业网站建设公司咨询
  • 正规的网站制作电话百度推广怎么收费的
  • 城市建设网站调查问卷漯河网站建设 付永磊
  • google网站登录入口网站建设 东阿阿胶
  • 网站优化对企业有什么好处做网站听的纯音乐
  • 网站建设服务合同范本昆明开发
  • 媒体公司网站模板自媒体发布软件app
  • 网站建设及服务合同书南昌网站seo厂家
  • 大型网站seo方法做类似返利网的网站
  • 东营网站制作团队公司注册地址和办公地址
  • 建设网站和备案动漫设计公司
  • 工程造价建设信息网站做网站一年的维护费用是多少
  • 网站建设过程中服务器的搭建方式青岛路桥建设集团有限公司网站
  • 株洲网站制作公司网页设计属于什么行业类别
  • 淘宝网现状 网站建设如何做彩票网站代理
  • qq网站临时会话wordpress高级靶机
  • html5企业网站无锡电商网站设计
  • 东莞网站建设lhznkj网站建设费1万多入什么科目
  • 扬中网站建设怎么样兰州网站设计