# Polyline

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

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

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. Determine if the polyline is closed. 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 Calculates the tangent vector of a point on a polyline 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 this polyline. transformed(transformation) Returns a transformed copy of this geometry. Validate the object's data against its data schema (self.DATASCHEMA). Validate the object's data against its json schema (self.JSONSCHEMA).