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

Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMANAME

data

Returns the data dictionary that represents the polyline.

length

The length of the polyline.

lines

The lines of the polyline.

points

The points of the polyline.

Inherited Attributes

JSONSCHEMA

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

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.

jsondefinitions

Reusable schema definitions.

jsonstring

The representation of the object data in JSON format.

jsonvalidator

JSON schema validator for draft 7.

name

The name of the object.

Methods

divide_polyline

Divide a polyline in equal segments.

divide_polyline_by_length

Splits a polyline in segments of a given length.

from_data

Construct a polyline from a data dict.

is_closed

Determine if the polyline is closed.

is_selfintersecting

Determine if the polyline is self-intersecting.

point

Point on the polyline at a specific normalized parameter.

split_at_corners

Splits a polyline at corners larger than the given angle_threshold

tangent_at_point_on_polyline

Calculates the tangent vector of a point on a polyline

transform

Transform this polyline.

Inherited Methods

copy

Make an independent copy of the data object.

from_json

Construct an object from serialized data contained in a JSON file.

from_jsonstring

Construct an object from serialized data contained in a JSON string.

to_data

Convert an object to its native data representation.

to_json

Serialize the data representation of an object to a JSON file.

to_jsonstring

Serialize the data representation of an object to a JSON string.

transformed

Returns a transformed copy of this geometry.

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