Line
- class compas.geometry.Line(p1, p2, **kwargs)[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
data (dict) – The data representation of the line.
start (
compas.geometry.Point
) – The first point of the line.end (
compas.geometry.Point
) – The second point of the line.vector (
compas.geometry.Vector
) – A vector pointing fromstart
toend
.direction (
compas.geometry.Vector
) – A unit vector pointing fromstart
toend
.midpoint (
compas.geometry.Point
) – A point half way betweenstart
andend
.length (float, read-only) – The length of the line segment between
start
andend
.
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.start Point(0.000, 0.000, 0.000) >>> line.midpoint Point(0.500, 0.500, 0.500) >>> line.length == math.sqrt(1 + 1 + 1) True >>> line.direction Vector(0.577, 0.577, 0.577)
Methods
copy
([cls])Make an independent copy of the data object.
from_data
(data)Construct a frame 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.
point
(t)A point between start and end at a specific normalized parameter.
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 line.
transform_collection
(collection, X)Transform a collection of
Line
objects.transformed
(transformation)Returns a transformed copy of this geometry.
transformed_collection
(collection, X)Create a collection of transformed
Line
objects.Validate the object's data against its data schema (self.DATASCHEMA).
Validate the object's data against its json schema (self.JSONSCHEMA).