四元数untiy最常用的两种乘法:四元数乘四元数,四元数乘向量

调用四元数两种:一种是this.transform.rotation  一种是:quaternion

四元数常用API:quaternion.euler();//欧拉角转四元数

(理解:欧拉角就是平常我们说的30°,45°,66°.......的专业术语而已。欧拉角和四元数,矩阵都是控制旋转有关的东西,但难度等级是欧拉角<四元数<矩阵,一般来讲中等难度的四元数已经能解决unity中绝大部分的旋转问题了。那么欧拉角转四元数有什么用?因为四元数是非常晦涩难懂的,原理已经涉及到四维空间方面的东西了,如果要搞懂四元数要花费很大时间成本,所以untiy有了quaternion.euler()这个API。这个API就是:输入一个欧拉角,然后unity自动经过一系列内部复杂运算将欧拉角转成四元数。简单来讲:你只管输入,输入完直接拿结果就行,不用考虑中间怎么转换的)

1.四元数*四元数意义:将旋转效果组合

意思就是:quaternion.euler(0,0,10)*quaternion.euler(0,0,15)==quaternion.euler(0,0,25)

这,就是四元数*四元数效果

2.四元数*向量:表示将向量按照四元数表示的角度旋转

例如:vector3 a=quaternion.euler(0,0,10)*new vector3(0,0,30)//意思是将(0,0,30)这个向量绕z轴为定轴,顺时针旋转10°

一:四元数只能进行  *  运算,不能+-(这是四元数复杂的内部原理决定的,要深究会秃头的!)

二:为啥顺时针旋转10°?(正表示顺时针,负表示逆时针)

三:为啥绕z轴为定轴?(因为xy都是0,z轴是10,增加了10)(可以把四元数的 * 理解为 +的意思,虽然四元数不能 +  但是可以理解为 + 的意思)

你可能感兴趣的:(unity3d)