lhs | 左侧四元数。 |
rhs | 右侧四元数。 |
将旋转 lhs
和 rhs
组合到一起。
Rotating by the product lhs
* rhs
is the same as applying the two rotations in sequence: lhs
first and then rhs
, relative to the reference frame resulting from lhs
rotation. Note that this means rotations are not commutative, so lhs
* rhs
does not give the same rotation as 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); } } }