Maintainer | diagrams-discuss@googlegroups.com |
---|---|
Safe Haskell | None |
Basic types for three-dimensional Euclidean space.
- data R3 = R3 !Double !Double !Double
- r3 :: (Double, Double, Double) -> R3
- unr3 :: R3 -> (Double, Double, Double)
- mkR3 :: Double -> Double -> Double -> R3
- type P3 = Point R3
- p3 :: (Double, Double, Double) -> P3
- unp3 :: P3 -> (Double, Double, Double)
- mkP3 :: Double -> Double -> Double -> P3
- type T3 = Transformation R3
- r3Iso :: Iso' R3 (Double, Double, Double)
- p3Iso :: Iso' P3 (Double, Double, Double)
- data Direction
- direction :: R3 -> Direction
- fromDirection :: Direction -> R3
- angleBetweenDirs :: Direction -> Direction -> Angle
- class Spherical t where
- class Cylindrical t where
- cylindrical :: Iso' t (Double, Angle, Double)
- class HasPhi t where
3D Euclidean space
The three-dimensional Euclidean vector space R^3.
type T3 = Transformation R3Source
Transformations in R^3.
Directions in 3D
A Direction
represents directions in R3. The constructor is
not exported; Direction
s can be used with fromDirection
and the
lenses provided by its instances.
direction :: R3 -> DirectionSource
direction v
is the direction in which v
points. Returns an
unspecified value when given the zero vector as input.
fromDirection :: Direction -> R3Source
fromDirection d
is the unit vector in the direction d
.
angleBetweenDirs :: Direction -> Direction -> AngleSource
compute the positive angle between the two directions in their common plane
other coördinate systems
Types which can be expressed in spherical 3D coordinates, as a triple (r,θ,φ), where θ is rotation about the Z axis, and φ is th angle from the Z axis.
class Cylindrical t whereSource
Types which can be expressed in cylindrical 3D coordinates.