关于Unity3D的向量坐标计算问题,四元数和向量相乘?Quaternion.Euler(0,90,0)*Vector3(0.0,0.0,-10)为什么可以得出一个以原点为中心,距离原点10单位,绕y轴旋转90度的新向量?
问题描述:
关于Unity3D的向量坐标计算问题,四元数和向量相乘?
Quaternion.Euler(0,90,0)*Vector3(0.0,0.0,-10)
为什么可以得出一个以原点为中心,距离原点10单位,绕y轴旋转90度的新向量?
答
Quaternion.Euler(x,y,z) 返回一个绕x轴旋转x度再绕y轴旋转y度再绕z轴旋转z度的Quaternion,因此Quaternion.Euler(0,90,0)返回一个绕y轴旋转90度的旋转操作.
Quaternion作用于Vector3的右乘操作(*)返回一个将向量做旋转操作后的向量.
因此Quaternion.Euler(0,90,0)*Vector3(0.0,0.0,-10)表示将向量Vector3(0.0,0.0,-10)做绕y轴90度旋转后的结果.因该等于Vector3(-10,0,0).