opensolid/geometry/3.0.0

NOTE: this package is not compatible with Elm 0.19.1

Polygon2d

Polygon2d

A Polygon2d represents a closed polygon in 2D, optionally with holes. It is defined by an outer loop of vertices and a list of inner loops defining any holes. This module contains a variety of polygon-related functionality, such as

  • Computing the perimeter and area of polygons
  • Scaling, rotating, translating and mirroring polygons
  • Converting polygons between different coordinate systems
  • Triangulating polygons
type alias Polygon2d =
Polygon2d

Constructors

singleLoop : List Point2d -> Polygon2d
{ outerLoop : List Point2d
, innerLoops : List (List Point2d)
}
-> Polygon2d
convexHull : List Point2d -> Polygon2d

Properties

outerLoop : Polygon2d -> List Point2d
innerLoops : Polygon2d -> List (List Point2d)
vertices : Polygon2d -> List Point2d
edges : Polygon2d -> List LineSegment2d
perimeter : Polygon2d -> Float
area : Polygon2d -> Float
boundingBox : Polygon2d -> Maybe BoundingBox2d

Transformations

Transforming a polygon is equivalent to transforming each of its vertices.

scaleAbout : Point2d -> Float -> Polygon2d -> Polygon2d
rotateAround : Point2d -> Float -> Polygon2d -> Polygon2d
translateBy : Vector2d -> Polygon2d -> Polygon2d
translateIn : Direction2d -> Float -> Polygon2d -> Polygon2d
mirrorAcross : Axis2d -> Polygon2d -> Polygon2d

Coordinate conversions

relativeTo : Frame2d -> Polygon2d -> Polygon2d
placeIn : Frame2d -> Polygon2d -> Polygon2d

Triangulation

triangulate : Polygon2d -> TriangularMesh Point2d