Vector

class compas.geometry.Vector(x, y, z=0.0, **kwargs)[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)

Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMANAME

data

The data dictionary that represents the vector.

length

The length of this vector.

x

The X coordinate of the point.

y

The Y coordinate of the point.

z

The Z coordinate of the point.

Inherited Attributes

JSONSCHEMA

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

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.

jsondefinitions

Reusable schema definitions.

jsonstring

The representation of the object data in JSON format.

jsonvalidator

JSON schema validator for draft 7.

name

The name of the object.

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

Compute the smallest angle between this vector and another vector.

angle_signed

Compute the signed angle between this vector and another vector.

angle_vectors

Compute the smallest angle between corresponding pairs of two lists of vectors.

angles

Compute both angles between this vector and another vector.

angles_vectors

Compute both angles between corresponding pairs of two lists of vectors.

copy

Make a copy of this vector.

cross

The cross product of this vector and another vector.

cross_vectors

Compute the cross product of two lists of vectors.

dot

The dot product of this vector and another vector.

dot_vectors

Compute the dot product of two lists of vectors.

from_data

Construct a vector from a data dict.

from_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

Compute the length of multiple vectors.

scale

Scale this vector by a factor n.

scaled

Returns a scaled copy of this vector.

sum_vectors

Compute the sum of multiple vectors.

transform

Transform this vector.

transform_collection

Transform a collection of vector objects.

transformed

Return a transformed copy of this vector.

transformed_collection

Create a collection of transformed vectors.

unitize

Scale this vector to unit length.

unitized

Returns a unitized copy of this vector.

Inherited Methods

from_json

Construct an object from serialized data contained in a JSON file.

from_jsonstring

Construct an object from serialized data contained in a JSON string.

to_data

Convert an object to its native data representation.

to_json

Serialize the data representation of an object to a JSON file.

to_jsonstring

Serialize the data representation of an object to a JSON string.

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