public static FromRotationAxis ( Vector3 axis, float angle ) : |
||
axis | Vector3 | |
angle | float | |
Résultat |
public static void RotateAround(ref Vector3 vector, ref Vector3 axis, float angle, out Vector3 result) { // rotate into world space var quaternion = Quaternion.FromRotationAxis(axis, 0); Quaternion.Conjugate(ref quaternion, out quaternion); Vector3.Transform(ref vector, ref quaternion, out result); // rotate back to vector space Quaternion.FromRotationAxis(ref axis, angle, out quaternion); Vector3.Transform(ref result, ref quaternion, out result); }
public Vector3 RotateAround(Vector3 axis, float angle) { // rotate into world space var quaternion = Quaternion.FromRotationAxis(axis, 0); Quaternion.Conjugate(ref quaternion, out quaternion); var worldSpaceVector = this.Transform(quaternion); // rotate back to vector space Quaternion.FromRotationAxis(ref axis, angle, out quaternion); Vector3.Transform(ref worldSpaceVector, ref quaternion, out worldSpaceVector); return(worldSpaceVector); }