matrix4x4 QML Value Type
Una matriz de tipo matrix4x4 es una matriz de 4 filas y 4 columnas. Más...
Descripción detallada
Un tipo matrix4x4 tiene dieciséis valores, cada uno accesible a través de las propiedades m11 a m44 en QML (en orden fila/columna). Los valores de este tipo pueden componerse con la función Qt.matrix4x4(). Cada atributo de matrix4x4 se almacena como un real (de precisión simple en ARM, de precisión doble en x86).
Una propiedad de tipo matrix4x4 es por defecto la matriz identidad, cuyas entradas diagonales m11, m22, m33 y m44 son todas 1, con todos los demás componentes 0.
El tipo matrix4x4 tiene las siguientes funciones idempotentes que pueden invocarse en QML:
| Función Firma | Descripción | Ejemplo |
|---|---|---|
| translate(vector3d vector) | Multiplica this matrix4x4 por otra que traduce las coordenadas por los componentes de vector | |
| rotate(ángulo real, vector3d eje) | Multiplica this matrix4x4 por otra que rota las coordenadas en angle grados alrededor de axis | |
| rotate(cuaternión cuaternión) | Multiplica this matriz4x4 por otra que rota las coordenadas según un quaternion especificado. Se supone que quaternion ha sido normalizada. | |
| scale(factor real) | Multiplica this matrix4x4 por otra que escala las coordenadas según el factor dado factor | var m = Qt.matrix4x4(); m.scale(2); console.log(m.toString()); // QMatrix4x4(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1) |
| scale(real x, real y, real z) | Multiplica this matriz4x4 por otra que escala las coordenadas por los componentes x, y, y z | var m = Qt.matrix4x4(); m.scale(1,2,3); console.log(m.toString()); // QMatrix4x4(1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1) |
| scale(vector3d vector) | Multiplica this matrix4x4 por otra que escala las coordenadas por los componentes de vector | |
| lookAt(vector3d ojo, vector3d centro, vector3d arriba) | Multiplica this matrix4x4 por una matriz de visualización derivada de un punto eye. El center vector3d indica el centro de la vista que está mirando el eye. El up vector3d indica qué dirección debe considerarse hacia arriba con respecto al eye. | |
| matriz4x4 veces(matriz4x4 otra) | Devuelve la matriz4x4 resultado de multiplicar this matriz4x4 por la other matriz4x4 | |
| vector4d veces(vector4d vector) | Devuelve el vector4d resultado de transformar el vector según this matrix4x4 con la matriz aplicada pre-vector | |
| vector3d times(vector3d vector) | Devuelve el vector3d resultado de transformar el vector según this matriz4x4 con la matriz aplicada pre-vector | |
| matriz4x4 veces(factor real) | Devuelve el resultado de multiplicar this matrix4x4 por el escalar factor | var a = Qt.matrix4x4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); var b = 4.48; var c = a.times(b); console.log(c.toString()); // QMatrix4x4(4.48, 8.96, 13.44, 17.92, 22.4, 26.88, 31.36, 35.84, // 40.32, 44.8, 49.28, 53.76, 58.24, 62.72, 67.2, 71.68) |
| matriz4x4 mas(matriz4x4 otra) | Devuelve la matriz4x4 resultado de la suma de this matriz4x4 con la other matriz4x4 | |
| matriz4x4 menos(matriz4x4 otra) | Devuelve la matriz4x4 resultado de la resta de other matriz4x4 de this matriz4x4 | |
| vector4d fila(int cual) | Devuelve la fila vector4d de this especificada por which. Nota: which es un acceso basado en 0 a la matriz. | |
| vector4d columna(int cual) | Devuelve la columna vector4d de this especificada por which. Nota: which es un acceso basado en 0 a la matriz. | |
| determinante real() | Devuelve el determinante de this matrix4x4 | var a = Qt.matrix4x4(1,0,0,0,0,2,0,0,0,0,3,0,100,200,300,1); var b = a.determinant(); console.log(b); // 6 |
| matriz4x4 invertida() | Devuelve la inversa de this matrix4x4 si existe, en caso contrario la matriz identidad. | var a = Qt.matrix4x4(1,0,0,0,0,2,0,0,0,0,3,0,100,200,300,1); var b = a.inverted(); console.log(b.toString()); // QMatrix4x4(1, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0.333333, 0, -100, // -100, -100, 1) |
| matriz4x4 transpuesta() | Devuelve la transposición de this matrix4x4 | var a = Qt.matrix4x4(1,0,0,0,0,2,0,0,0,0,3,0,100,200,300,1); var b = a.transposed(); console.log(b.toString()); // QMatrix4x4(1, 0, 0, 100, 0, 2, 0, 200, 0, 0, 3, 300, 0, 0, 0, 1) |
| rect mapRect(rect) | Mapea el rectángulo proporcionado en el sistema de coordenadas definido por esta matriz. Si se ha especificado rotación o cizallamiento, esta función devuelve el rectángulo delimitador. Esta función se introdujo en Qt 6.5. | |
| punto map(punto) | Mapea el punto proporcionado en el sistema de coordenadas definido por esta matriz. Esta función se introdujo en Qt 6.5. | var a = Qt.matrix4x4(2,0,0,0,0,2,0,0,0,0,1,0,0,0,0,1); var b = a.map(10, 20); console.log(b.toString()); // Qt.point(20, 40) |
| bool fuzzyEquals(matriz4x4 otra, epsilon real) | Devuelve true si this matrix4x4 es aproximadamente igual a other matrix4x4. La aproximación será verdadera si cada atributo de this está dentro de epsilon del atributo respectivo de other. Tenga en cuenta que epsilon es un argumento opcional, el valor por defecto epsilon es 0.00001. | var a = Qt.matrix4x4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); var b = Qt.matrix4x4(1.0001,2.0001,3.0002,4.0003,5.0001,6.0002, 7.0002,8.0004, 9.0001,10.0003, 11.0003,12.0004,13.0001, 14.0002,15.0003,16.0004); var c = a.fuzzyEquals(b); // default epsilon var d = a.fuzzyEquals(b, 0.005); // supplied epsilon console.log(c + " " + d); // false true |
Este tipo de valor lo proporciona la importación QtQuick.
Véase también Tipos de valor QML.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.