# QVector4D#

The `QVector4D` class represents a vector or vertex in 4D space. More

New in version 4.6.

## Synopsis#

### Static functions#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

## Detailed Description#

Vectors are one of the main building blocks of 4D affine representations of 3D space. They consist of four finite floating-point coordinates, traditionally called x, y, z and w.

The `QVector4D` class can also be used to represent vertices in 4D space. We therefore do not need to provide a separate vertex class.

class PySide6.QtGui.QVector4D#

PySide6.QtGui.QVector4D(point)

PySide6.QtGui.QVector4D(point)

PySide6.QtGui.QVector4D(vector)

PySide6.QtGui.QVector4D(vector, zpos, wpos)

PySide6.QtGui.QVector4D(vector)

PySide6.QtGui.QVector4D(vector, wpos)

PySide6.QtGui.QVector4D(xpos, ypos, zpos, wpos)

Parameters:
• ypos – float

• xpos – float

• zpos – float

• wpos – float

Constructs a null vector, i.e. with coordinates (0, 0, 0, 0).

Constructs a vector with x and y coordinates from a 2D `point`, and z and w coordinates of 0.

Constructs a vector with x and y coordinates from a 2D `point`, and z and w coordinates of 0.

Constructs a 4D vector from the specified 2D `vector`. The z and w coordinates are set to zero.

Constructs a 4D vector from the specified 2D `vector`. The z and w coordinates are set to `zpos` and `wpos` respectively, each of which must be finite.

Constructs a 4D vector from the specified 3D `vector`. The w coordinate is set to zero.

Constructs a 4D vector from the specified 3D `vector`. The w coordinate is set to `wpos`, which must be finite.

Constructs a vector with coordinates (`xpos`, `ypos`, `zpos`, `wpos`). All parameters must be finite.

PySide6.QtGui.QVector4D.__reduce__()#
Return type:

object

PySide6.QtGui.QVector4D.__repr__()#
Return type:

object

static PySide6.QtGui.QVector4D.dotProduct(v1, v2)#
Parameters:
Return type:

float

Returns the dot product of `v1` and `v2`.

PySide6.QtGui.QVector4D.isNull()#
Return type:

bool

Returns `true` if the x, y, z, and w coordinates are set to 0.0, otherwise returns `false`.

PySide6.QtGui.QVector4D.length()#
Return type:

float

Returns the length of the vector from the origin.

PySide6.QtGui.QVector4D.lengthSquared()#
Return type:

float

Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.

PySide6.QtGui.QVector4D.normalize()#

Normalizes the current vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.

PySide6.QtGui.QVector4D.normalized()#
Return type:

`PySide6.QtGui.QVector4D`

Returns the normalized unit vector form of this vector.

If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.

PySide6.QtGui.QVector4D.__ne__(v2)#
Parameters:
Return type:

bool

Returns `true` if `v1` is not equal to `v2`; otherwise returns `false`. This operator uses an exact floating-point comparison.

PySide6.QtGui.QVector4D.__mul__(factor)#
Parameters:

factor – float

Return type:

`PySide6.QtGui.QVector4D`

Returns a copy of the given `vector`, multiplied by the given `factor`.

`operator*=()`

PySide6.QtGui.QVector4D.__mul__(factor)
Parameters:

factor – float

Return type:

`PySide6.QtGui.QVector4D`

Returns a copy of the given `vector`, multiplied by the given `factor`.

`operator*=()`

PySide6.QtGui.QVector4D.__mul__(matrix)
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

PySide6.QtGui.QVector4D.__mul__(matrix)
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

PySide6.QtGui.QVector4D.__mul__(v2)
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Returns the `QVector4D` object formed by multiplying each component of `v1` by the corresponding component of `v2`.

Note

This is not a cross product of `v1` and `v2` in any sense. (Its components add up to the dot product of `v1` and `v2`.)

`operator*=()`

PySide6.QtGui.QVector4D.__imul__(vector)#
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Multiplies each component of this vector by the corresponding component of `vector` and returns a reference to this vector.

`operator/=()` `operator*()`

PySide6.QtGui.QVector4D.__imul__(factor)
Parameters:

factor – float

Return type:

`PySide6.QtGui.QVector4D`

Multiplies this vector’s coordinates by the given finite `factor`, and returns a reference to this vector.

`operator/=()` `operator*()`

Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Returns a `QVector4D` object that is the sum of the given vectors, `v1` and `v2`; each component is added separately.

`operator+=()`

Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Adds the given `vector` to this vector and returns a reference to this vector.

`operator-=()`

PySide6.QtGui.QVector4D.__sub__()#
Return type:

`PySide6.QtGui.QVector4D`

Returns a `QVector4D` object that is formed by changing the sign of all three components of the given `vector`.

Equivalent to `QVector4D(0,0,0,0) - vector`.

PySide6.QtGui.QVector4D.__sub__(v2)
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Returns a `QVector4D` object that is formed by subtracting `v2` from `v1`; each component is subtracted separately.

`operator-=()`

PySide6.QtGui.QVector4D.__isub__(vector)#
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Subtracts the given `vector` from this vector and returns a reference to this vector.

`operator+=()`

PySide6.QtGui.QVector4D.__div__(divisor)#
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Returns the `QVector4D` object formed by dividing each component of the given `vector` by the corresponding component of the given `divisor`.

The `divisor` must have no component that is either zero or NaN.

`operator/=()`

PySide6.QtGui.QVector4D.__div__(divisor)
Parameters:

divisor – float

Return type:

`PySide6.QtGui.QVector4D`

Returns the `QVector4D` object formed by dividing each component of the given `vector` by the given `divisor`.

The `divisor` must not be either zero or NaN.

`operator/=()`

PySide6.QtGui.QVector4D.operator/=(vector)
Parameters:
Return type:

`PySide6.QtGui.QVector4D`

Divides each component of this vector by the corresponding component of `vector` and returns a reference to this vector.

The `vector` must have no component that is either zero or NaN.

`operator*=()` `operator/()`

PySide6.QtGui.QVector4D.operator/=(divisor)
Parameters:

divisor – float

Return type:

`PySide6.QtGui.QVector4D`

Divides this vector’s coordinates by the given `divisor`, and returns a reference to this vector. The `divisor` must not be either zero or NaN.

`operator*=()`

PySide6.QtGui.QVector4D.__eq__(v2)#
Parameters:
Return type:

bool

Returns `true` if `v1` is equal to `v2`; otherwise returns `false`. This operator uses an exact floating-point comparison.

PySide6.QtGui.QVector4D.operator[](i)
Parameters:

i – int

Return type:

float

Returns the component of the vector at index position `i`.

`i` must be a valid index position in the vector (i.e., 0 <= `i` < 4).

PySide6.QtGui.QVector4D.setW(w)#
Parameters:

w – float

Sets the w coordinate of this point to the given finite `w` coordinate.

PySide6.QtGui.QVector4D.setX(x)#
Parameters:

x – float

Sets the x coordinate of this point to the given finite `x` coordinate.

PySide6.QtGui.QVector4D.setY(y)#
Parameters:

y – float

Sets the y coordinate of this point to the given finite `y` coordinate.

PySide6.QtGui.QVector4D.setZ(z)#
Parameters:

z – float

Sets the z coordinate of this point to the given finite `z` coordinate.

PySide6.QtGui.QVector4D.toPoint()#
Return type:

`PySide6.QtCore.QPoint`

Returns the `QPoint` form of this 4D vector. The z and w coordinates are dropped. The x and y coordinates are rounded to nearest integers.

PySide6.QtGui.QVector4D.toPointF()#
Return type:

`PySide6.QtCore.QPointF`

Returns the `QPointF` form of this 4D vector. The z and w coordinates are dropped.

PySide6.QtGui.QVector4D.toTuple()#
Return type:

object

PySide6.QtGui.QVector4D.toVector2D()#
Return type:

`PySide6.QtGui.QVector2D`

Returns the 2D vector form of this 4D vector, dropping the z and w coordinates.

PySide6.QtGui.QVector4D.toVector2DAffine()#
Return type:

`PySide6.QtGui.QVector2D`

Returns the 2D vector form of this 4D vector, dividing the x and y coordinates by the w coordinate and dropping the z coordinate. Returns a null vector if w is zero.

PySide6.QtGui.QVector4D.toVector3D()#
Return type:

`PySide6.QtGui.QVector3D`

Returns the 3D vector form of this 4D vector, dropping the w coordinate.

PySide6.QtGui.QVector4D.toVector3DAffine()#
Return type:

`PySide6.QtGui.QVector3D`

Returns the 3D vector form of this 4D vector, dividing the x, y, and z coordinates by the w coordinate. Returns a null vector if w is zero.

PySide6.QtGui.QVector4D.w()#
Return type:

float

Returns the w coordinate of this point.

PySide6.QtGui.QVector4D.x()#
Return type:

float

Returns the x coordinate of this point.

PySide6.QtGui.QVector4D.y()#
Return type:

float

Returns the y coordinate of this point.