# QVector3D¶

The `QVector3D` class represents a vector or vertex in 3D space. More New in version 4.6.

## Detailed Description¶

Vectors are one of the main building blocks of 3D representation and drawing. They consist of three coordinates, traditionally called x, y, and z.

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

class `QVector3D`

QVector3D(point)

QVector3D(point)

QVector3D(vector)

QVector3D(vector, zpos)

QVector3D(vector)

QVector3D(xpos, ypos, zpos)

param ypos

`float`

param point

`QPoint`

param zpos

`float`

param vector

`QVector2D`

param xpos

`float`

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

Constructs a 3D vector from the specified 2D `vector` . The z coordinate is set to `zpos` .

Constructs a vector with coordinates (`xpos` , `ypos` , `zpos` ).

`PySide2.QtGui.QVector3D.``__reduce__`()
Return type

`PyObject`

`PySide2.QtGui.QVector3D.``__repr__`()
Return type

`PyObject`

static `PySide2.QtGui.QVector3D.``crossProduct`(v1, v2)
Parameters
Return type

`QVector3D`

Returns the cross-product of vectors `v1` and `v2` , which corresponds to the normal vector of a plane defined by `v1` and `v2` .

`PySide2.QtGui.QVector3D.``distanceToLine`(point, direction)
Parameters
Return type

`float`

Returns the distance that this vertex is from a line defined by `point` and the unit vector `direction` .

If `direction` is a null vector, then it does not define a line. In that case, the distance from `point` to this vertex is returned.

`PySide2.QtGui.QVector3D.``distanceToPlane`(plane, normal)
Parameters
Return type

`float`

Returns the distance from this vertex to a plane defined by the vertex `plane` and a `normal` unit vector. The `normal` parameter is assumed to have been normalized to a unit vector.

The return value will be negative if the vertex is below the plane, or zero if it is on the plane.

`PySide2.QtGui.QVector3D.``distanceToPlane`(plane1, plane2, plane3)
Parameters
Return type

`float`

Returns the distance from this vertex to a plane defined by the vertices `plane1` , `plane2` and `plane3` .

The return value will be negative if the vertex is below the plane, or zero if it is on the plane.

The two vectors that define the plane are `plane2` - `plane1` and `plane3` - `plane1` .

`PySide2.QtGui.QVector3D.``distanceToPoint`(point)
Parameters

point`QVector3D`

Return type

`float`

Returns the distance from this vertex to a point defined by the vertex `point` .

static `PySide2.QtGui.QVector3D.``dotProduct`(v1, v2)
Parameters
Return type

`float`

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

`PySide2.QtGui.QVector3D.``isNull`()
Return type

`bool`

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

`PySide2.QtGui.QVector3D.``length`()
Return type

`float`

Returns the length of the vector from the origin.

`PySide2.QtGui.QVector3D.``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.

static `PySide2.QtGui.QVector3D.``normal`(v1, v2)
Parameters
Return type

`QVector3D`

Returns the normal vector of a plane defined by vectors `v1` and `v2` , normalized to be a unit vector.

Use `crossProduct()` to compute the cross-product of `v1` and `v2` if you do not need the result to be normalized to a unit vector.

static `PySide2.QtGui.QVector3D.``normal`(v1, v2, v3)
Parameters
Return type

`QVector3D`

Returns the normal vector of a plane defined by vectors `v2` - `v1` and `v3` - `v1` , normalized to be a unit vector.

Use `crossProduct()` to compute the cross-product of `v2` - `v1` and `v3` - `v1` if you do not need the result to be normalized to a unit vector.

`PySide2.QtGui.QVector3D.``normalize`()

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

`PySide2.QtGui.QVector3D.``normalized`()
Return type

`QVector3D`

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.

`PySide2.QtGui.QVector3D.``__ne__`(v2)
Parameters
Return type

`bool`

`PySide2.QtGui.QVector3D.``__mul__`(factor)
Parameters

factor`float`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__mul__`(factor)
Parameters

factor`float`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__mul__`(v2)
Parameters
Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__mul__`(matrix)
Parameters

matrix`QMatrix4x4`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__mul__`(matrix)
Parameters

matrix`QMatrix4x4`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__mul__`(quaternion)
Parameters

quaternion`QQuaternion`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__imul__`(vector)
Parameters

vector`QVector3D`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__imul__`(factor)
Parameters

factor`float`

Return type

`QVector3D`

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

`operator/=()`

`PySide2.QtGui.QVector3D.``__add__`(v2)
Parameters
Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__iadd__`(vector)
Parameters

vector`QVector3D`

Return type

`QVector3D`

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

`operator-=()`

`PySide2.QtGui.QVector3D.``__sub__`()
Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__sub__`(v2)
Parameters
Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__isub__`(vector)
Parameters

vector`QVector3D`

Return type

`QVector3D`

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

`operator+=()`

`PySide2.QtGui.QVector3D.``__div__`(divisor)
Parameters

divisor`QVector3D`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__div__`(divisor)
Parameters

divisor`float`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__idiv__`(vector)
Parameters

vector`QVector3D`

Return type

`QVector3D`

`PySide2.QtGui.QVector3D.``__idiv__`(divisor)
Parameters

divisor`float`

Return type

`QVector3D`

Divides this vector’s coordinates by the given `divisor` , and returns a reference to this vector.

`operator*=()`

`PySide2.QtGui.QVector3D.``__eq__`(v2)
Parameters
Return type

`bool`

`PySide2.QtGui.QVector3D.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` < 3).

`PySide2.QtGui.QVector3D.``project`(modelView, projection, viewport)
Parameters
Return type

`QVector3D`

Returns the window coordinates of this vector initially in object/model coordinates using the model view matrix `modelView` , the projection matrix `projection` and the viewport dimensions `viewport` .

When transforming from clip to normalized space, a division by the w component on the vector components takes place. To prevent dividing by 0 if w equals to 0, it is set to 1.

Note

the returned y coordinates are in OpenGL orientation. OpenGL expects the bottom to be 0 whereas for Qt top is 0.

`PySide2.QtGui.QVector3D.``setX`(x)
Parameters

x`float`

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

`PySide2.QtGui.QVector3D.``setY`(y)
Parameters

y`float`

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

`PySide2.QtGui.QVector3D.``setZ`(z)
Parameters

z`float`

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

`PySide2.QtGui.QVector3D.``toPoint`()
Return type

`QPoint`

Returns the `QPoint` form of this 3D vector. The z coordinate is dropped.

`PySide2.QtGui.QVector3D.``toPointF`()
Return type

`QPointF`

Returns the `QPointF` form of this 3D vector. The z coordinate is dropped.

`PySide2.QtGui.QVector3D.``toTuple`()
Return type

`PyObject`

`PySide2.QtGui.QVector3D.``toVector2D`()
Return type

`QVector2D`

Returns the 2D vector form of this 3D vector, dropping the z coordinate.

`PySide2.QtGui.QVector3D.``toVector4D`()
Return type

`QVector4D`

Returns the 4D form of this 3D vector, with the w coordinate set to zero.

`PySide2.QtGui.QVector3D.``unproject`(modelView, projection, viewport)
Parameters
Return type

`QVector3D`

Returns the object/model coordinates of this vector initially in window coordinates using the model view matrix `modelView` , the projection matrix `projection` and the viewport dimensions `viewport` .

When transforming from clip to normalized space, a division by the w component of the vector components takes place. To prevent dividing by 0 if w equals to 0, it is set to 1.

Note

y coordinates in `viewport` should use OpenGL orientation. OpenGL expects the bottom to be 0 whereas for Qt top is 0.

`PySide2.QtGui.QVector3D.``x`()
Return type

`float`

Returns the x coordinate of this point.

`PySide2.QtGui.QVector3D.``y`()
Return type

`float`

Returns the y coordinate of this point.

`PySide2.QtGui.QVector3D.``z`()
`float`