opensolid/geometry/3.0.0

NOTE: this package is not compatible with Elm 0.19.1

Point3d

Point3d

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

  • Measuring distance between points, or the distance of a point from an axis or a plane
  • 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 Point3d =
Point3d

Constants

origin : Point3d

Constructors

fromCoordinates : ( Float, Float, Float ) -> Point3d
fromCoordinatesIn : Frame3d -> ( Float, Float, Float ) -> Point3d
midpoint : Point3d -> Point3d -> Point3d
interpolateFrom : Point3d -> Point3d -> Float -> Point3d
along : Axis3d -> Float -> Point3d
on : SketchPlane3d -> Point2d -> Point3d
circumcenter : Point3d -> Point3d -> Point3d -> Maybe Point3d

Properties

coordinates : Point3d -> ( Float, Float, Float )
xCoordinate : Point3d -> Float
yCoordinate : Point3d -> Float
zCoordinate : Point3d -> Float

Comparison

equalWithin : Float -> Point3d -> Point3d -> Bool

Measurement

distanceFrom : Point3d -> Point3d -> Float
squaredDistanceFrom : Point3d -> Point3d -> Float
signedDistanceAlong : Axis3d -> Point3d -> Float
distanceFromAxis : Axis3d -> Point3d -> Float
squaredDistanceFromAxis : Axis3d -> Point3d -> Float
signedDistanceFrom : Plane3d -> Point3d -> Float

Transformations

scaleAbout : Point3d -> Float -> Point3d -> Point3d
rotateAround : Axis3d -> Float -> Point3d -> Point3d
translateBy : Vector3d -> Point3d -> Point3d
translateIn : Direction3d -> Float -> Point3d -> Point3d
mirrorAcross : Plane3d -> Point3d -> Point3d
projectOnto : Plane3d -> Point3d -> Point3d
projectOntoAxis : Axis3d -> Point3d -> Point3d

Coordinate conversions

relativeTo : Frame3d -> Point3d -> Point3d
placeIn : Frame3d -> Point3d -> Point3d
projectInto : SketchPlane3d -> Point3d -> Point2d