Polyline

class compas.geometry.Polyline(points, **kwargs)[source]

Bases: compas.geometry.primitives._primitive.Primitive

A polyline is a sequence of points connected by line segments.

A polyline is a piecewise linear element. It does not have an interior. It can be open or closed. It can be self-intersecting.

Parameters

points (list of point) – An ordered list of points. Each consecutive pair of points forms a segment of the polyline.

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

  • points (list of compas.geometry.Point) – The polyline points.

  • lines (list of compas.geometry.Line, read-only) – The polyline segments.

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

Examples

>>> polyline = Polyline([[0,0,0], [1,0,0], [2,0,0], [3,0,0]])
>>> polyline.length
3.0
>>> type(polyline.points[0]) == Point
True
>>> polyline.points[0].x
0.0
>>> type(polyline.lines[0]) == Line
True
>>> polyline.lines[0].length
1.0

Methods

copy([cls])

Make an independent copy of the data object.

divide_polyline(num_segments)

Divide a polyline in equal segments.

divide_polyline_by_length(length[, strict, tol])

Splits a polyline in segments of a given length.

from_data(data)

Construct a polyline 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.

is_closed()

Determine if the polyline is closed.

is_selfintersecting()

Determine if the polyline is self-intersecting.

point(t[, snap])

Point on the polyline at a specific normalized parameter.

split_at_corners(angle_threshold)

Splits a polyline at corners larger than the given angle_threshold

tangent_at_point_on_polyline(point)

Calculates the tangent vector of a point on a polyline

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

transformed(transformation)

Returns a transformed copy of this primitive.

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