Matrix4
Inheritance: java.lang.Object
All Implemented Interfaces: com.aspose.threed.Struct, java.io.Serializable
public final class Matrix4 implements Struct<Matrix4>, Serializable
Реализация 4x4 матрицы. Пример:
Matrix4 mat = Matrix4.rotateFromEuler(90, 0, 0);
Matrix4 mat2 = Matrix4.translate(0, 10, -50);
Matrix4 transform = Matrix4.mul(mat2, mat);
Vector4 pos = new Vector4(10, 9, 0, 1);
Vector4 transformed = Matrix4.mul(transform, pos);
Конструкторы
| Конструктор | Описание |
|---|---|
| Matrix4(Vector4 r0, Vector4 r1, Vector4 r2, Vector4 r3) | Создаёт матрицу из 4 строк. |
| Matrix4(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) | Инициализирует новый экземпляр Matrix4 структуры. |
| Matrix4(FMatrix4 m) | Создаёт Matrix4 из экземпляра FMatrix4 |
| Matrix4(double[] m) | Инициализирует новый экземпляр Matrix4 структуры. |
| Matrix4() |
Поля
| Поле | Описание |
|---|---|
| m00 | Элемент m00. |
| m01 | Элемент m01. |
| m02 | Элемент m02. |
| m03 | Элемент m03. |
| m10 | Элемент m10. |
| m11 | Элемент m11. |
| m12 | Элемент m12. |
| m13 | Элемент m13. |
| m20 | Элемент m20. |
| m21 | Элемент m21. |
| m22 | Элемент m22. |
| m23 | Элемент m23. |
| m30 | Элемент m30. |
| m31 | Элемент m31. |
| m32 | Элемент m32. |
| m33 | Элемент m33. |
Методы
| Метод | Описание |
|---|---|
| clone() | |
| concatenate(Matrix4 m2) | Конкатенирует две матрицы |
| copyFrom(Matrix4 src) | |
| decompose(Vector3 translation, Vector3 scaling, Quaternion rotation) | Разлагает матрицу преобразования |
| equals(Object obj) | |
| getClass() | |
| getDeterminant() | Получает определитель матрицы |
| getIdentity() | Получает единичную матрицу |
| hashCode() | |
| inverse() | Инвертирует этот экземпляр |
| mul(Matrix4 lhs, Matrix4 rhs) | Умножает две матрицы |
| mul(Matrix4 lhs, Vector3 v) | Умножает матрицу и vector3 |
| mul(Matrix4 lhs, Vector4 v) | Умножает матрицу и vector4 |
| mul(Matrix4 lhs, double v) | Умножить матрицу на значение double |
| normalize() | Нормализует этот экземпляр. |
| notify() | |
| notifyAll() | |
| rotate(Quaternion q) | Создаёт матрицу вращения из кватерниона |
| rotate(double angle, Vector3 axis) | Создаёт матрицу вращения по углу вращения и оси |
| rotateFromEuler(Vector3 eul) | Создаёт матрицу вращения из угла Эйлера |
| rotateFromEuler(double rx, double ry, double rz) | Создаёт матрицу вращения из угла Эйлера |
| scale(Vector3 s) | Создаёт матрицу, масштабирующую вдоль оси x, оси y и оси z. |
| scale(double s) | Создаёт матрицу, масштабирующую вдоль оси x, оси y и оси z. |
| scale(double sx, double sy, double sz) | Создаёт матрицу, масштабирующую вдоль оси x, оси y и оси z. |
| setTRS(Vector3 translation, Vector3 rotation, Vector3 scale) | Инициализирует матрицу с трансляцией/вращением/масштабом |
| toArray() | Преобразует матрицу в массив. |
| toString() | Возвращает java.lang.String, представляющий текущий Matrix4. |
| translate(Vector3 t) | Создаёт матрицу, переводящую вдоль оси x, оси y и оси z |
| translate(double tx, double ty, double tz) | Создаёт матрицу, переводящую вдоль оси x, оси y и оси z |
| transpose() | Транспонирует этот экземпляр. |
| wait() | |
| wait(long arg0) | |
| wait(long arg0, int arg1) |
Matrix4(Vector4 r0, Vector4 r1, Vector4 r2, Vector4 r3)
public Matrix4(Vector4 r0, Vector4 r1, Vector4 r2, Vector4 r3)
Создаёт матрицу из 4 строк.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| r0 | Vector4 | R0. |
| r1 | Vector4 | R1. |
| r2 | Vector4 | R2. |
| r3 | Vector4 | R3. |
Matrix4(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33)
public Matrix4(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33)
Инициализирует новый экземпляр Matrix4 структуры.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| m00 | double | M00. |
| m01 | double | M01. |
| m02 | double | M02. |
| m03 | double | M03. |
| m10 | double | M10. |
| m11 | double | M11. |
| m12 | double | M12. |
| m13 | double | M13. |
| m20 | double | M20. |
| m21 | double | M21. |
| m22 | double | M22. |
| m23 | double | M23. |
| m30 | double | M30. |
| m31 | double | M31. |
| m32 | double | M32. |
| m33 | double |
var mat = new Matrix4(
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
10, 20, 0, 1);
var pos = new Vector3(10, 0, -1);
var transformed = Matrix4.mul(mat, pos);
``` |
### Matrix4(FMatrix4 m) {#Matrix4-com.aspose.threed.FMatrix4-}
public Matrix4(FMatrix4 m)
Создаёт [Matrix4](../../com.aspose.threed/matrix4) из экземпляра [FMatrix4](../../com.aspose.threed/fmatrix4)
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| m | [FMatrix4](../../com.aspose.threed/fmatrix4) | |
### Matrix4(double[] m) {#Matrix4-double---}
public Matrix4(double[] m)
Инициализирует новый экземпляр [Matrix4](../../com.aspose.threed/matrix4) структуры.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| m | double[] | M. |
### Matrix4() {#Matrix4--}
public Matrix4()
### m00 {#m00}
public double m00
Элемент m00.
### m01 {#m01}
public double m01
Элемент m01.
### m02 {#m02}
public double m02
Элемент m02.
### m03 {#m03}
public double m03
Элемент m03.
### m10 {#m10}
public double m10
Элемент m10.
### m11 {#m11}
public double m11
Элемент m11.
### m12 {#m12}
public double m12
Элемент m12.
### m13 {#m13}
public double m13
Элемент m13.
### m20 {#m20}
public double m20
Элемент m20.
### m21 {#m21}
public double m21
Элемент m21.
### m22 {#m22}
public double m22
Элемент m22.
### m23 {#m23}
public double m23
Элемент m23.
### m30 {#m30}
public double m30
Элемент m30.
### m31 {#m31}
public double m31
Элемент m31.
### m32 {#m32}
public double m32
Элемент m32.
### m33 {#m33}
public double m33
Элемент m33.
### clone() {#clone--}
public Matrix4 clone()
Клонировать текущий экземпляр
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### concatenate(Matrix4 m2) {#concatenate-com.aspose.threed.Matrix4-}
public Matrix4 concatenate(Matrix4 m2)
Конкатенирует две матрицы
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| m2 | [Matrix4](../../com.aspose.threed/matrix4) | M2. |
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - New matrix4 **Example:**
Matrix4 t = Matrix4.translate(0, 10, 9); Matrix4 s = Matrix4.scale(10, 10, 10); Matrix4 transform = t.concatenate(s); Vector3 pos = new Vector3(10, 0, -1); Vector3 transformed = Matrix4.mul(transform, pos);
### copyFrom(Matrix4 src) {#copyFrom-com.aspose.threed.Matrix4-}
public void copyFrom(Matrix4 src)
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| src | [Matrix4](../../com.aspose.threed/matrix4) | |
### decompose(Vector3 translation, Vector3 scaling, Quaternion rotation) {#decompose-com.aspose.threed.Vector3-com.aspose.threed.Vector3-com.aspose.threed.Quaternion-}
public boolean decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)
Разлагает матрицу преобразования
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| translation | [Vector3](../../com.aspose.threed/vector3) | Перемещение. |
| scaling | [Vector3](../../com.aspose.threed/vector3) | Масштабирование. |
| rotation | [Quaternion](../../com.aspose.threed/quaternion) | Вращение. |
**Returns:**
boolean - True если успешно.
### equals(Object obj) {#equals-java.lang.Object-}
public boolean equals(Object obj)
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| obj | java.lang.Object | |
**Returns:**
boolean
### getClass() {#getClass--}
public final native Class getClass()
**Returns:**
java.lang.Class<?>
### getDeterminant() {#getDeterminant--}
public double getDeterminant()
Получает определитель матрицы
**Returns:**
double - определитель матрицы.
### getIdentity() {#getIdentity--}
public static Matrix4 getIdentity()
Получает единичную матрицу
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - the identity matrix.
### hashCode() {#hashCode--}
public int hashCode()
**Returns:**
int
### inverse() {#inverse--}
public Matrix4 inverse()
Инвертирует этот экземпляр
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - Inverse matrix4 **Example:** The following code shows how to inverse a matrix
Matrix4 t = Matrix4.translate(0, 10, 9); Matrix4 mat = t.inverse(); System.out.printf(“Inversed Matrix: %s”, mat);
### mul(Matrix4 lhs, Matrix4 rhs) {#mul-com.aspose.threed.Matrix4-com.aspose.threed.Matrix4-}
public static Matrix4 mul(Matrix4 lhs, Matrix4 rhs)
Умножает две матрицы
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| lhs | [Matrix4](../../com.aspose.threed/matrix4) | Lhs. |
| rhs | [Matrix4](../../com.aspose.threed/matrix4) | Правая часть. |
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - Result matrix
### mul(Matrix4 lhs, Vector3 v) {#mul-com.aspose.threed.Matrix4-com.aspose.threed.Vector3-}
public static Vector3 mul(Matrix4 lhs, Vector3 v)
Умножает матрицу и vector3
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| lhs | [Matrix4](../../com.aspose.threed/matrix4) | Lhs. |
| v | [Vector3](../../com.aspose.threed/vector3) | V. |
**Returns:**
[Vector3](../../com.aspose.threed/vector3) - Result matrix
### mul(Matrix4 lhs, Vector4 v) {#mul-com.aspose.threed.Matrix4-com.aspose.threed.Vector4-}
public static Vector4 mul(Matrix4 lhs, Vector4 v)
Умножает матрицу и vector4
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| lhs | [Matrix4](../../com.aspose.threed/matrix4) | Lhs. |
| v | [Vector4](../../com.aspose.threed/vector4) | V. |
**Returns:**
[Vector4](../../com.aspose.threed/vector4) - Result matrix
### mul(Matrix4 lhs, double v) {#mul-com.aspose.threed.Matrix4-double-}
public static Matrix4 mul(Matrix4 lhs, double v)
Умножить матрицу на значение double
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| lhs | [Matrix4](../../com.aspose.threed/matrix4) | Lhs. |
| v | double | V. |
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - Result matrix
### normalize() {#normalize--}
public Matrix4 normalize()
Нормализует этот экземпляр.
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - Normalize matrix4
### notify() {#notify--}
public final native void notify()
### notifyAll() {#notifyAll--}
public final native void notifyAll()
### rotate(Quaternion q) {#rotate-com.aspose.threed.Quaternion-}
public static Matrix4 rotate(Quaternion q)
Создаёт матрицу вращения из кватерниона
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | q | [Quaternion](../../com.aspose.threed/quaternion) | Кватернион вращения **Пример:** Следующий код показывает, как создать матрицу для операции вращения. |
var t = Matrix4.rotate(Quaternion.fromAngleAxis(Math.PI, Vector3.getUnitY())); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### rotate(double angle, Vector3 axis) {#rotate-double-com.aspose.threed.Vector3-}
public static Matrix4 rotate(double angle, Vector3 axis)
Создаёт матрицу вращения по углу вращения и оси
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| угол | double | Угол вращения в радианах |
| | axis | [Vector3](../../com.aspose.threed/vector3) | Ось вращения **Пример:** Следующий код показывает, как создать матрицу для операции вращения. |
var t = Matrix4.rotate(Math.PI, new Vector3(0, 1, 0)); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### rotateFromEuler(Vector3 eul) {#rotateFromEuler-com.aspose.threed.Vector3-}
public static Matrix4 rotateFromEuler(Vector3 eul)
Создаёт матрицу вращения из угла Эйлера
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | eul | [Vector3](../../com.aspose.threed/vector3) | Вращение в радианах **Пример:** Следующий код показывает, как создать матрицу для операции вращения. |
var t = Matrix4.rotateFromEuler(new Vector3(0, Math.PI, 0)); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### rotateFromEuler(double rx, double ry, double rz) {#rotateFromEuler-double-double-double-}
public static Matrix4 rotateFromEuler(double rx, double ry, double rz)
Создаёт матрицу вращения из угла Эйлера
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| rx | double | Вращение вокруг оси x в радианах |
| ry | double | Вращение вокруг оси y в радианах |
| | rz | double | Вращение вокруг оси z в радианах **Пример:** Следующий код показывает, как создать матрицу для операции вращения. |
var t = Matrix4.rotateFromEuler(0, Math.PI, 0); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### scale(Vector3 s) {#scale-com.aspose.threed.Vector3-}
public static Matrix4 scale(Vector3 s)
Создаёт матрицу, масштабирующую вдоль оси x, оси y и оси z.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | s | [Vector3](../../com.aspose.threed/vector3) | Фабрики масштабирования применяются к оси x, оси y и оси z **Пример:** Следующий код показывает, как создать матрицу для операции масштабирования. |
var t = Matrix4.scale(new Vector3(10, 10, 10)); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### scale(double s) {#scale-double-}
public static Matrix4 scale(double s)
Создаёт матрицу, масштабирующую вдоль оси x, оси y и оси z.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | s | double | Фабрики масштабирования применяются ко всем осям **Пример:** Следующий код показывает, как создать матрицу для операции масштабирования. |
var t = Matrix4.scale(10); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### scale(double sx, double sy, double sz) {#scale-double-double-double-}
public static Matrix4 scale(double sx, double sy, double sz)
Создаёт матрицу, масштабирующую вдоль оси x, оси y и оси z.
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| sx | double | Фабрики масштабирования применяются к оси x |
| sy | double | Фабрики масштабирования применяются к оси y |
| | sz | double | Фабрики масштабирования применяются к оси z **Пример:** Следующий код показывает, как создать матрицу для операции масштабирования. |
var t = Matrix4.scale(10, 20, 10); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### setTRS(Vector3 translation, Vector3 rotation, Vector3 scale) {#setTRS-com.aspose.threed.Vector3-com.aspose.threed.Vector3-com.aspose.threed.Vector3-}
public void setTRS(Vector3 translation, Vector3 rotation, Vector3 scale)
Инициализирует матрицу с трансляцией/вращением/масштабом
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| translation | [Vector3](../../com.aspose.threed/vector3) | Перемещение. |
| rotation | [Vector3](../../com.aspose.threed/vector3) | Углы Эйлера для вращения, поля указаны в градусах. |
| scale | [Vector3](../../com.aspose.threed/vector3) | Масштаб. |
### toArray() {#toArray--}
public double[] toArray()
Преобразует матрицу в массив.
**Returns:**
double[] - Массив.
### toString() {#toString--}
public String toString()
Возвращает java.lang.String, представляющий текущий [Matrix4](../../com.aspose.threed/matrix4).
**Returns:**
java.lang.String - java.lang.String, представляющий текущий [Matrix4](../../com.aspose.threed/matrix4).
### translate(Vector3 t) {#translate-com.aspose.threed.Vector3-}
public static Matrix4 translate(Vector3 t)
Создаёт матрицу, переводящую вдоль оси x, оси y и оси z
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| | t | [Vector3](../../com.aspose.threed/vector3) | Смещение трансляции **Пример:** Следующий код показывает, как создать матрицу для операции трансляции. |
Matrix4 t = Matrix4.translate(new Vector3(10, 0, 0)); Vector3 pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### translate(double tx, double ty, double tz) {#translate-double-double-double-}
public static Matrix4 translate(double tx, double ty, double tz)
Создаёт матрицу, переводящую вдоль оси x, оси y и оси z
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| tx | double | Смещение по оси X |
| ty | double | Смещение по оси Y |
| | tz | double | Смещение по координате Z **Пример:** Следующий код показывает, как создать матрицу для операции перемещения. |
var t = Matrix4.translate(10, 0, 0); var pos = new Vector3(1, 1, 10); System.out.printf(“Transformed: %s”, Matrix4.mul(t, pos));
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4)
### transpose() {#transpose--}
public Matrix4 transpose()
Транспонирует этот экземпляр.
**Returns:**
[Matrix4](../../com.aspose.threed/matrix4) - The transposed matrix. **Example:** The following code shows how to transpose a matrix
Matrix4 t = Matrix4.translate(0, 10, 9); Matrix4 mat = t.transpose(); System.out.printf(“Transposed Matrix: %s”, mat);
### wait() {#wait--}
public final void wait()
### wait(long arg0) {#wait-long-}
public final void wait(long arg0)
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| arg0 | long | |
### wait(long arg0, int arg1) {#wait-long-int-}
public final void wait(long arg0, int arg1)
**Parameters:**
| Параметр | Тип | Описание |
| --- | --- | --- |
| arg0 | long | |
| arg1 | int | |