opensolid/geometry/3.0.0

NOTE: this package is not compatible with Elm 0.19.1

Point2d

Point2d

A Point2d represents a position in 2D space and is defined by its X and Y coordinates. This module contains a variety of point-related functionality, such as

  • Measuring distance between points
  • Scaling, rotating, translating, mirroring and projecting points
  • Converting points between different coordinate systems

Points are distinct from vectors but interact with them in well-defined ways; you can translate a point by a vector to result in a new point, or you can compute the vector from one point to another, but you cannot 'add' two points like you can add two vectors.

type alias Point2d =
Point2d

Constants

origin : Point2d

Constructors

fromCoordinates : ( Float, Float ) -> Point2d
fromCoordinatesIn : Frame2d -> ( Float, Float ) -> Point2d
fromPolarCoordinates : ( Float, Float ) -> Point2d
fromPolarCoordinatesIn : Frame2d -> ( Float, Float ) -> Point2d
midpoint : Point2d -> Point2d -> Point2d
interpolateFrom : Point2d -> Point2d -> Float -> Point2d
along : Axis2d -> Float -> Point2d
circumcenter : Point2d -> Point2d -> Point2d -> Maybe Point2d

Properties

coordinates : Point2d -> ( Float, Float )
xCoordinate : Point2d -> Float
yCoordinate : Point2d -> Float
polarCoordinates : Point2d -> ( Float, Float )

Comparison

equalWithin : Float -> Point2d -> Point2d -> Bool

Measurement

distanceFrom : Point2d -> Point2d -> Float
squaredDistanceFrom : Point2d -> Point2d -> Float
signedDistanceAlong : Axis2d -> Point2d -> Float
signedDistanceFrom : Axis2d -> Point2d -> Float

Transformations

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

Coordinate conversions

relativeTo : Frame2d -> Point2d -> Point2d
placeIn : Frame2d -> Point2d -> Point2d