lhs | 左侧四元数。 |
rhs | 右侧四元数。 |
将旋转 lhs
和 rhs
组合到一起。
旋转 lhs
* rhs
的乘积与按以下顺序应用两个旋转的效果相同:先应用 lhs
,然后相对于 lhs
旋转生成的参考帧应用 /rhs/。注意,这意味着旋转不满足交换律,因此 lhs * rhs 产生的旋转效果不同于 rhs * lhs 的旋转效果。
using UnityEngine; using System.Collections;
public class Example2 : MonoBehaviour { float rotateSpeed = 90;
// Applies a rotation of 90 degrees per second around the Y axis void Update() { float angle = rotateSpeed * Time.deltaTime; transform.rotation *= Quaternion.AngleAxis(angle, Vector3.up); } }
对点 point
应用旋转 /rotation/。
using UnityEngine; using System.Collections;
public class Example2 : MonoBehaviour { private void Start() { //Creates an array of three points forming a triangle Vector3[] points = new Vector3[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
//Creates a Quaternion rotation of 5 degrees around the Z axis Quaternion rotation = Quaternion.AngleAxis(5, Vector3.forward);
//Loop through the array of Vector3s and apply the rotation for (int n = 0; n < points.Length; n++) { Vector3 rotatedPoint = rotation * points[n]; //Output the new rotation values Debug.Log("Point " + n + " rotated: " + rotatedPoint); } } }