今回は結構むずい クォータニオンの話です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestRotation : MonoBehaviour{ void Update() { //マウスをクリクしたらトルクをかける if (Input.GetMouseButtonDown(0)) { //リジッドボディをとってくる var cube = GetComponent<Rigidbody>(); // トルクの成分を定義 ではなくて //var torque = new Vector3(0f, 1f, 0f); // 角速度を定義する var omega = new Vector3(0f, 1f, 0f); var R = transform.rotation; var RI = Quaternion.Inverse(transform.rotation); // T = I * omega // T =Ir Id IrI * omega var Id = cube.inertiaTensor; var Ir = cube.inertiaTensorRotation; var IrI = Quaternion.Inverse(Ir); var torque = R * Ir * Vector3.Scale(Id, IrI * RI * omega); // トルクを与える関数を使用する cube.AddTorque(torque, ForceMode.Impulse); } } } |
The following two tabs change content below.
Keita N
最新記事 by Keita N (全て見る)
- 2024/1/13 ビットコインETFの取引開始:新たな時代の幕開け - 2024年1月13日
- 2024/1/5 日本ビジネスにおける変革の必要性とその方向性 - 2024年1月6日
- 2024/1/3 アメリカ債権ETFの見通しと最新動向 - 2024年1月3日