Line

class compas.geometry.Line(p1, p2)[source]

Bases: compas.geometry.primitives._primitive.Primitive

A line is defined by two points.

Parameters
  • p1 (point) – The first point.

  • p2 (point) – The second point.

Attributes

Examples

>>> line = Line([0, 0, 0], [1, 1, 1])
>>> line
Line(Point(0.000, 0.000, 0.000), Point(1.000, 1.000, 1.000))
>>> line.midpoint
Point(0.500, 0.500, 0.500)
>>> line.length == sqrt(1 + 1 + 1)
True
>>> line.direction
Vector(0.577, 0.577, 0.577)
>>> type(line.start) == Point
True
>>> type(line.midpoint) == Point
True
>>> type(line.direction) == Vector
True

Methods

__init__(p1, p2)

Initialize self.

copy()

Makes a copy of this primitive.

from_data(data)

Construct a frame from a data dict.

from_json(filepath)

Construct a primitive from structured data contained in a json file.

point(t)

A point between start and end at a specific normalized parameter.

to_data()

Returns the data dictionary that represents the primitive.

to_json(filepath)

Serialise the structured data representing the primitive to json.

transform(T)

Transform this line.

transform_collection(collection, X)

Transform a collection of Line objects.

transformed(transformation)

Returns a transformed copy of this primitive.

transformed_collection(collection, X)

Create a collection of transformed Line objects.

validate_data()

Validate the data of this object against its data schema (self.DATASCHEMA).

validate_json()

Validate the data loaded from a JSON representation of the data of this object against its data schema (self.DATASCHEMA).