# Vector

class compas.geometry.Vector(x, y, z=0.0, **kwargs)[source]

A vector is defined by XYZ components and a homogenisation factor.

Parameters
• x (float) – The X component of the vector.

• y (float) – The Y component of the vector.

• z (float) – The Z component of the vector.

Attributes
• data (dict) – The data representation of the vector.

• x (float) – The component along the X axis of the vector.

• y (float) – The component along the Y axis of the vector.

• z (float) – The component along the Z axis of the vector.

• length (float, read-only) – The length of the vector.

Examples

>>> u = Vector(1, 0, 0)
>>> v = Vector(0, 1, 0)
>>> u
Vector(1.000, 0.000, 0.000)
>>> v
Vector(0.000, 1.000, 0.000)
>>> u.x
1.0
>>> u
1.0
>>> u.length
1.0
>>> u + v
Vector(1.000, 1.000, 0.000)
>>> u + [0.0, 1.0, 0.0]
Vector(1.000, 1.000, 0.000)
>>> u * 2
Vector(2.000, 0.000, 0.000)
>>> u.dot(v)
0.0
>>> u.cross(v)
Vector(0.000, 0.000, 1.000)


Methods

 Construct a unit vector along the X axis. Construct a unit vector along the Y axis. Construct a unit vector along the Z axis. angle(other) Compute the smallest angle between this vector and another vector. angle_signed(other, normal) Compute the signed angle between this vector and another vector. angle_vectors(left, right) Compute the smallest angle between corresponding pairs of two lists of vectors. angles(other) Compute both angles between this vector and another vector. angles_vectors(left, right) Compute both angles between corresponding pairs of two lists of vectors. Make a copy of this vector. cross(other) The cross product of this vector and another vector. cross_vectors(left, right) Compute the cross product of two lists of vectors. dot(other) The dot product of this vector and another vector. dot_vectors(left, right) Compute the dot product of two lists of vectors. from_data(data) Construct a vector from a data dict. from_json(filepath) Construct an object from serialized data contained in a JSON file. from_jsonstring(string) Construct an object from serialized data contained in a JSON string. from_start_end(start, end) Construct a vector from start and end points. Invert the direction of this vector Returns a inverted copy of this vector length_vectors(vectors) Compute the length of multiple vectors. Scale this vector by a factor n. Returns a scaled copy of this vector. sum_vectors(vectors) Compute the sum of multiple vectors. Convert an object to its native data representation. to_json(filepath[, pretty]) Serialize the data representation of an object to a JSON file. to_jsonstring([pretty]) Serialize the data representation of an object to a JSON string. Transform this vector. transform_collection(collection, X) Transform a collection of vector objects. Return a transformed copy of this vector. transformed_collection(collection, X) Create a collection of transformed vectors. Scale this vector to unit length. Returns a unitized copy of this vector. Validate the object's data against its data schema (self.DATASCHEMA). Validate the object's data against its json schema (self.JSONSCHEMA).