Quaternion — Aspose.3D FOSS for Java

Example

Quaternion 回転に使用される単位クォータニオンを表します。ジンバルロックを回避し、姿勢間のスムーズな補間を提供します。The Transform class は回転を a として格納します。 Quaternion 経由でアクセス可能 getRotation() / setRotation().

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Quaternion()単位クォータニオン (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)4つの成分から構築

公開フィールド

Quaternion 使用します 公開フィールド コンポーネントアクセス用(getter/setter メソッドではなく):

ExampleExampleExampleExample
wdoubleq.wスカラー(実数)部
xdoubleq.xベクトル部の X 成分
ydoubleq.yベクトル部の Y 成分
zdoubleq.zベクトル部分の Z 成分

計算プロパティ

ExampleExampleExampleExample
lengthdoublegetLength()クォータニオンの大きさ(次のようであるはずです 1.0 単位クォータニオンの場合)

静的フィールド

ExampleExampleExample
IDENTITYQuaternion恒等クォータニオン (1, 0, 0, 0) – 回転なし

静的メソッド

Example戻り値の型Example
Quaternion.fromEuler(double x, double y, double z)Quaternionオイラー角(度)からクォータニオンを作成する
Quaternion.fromAngleAxis(double angle, Vector3 axis)Quaternion角度(ラジアン)と回転軸からクォータニオンを作成する

インスタンスメソッド

Example戻り値の型Example
normalize()Quaternion単位長さのコピーを返す
conjugate()Quaternion共役(ベクトル部分が符号反転したもの)を返す
inverse()Quaternion乗法的逆元を返します
toEulerAngles()Vector3度単位のオイラー角に変換します
toMatrix()Matrix44x4回転行列に変換します

Example

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.*;

Scene scene = new Scene();
Node node = scene.getRootNode().createChildNode("rotated");

// Create from Euler angles (degrees)
Quaternion q = Quaternion.fromEuler(0.0, 90.0, 0.0);
node.getTransform().setRotation(q);

// Read back as Euler
Vector3 euler = node.getTransform().getEulerAngles();
System.out.println(euler);   // approximately (0, 90, 0)

// Create from angle-axis
Quaternion q2 = Quaternion.fromAngleAxis(Math.toRadians(45), Vector3.UNIT_Y);
node.getTransform().setRotation(q2);

// Combine rotations via multiply
Quaternion start = Quaternion.IDENTITY;
Quaternion end = Quaternion.fromEuler(0.0, 180.0, 0.0);
Quaternion combined = Quaternion.multiply(start, end);

参照

 日本語