我正在尝试使用四元数旋转矢量,Quaternion.Euler(x,y,z)
并按预期工作,但问题是,旋转是相对于世界坐标系完成的,而我想相对于矢量本身旋转。
所以我想把坐标系作为
z = vector's direction,
x = vector's perpendicular (any)
y = world y.
所以我的代码是这样的:
myVector = euler * myVector;
但是我需要
myVector = localEuler * myVector;
所以我需要计算和localEuler
的函数。euler
myVector
我怎样才能做到这一点 ?
谢谢你的帮助 !
我试过 :
localEuler = Quaternion.Euler(euler.x * myVector.x ,euler.y * myVector.y ,euler.z * myVector.z );
它没有用。我想这是点积。
附言
Transform
我认为这有一个s:的内置代码Transform.RotateAround()
,但我需要用 a 来做Vector3
,而不是 a Transform
。