Quaternion — Aspose.3D FOSS for Java

Example

Quaternion 회전을 위해 사용되는 단위 사원수를 나타냅니다. 짐벌 락을 방지하고 방향 사이의 부드러운 보간을 제공합니다. 그 Transform 클래스는 회전을 ~ 로 저장합니다 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)네 개의 구성 요소로부터 생성합니다

공개 필드

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)QuaternionEuler 각도(도)를 사용해 쿼터니언을 생성합니다
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);

참고

 한국어