Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 є 4x4 матрицею подвійної точності, що використовується для афінних перетворень у 3D просторі. Вона повертається Transform.getTransformMatrix() і GlobalTransform.getTransformMatrix(), і може бути сконструйована з розкладень трансляції, обертання та масштабу (TRS).

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Створює одиничну матрицю
Matrix4(double m00, double m01, ... double m33)Створює з 16 окремих елементів (за рядковим порядком)

Статичні поля

ExampleExampleExample
IDENTITYMatrix44x4 одинична матриця

Публічні поля (доступ до елементів)

Matrix4 використовує публічні поля для доступу до елементів: m00, m01, … m33 (всього 16 полів, розташування у рядковому порядку).

Шаблон полівExampleExample
m00m33doubleОкремі елементи матриці як публічні поля. Доступ як mat.m00, mat.m01, тощо.

Компоненти трансляції розташовані в останньому стовпці: m03 (X), m13 (Y), m23 (Z).

Example

ExampleТип поверненняExample
multiply(Matrix4 other)Matrix4Множення матриць; повертає нову матрицю
inverse()Matrix4Повертає обернену матрицю
transpose()Matrix4Повертає транспоновану матрицю
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanЗаглушка: завжди повертає false. Призначено для розкладання матриці на компоненти TRS, але ще не реалізовано.
determinant()doubleПовертає детермінант матриці
transformPoint(Vector3 point)Vector3Трансформує точку (застосовує повний зсув + обертання + масштаб)
transformDirection(Vector3 direction)Vector3Трансформує вектор напрямку (застосовує обертання + масштаб, ігнорує зсув)

Статичні методи

ExampleТип поверненняExample
Matrix4.translate(Vector3 t)Matrix4Створює матрицю трансляції
Matrix4.translate(double x, double y, double z)Matrix4Створює матрицю трансляції з компонентів
Matrix4.scale(Vector3 s)Matrix4Створює матрицю масштабування
Matrix4.scale(double x, double y, double z)Matrix4Створює матрицю масштабування з компонентів
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Створює матрицю обертання з кватерніону

Example

import com.aspose.threed.*;

Scene scene = new Scene();
Node node = scene.getRootNode().createChildNode("box");
node.getTransform().setTranslation(1.0, 2.0, 3.0);
node.getTransform().setEulerAngles(0.0, 45.0, 0.0);

// Read the transform matrix
Matrix4 m = node.getTransform().getTransformMatrix();
System.out.println("Translation X: " + m.m03);   // 1.0

// Matrix multiplication
Matrix4 translate = Matrix4.translate(5.0, 0.0, 0.0);
Matrix4 scale = Matrix4.scale(2.0, 2.0, 2.0);
Matrix4 combined = translate.multiply(scale);

// Inverse
Matrix4 inv = m.inverse();

// Transform a point
Vector3 point = new Vector3(1.0, 0.0, 0.0);
Vector3 transformed = m.transformPoint(point);
System.out.println(transformed);

Див. також

 Українська