Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 es una matriz de doble precisión 4x4 utilizada para transformaciones afines en espacio 3D. Se devuelve por Transform.getTransformMatrix() y GlobalTransform.getTransformMatrix(), y puede construirse a partir de descomposiciones de traslación, rotación y escala (TRS).

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Construye una matriz identidad
Matrix4(double m00, double m01, ... double m33)Construye a partir de 16 elementos individuales (por filas)

Campos estáticos

ExampleExampleExample
IDENTITYMatrix4La matriz identidad 4x4

Campos públicos (Acceso a elementos)

Matrix4 utiliza campos públicos para el acceso a elementos: m00, m01, … m33 (16 campos en total, disposición por filas).

Patrón de campoExampleExample
m00m33doubleElementos individuales de la matriz como campos públicos. Acceda como mat.m00, mat.m01, etc.

Los componentes de traslación están en la última columna: m03 (X), m13 (Y), m23 (Z).

Example

ExampleTipo de retornoExample
multiply(Matrix4 other)Matrix4Multiplicación de matrices; devuelve una nueva matriz
inverse()Matrix4Devuelve la matriz inversa
transpose()Matrix4Devuelve la matriz transpuesta
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanBoceto: siempre devuelve false. Destinado a descomponer la matriz en componentes TRS, pero aún no implementado.
determinant()doubleDevuelve el determinante de la matriz
transformPoint(Vector3 point)Vector3Transforma un punto (aplica traslación completa + rotación + escala)
transformDirection(Vector3 direction)Vector3Transforma un vector de dirección (aplica rotación + escala, ignora la traslación)

Métodos estáticos

ExampleTipo de retornoExample
Matrix4.translate(Vector3 t)Matrix4Crea una matriz de traslación
Matrix4.translate(double x, double y, double z)Matrix4Crea una matriz de traslación a partir de componentes
Matrix4.scale(Vector3 s)Matrix4Crea una matriz de escala
Matrix4.scale(double x, double y, double z)Matrix4Crea una matriz de escala a partir de componentes
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Crea una matriz de rotación a partir de un cuaternión

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);

Ver también

 Español