QVector3D Class
La clase QVector3D representa un vector o vértice en el espacio 3D. Más...
| Cabecera: | #include <QVector3D> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Lista de todos los miembros, incluyendo los heredados
- QVector3D es parte de Renderizado en 3D.
Funciones Públicas
| QVector3D() | |
| QVector3D(QPoint point) | |
| QVector3D(QPointF point) | |
| QVector3D(QVector2D vector) | |
| QVector3D(QVector4D vector) | |
| QVector3D(QVector2D vector, float zpos) | |
| QVector3D(float xpos, float ypos, float zpos) | |
| float | distanceToLine(QVector3D point, QVector3D direction) const |
| float | distanceToPlane(QVector3D plane, QVector3D normal) const |
| float | distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const |
| float | distanceToPoint(QVector3D point) const |
| bool | isNull() const |
| float | length() const |
| float | lengthSquared() const |
| void | normalize() |
| QVector3D | normalized() const |
| QVector3D | project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const |
| void | setX(float x) |
| void | setY(float y) |
| void | setZ(float z) |
| QPoint | toPoint() const |
| QPointF | toPointF() const |
| QVector2D | toVector2D() const |
| QVector4D | toVector4D() const |
| QVector3D | unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const |
| float | x() const |
| float | y() const |
| float | z() const |
| operator QVariant() const | |
| QVector3D & | operator*=(float factor) |
| QVector3D & | operator*=(QVector3D vector) |
| QVector3D & | operator+=(QVector3D vector) |
| QVector3D & | operator-=(QVector3D vector) |
| QVector3D & | operator/=(QVector3D vector) |
| QVector3D & | operator/=(float divisor) |
| float & | operator[](int i) |
| float | operator[](int i) const |
Miembros públicos estáticos
| QVector3D | crossProduct(QVector3D v1, QVector3D v2) |
| float | dotProduct(QVector3D v1, QVector3D v2) |
| QVector3D | normal(QVector3D v1, QVector3D v2) |
| QVector3D | normal(QVector3D v1, QVector3D v2, QVector3D v3) |
No miembros relacionados
| bool | qFuzzyCompare(QVector3D v1, QVector3D v2) |
| bool | operator!=(QVector3D v1, QVector3D v2) |
| QVector3D | operator*(QVector3D v1, QVector3D v2) |
| QVector3D | operator*(QVector3D vector, float factor) |
| QVector3D | operator*(float factor, QVector3D vector) |
| QVector3D | operator+(QVector3D v1, QVector3D v2) |
| QVector3D | operator-(QVector3D v1, QVector3D v2) |
| QVector3D | operator-(QVector3D vector) |
| QVector3D | operator/(QVector3D vector, QVector3D divisor) |
| QVector3D | operator/(QVector3D vector, float divisor) |
| QDataStream & | operator<<(QDataStream &stream, QVector3D vector) |
| bool | operator==(QVector3D v1, QVector3D v2) |
| QDataStream & | operator>>(QDataStream &stream, QVector3D &vector) |
Descripción Detallada
Los vectores son uno de los principales bloques de construcción de la representación y el dibujo en 3D. Constan de tres coordenadas finitas en coma flotante, tradicionalmente llamadas x, y, y z.
La clase QVector3D también puede utilizarse para representar vértices en el espacio 3D. Por lo tanto, no es necesario proporcionar una clase de vértice separada.
Véase también QVector2D, QVector4D, y QQuaternion.
Documentación de las funciones miembro
[constexpr noexcept] QVector3D::QVector3D()
Construye un vector nulo, es decir, con coordenadas (0, 0, 0).
[explicit constexpr noexcept] QVector3D::QVector3D(QPoint point)
Construye un vector con coordenadas x e y de un 2D point, y una coordenada z de 0.
[explicit constexpr noexcept] QVector3D::QVector3D(QPointF point)
Construye un vector con coordenadas x e y de un 2D point, y una coordenada z de 0.
[explicit constexpr noexcept] QVector3D::QVector3D(QVector2D vector)
Construye un vector 3D a partir del 2D especificado vector. La coordenada z se pone a cero.
Véase también toVector2D().
[explicit constexpr noexcept] QVector3D::QVector3D(QVector4D vector)
Construye un vector 3D a partir del 4D especificado vector. Se elimina la coordenada w.
Véase también toVector4D().
[constexpr noexcept] QVector3D::QVector3D(QVector2D vector, float zpos)
Construye un vector 3D a partir del 2D especificado vector. La coordenada z se establece en zpos, que debe ser finita.
Véase también toVector2D().
[constexpr noexcept] QVector3D::QVector3D(float xpos, float ypos, float zpos)
Construye un vector con coordenadas (xpos, ypos, zpos). Todos los parámetros deben ser finitos.
[static constexpr noexcept] QVector3D QVector3D::crossProduct(QVector3D v1, QVector3D v2)
Devuelve el producto cruzado de los vectores v1 y v2, que es normal al plano abarcado por v1 y v2. Será cero si los dos vectores son paralelos.
Véase también normal().
[noexcept] float QVector3D::distanceToLine(QVector3D point, QVector3D direction) const
Devuelve la distancia a la que se encuentra este vértice de una línea definida por point y el vector unitario direction.
Si direction es un vector nulo, entonces no define una línea. En ese caso, se devuelve la distancia desde point a este vértice.
Véase también distanceToPlane().
[constexpr noexcept] float QVector3D::distanceToPlane(QVector3D plane, QVector3D normal) const
Devuelve la distancia desde este vértice a un plano definido por el vértice plane y un vector unitario normal. Se supone que el parámetro normal ha sido normalizado a un vector unitario.
El valor devuelto será negativo si el vértice está por debajo del plano, o cero si está en el plano.
Véase también normal() y distanceToLine().
[noexcept] float QVector3D::distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const
Devuelve la distancia desde este vértice a un plano definido por los vértices plane1, plane2 y plane3.
El valor devuelto será negativo si el vértice está por debajo del plano, o cero si está en el plano.
Los dos vectores que definen el plano son plane2 - plane1 y plane3 - plane1.
Véase también normal() y distanceToLine().
[noexcept] float QVector3D::distanceToPoint(QVector3D point) const
Devuelve la distancia desde este vértice a un punto definido por el vértice point.
Véase también distanceToPlane() y distanceToLine().
[static constexpr noexcept] float QVector3D::dotProduct(QVector3D v1, QVector3D v2)
Devuelve el producto punto de v1 y v2.
[constexpr noexcept] bool QVector3D::isNull() const
Devuelve true si las coordenadas x, y, y z son 0.0, en caso contrario devuelve false.
[noexcept] float QVector3D::length() const
Devuelve la longitud del vector desde el origen.
Véase también lengthSquared() y normalized().
[constexpr noexcept] float QVector3D::lengthSquared() const
Devuelve la longitud al cuadrado del vector desde el origen. Equivale al producto punto del vector consigo mismo.
Véase también length() y dotProduct().
[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2)
Devuelve el vector normal unitario de un plano abarcado por los vectores v1 y v2, que no deben ser paralelos entre sí.
Utilice crossProduct() para calcular el producto cruzado de v1 y v2 si no necesita normalizar el resultado a un vector unitario.
Véase también crossProduct() y distanceToPlane().
[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2, QVector3D v3)
Devuelve el vector normal unitario de un plano abarcado por los vectores v2 - v1 y v3 - v1, que no deben ser paralelos entre sí.
Utilice crossProduct() para calcular el producto cruzado de v2 - v1 y v3 - v1 si no necesita normalizar el resultado a un vector unitario.
Véase también crossProduct() y distanceToPlane().
[noexcept] void QVector3D::normalize()
Normaliza el vector actual en su lugar. No ocurre nada si este vector es un vector nulo o la longitud del vector es muy cercana a 1.
Véase también length() y normalized().
[noexcept] QVector3D QVector3D::normalized() const
Devuelve la forma vectorial unitaria normalizada de este vector.
Si este vector es nulo, entonces se devuelve un vector nulo. Si la longitud del vector es muy cercana a 1, entonces se devolverá el vector tal cual. En caso contrario, se devolverá la forma normalizada del vector de longitud 1.
Véase también length() y normalize().
QVector3D QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
Devuelve las coordenadas de ventana de este vector inicialmente en coordenadas objeto/modelo utilizando la matriz de vista del modelo modelView, la matriz de proyección projection y las dimensiones de la ventana viewport.
Al transformar de clip a espacio normalizado, se produce una división por el componente w en los componentes del vector. Para evitar la división por 0 si w es igual a 0, se establece en 1.
Nota: las coordenadas y devueltas están en la orientación OpenGL. OpenGL espera que la parte inferior sea 0 mientras que para Qt la parte superior es 0.
Véase también unproject().
[constexpr noexcept] void QVector3D::setX(float x)
Establece la coordenada x de este punto en la coordenada finita x dada.
Véase también x(), setY() y setZ().
[constexpr noexcept] void QVector3D::setY(float y)
Establece la coordenada y de este punto en la coordenada finita y dada.
Véase también y(), setX() y setZ().
[constexpr noexcept] void QVector3D::setZ(float z)
Establece la coordenada z de este punto en la coordenada finita z dada.
Véase también z(), setX() y setY().
[constexpr noexcept] QPoint QVector3D::toPoint() const
Devuelve la forma QPoint de este vector 3D. Se elimina la coordenada z. Las coordenadas x e y se redondean a los enteros más próximos.
Véase también toPointF() y toVector2D().
[constexpr noexcept] QPointF QVector3D::toPointF() const
Devuelve la forma QPointF de este vector 3D. Se elimina la coordenada z.
Véase también toPoint() y toVector2D().
[constexpr noexcept] QVector2D QVector3D::toVector2D() const
Devuelve la forma vectorial 2D de este vector 3D, eliminando la coordenada z.
Véase también toVector4D() y toPoint().
[constexpr noexcept] QVector4D QVector3D::toVector4D() const
Devuelve la forma 4D de este vector 3D, con la coordenada w a cero.
Véase también toVector2D() y toPoint().
QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
Devuelve las coordenadas objeto/modelo de este vector inicialmente en coordenadas de ventana utilizando la matriz de vista del modelo modelView, la matriz de proyección projection y las dimensiones de la ventana viewport.
Al transformar de clip a espacio normalizado, se produce una división por el componente w de los componentes del vector. Para evitar la división por 0 si w es igual a 0, se fija en 1.
Nota: las coordenadas y en viewport deben utilizar la orientación de OpenGL. OpenGL espera que la parte inferior sea 0 mientras que para Qt la parte superior es 0.
Véase también project().
[constexpr noexcept] float QVector3D::x() const
Devuelve la coordenada x de este punto.
Véase también setX(), y() y z().
[constexpr noexcept] float QVector3D::y() const
Devuelve la coordenada y de este punto.
Véase también setY(), x() y z().
[constexpr noexcept] float QVector3D::z() const
Devuelve la coordenada z de este punto.
Véase también setZ(), x() y y().
QVector3D::operator QVariant() const
Devuelve el vector 3D como QVariant.
[constexpr noexcept] QVector3D &QVector3D::operator*=(float factor)
Multiplica las coordenadas de este vector por la variable finita factor y devuelve una referencia a este vector.
Véase también operator/=() y operator*().
[constexpr noexcept] QVector3D &QVector3D::operator*=(QVector3D vector)
Multiplica cada componente de este vector por el componente correspondiente en vector y devuelve una referencia a este vector.
Nota: esto no es lo mismo que el crossProduct() de este vector y vector. (Sus componentes suman el producto punto de este vector y vector).
Se trata de una función sobrecargada.
Véase también crossProduct(), operator/=(), y operator*().
[constexpr noexcept] QVector3D &QVector3D::operator+=(QVector3D vector)
Añade el vector dado a este vector y devuelve una referencia a este vector.
Véase también operator-=().
[constexpr noexcept] QVector3D &QVector3D::operator-=(QVector3D vector)
Resta el vector dado de este vector y devuelve una referencia a este vector.
Véase también operator+=().
[constexpr] QVector3D &QVector3D::operator/=(QVector3D vector)
Divide cada componente de este vector por el componente correspondiente en vector y devuelve una referencia a este vector.
vector no debe tener ningún componente que sea cero o NaN.
Véase también operator*=() y operator/().
[constexpr] QVector3D &QVector3D::operator/=(float divisor)
Divide las coordenadas de este vector por el valor dado divisor, y devuelve una referencia a este vector. divisor no debe ser cero ni NaN.
Véase también operator*=() y operator/().
[constexpr] float &QVector3D::operator[](int i)
Devuelve el componente del vector en la posición de índice i como referencia modificable.
i debe ser una posición de índice válida en el vector (es decir, 0 <= i < 3).
[constexpr] float QVector3D::operator[](int i) const
Devuelve el componente del vector en la posición del índice i.
i debe ser una posición de índice válida en el vector (es decir, 0 <= i < 3).
No miembros relacionados
[noexcept] bool qFuzzyCompare(QVector3D v1, QVector3D v2)
Devuelve true si v1 y v2 son iguales, permitiendo un pequeño factor de imprecisión para comparaciones de punto flotante; falso en caso contrario.
[constexpr noexcept] bool operator!=(QVector3D v1, QVector3D v2)
Devuelve true si v1 no es igual a v2; en caso contrario devuelve false. Este operador utiliza una comparación exacta en coma flotante.
[constexpr noexcept] QVector3D operator*(QVector3D v1, QVector3D v2)
Devuelve el objeto QVector3D formado multiplicando cada componente de v1 por el componente correspondiente de v2.
Nota: No es lo mismo que crossProduct() de v1 y v2. (Sus componentes suman el producto punto de v1 y v2.)
Véase también QVector3D::crossProduct().
[constexpr noexcept] QVector3D operator*(QVector3D vector, float factor)
Devuelve una copia del vector dado , multiplicado por el factor finito dado.
Véase también QVector3D::operator*=().
[constexpr noexcept] QVector3D operator*(float factor, QVector3D vector)
Devuelve una copia del vector dado , multiplicado por el factor finito dado.
Véase también QVector3D::operator*=().
[constexpr noexcept] QVector3D operator+(QVector3D v1, QVector3D v2)
Devuelve un objeto QVector3D que es la suma de los vectores dados, v1 y v2; cada componente se suma por separado.
Véase también QVector3D::operator+=().
[constexpr noexcept] QVector3D operator-(QVector3D v1, QVector3D v2)
Devuelve un objeto QVector3D que se forma restando v2 de v1; cada componente se resta por separado.
Véase también QVector3D::operator-=().
[constexpr noexcept] QVector3D operator-(QVector3D vector)
Devuelve un objeto QVector3D que se forma cambiando el signo de cada componente del vector dado.
Equivalente a QVector3D(0,0,0) - vector.
Se trata de una función sobrecargada.
[constexpr] QVector3D operator/(QVector3D vector, QVector3D divisor)
Devuelve el objeto QVector3D formado dividiendo cada componente del vector dado por el componente correspondiente del divisor dado.
El divisor no debe tener ningún componente que sea cero o NaN.
Véase también QVector3D::operator/=().
[constexpr] QVector3D operator/(QVector3D vector, float divisor)
Devuelve el objeto QVector3D formado dividiendo cada componente del vector dado por el divisor dado.
El divisor no debe ser ni cero ni NaN.
Véase también QVector3D::operator/=().
QDataStream &operator<<(QDataStream &stream, QVector3D vector)
Escribe el vector dado en el stream dado y devuelve una referencia al flujo.
Véase también Serializar tipos de datos Qt.
[constexpr noexcept] bool operator==(QVector3D v1, QVector3D v2)
Devuelve true si v1 es igual a v2; en caso contrario devuelve false. Este operador utiliza una comparación exacta en coma flotante.
QDataStream &operator>>(QDataStream &stream, QVector3D &vector)
Lee un vector 3D del stream dado al vector dado y devuelve una referencia al flujo.
Véase también Serializar tipos de datos Qt.
© 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.