lhs | 左側のクォータニオン |
rhs | 右側のクォータニオン |
lhs
と rhs
の回転を組合わせます。
lhs
* rhs
の積の値で回転させることは、lhs
を最初に、それから rhs
というように 2 つの回転を順番に行うことと同じです。つまり、回転は、非可換性で、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); } } }