compas.geometry.Polyline

class compas.geometry.Polyline(points)[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).

Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMA

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

data

Returns the data dictionary that represents the polyline.

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.

length

The length of the polyline.

lines

The lines of the polyline.

name

The name of the object.

points

The points of the polyline.