compas.geometry.Vector

class compas.geometry.Vector(x, y, z=0)[source]

Bases: compas.geometry.primitives._primitive.Primitive

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[0]
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

Xaxis()

Construct a unit vector along the X axis.

Yaxis()

Construct a unit vector along the Y axis.

Zaxis()

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.

copy()

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()

Invert the direction of this vector

inverted()

Returns a inverted copy of this vector

length_vectors(vectors)

Compute the length of multiple vectors.

scale(n)

Scale this vector by a factor n.

scaled(n)

Returns a scaled copy of this vector.

sum_vectors(vectors)

Compute the sum of multiple vectors.

to_data()

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(T)

Transform this vector.

transform_collection(collection, X)

Transform a collection of vector objects.

transformed(T)

Return a transformed copy of this vector.

transformed_collection(collection, X)

Create a collection of transformed vectors.

unitize()

Scale this vector to unit length.

unitized()

Returns a unitized copy of this vector.

validate_data()

Validate the object’s data against its data schema (self.DATASCHEMA).

validate_json()

Validate the object’s data against its json schema (self.JSONSCHEMA).

Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

The schema of the JSON representation of the data of this object.

data

The data dictionary that represents the vector.

dtype

The type of the object in the form of a “2-level” import and a class name.

guid

The globally unique identifier of the object.

length

The length of this vector.

name

The name of the object.

x

The X coordinate of the point.

y

The Y coordinate of the point.

z

The Z coordinate of the point.