|
|
|
| Description |
| Two dimensional points
|
|
| Synopsis |
|
| module GeomAlg.Point | | | newtype Point2 a = Point2 (a, a) | | | type Point2D = Point2 Double | | | type P2 a = Point2 a | | | cross2 :: Num a => Point2 a -> Point2 a -> a | | | area2 :: Num a => Point2 a -> Point2 a -> Point2 a -> a | | | angle :: (Floating a, Ord a) => P2 a -> a | | | angle2 :: (Floating a, Ord a) => P2 a -> P2 a -> a | | | angle3 :: (Floating a, Ord a) => P2 a -> P2 a -> P2 a -> a | | | angleWrt :: (Floating a, Ord a) => P2 a -> P2 a -> P2 a -> a | | | angleEps :: (Floating a, Ord a) => a -> P2 a -> P2 a -> a | | | translate :: (Floating a, Ord a) => P2 a -> a -> a -> P2 a | | | rotate :: (Floating a, Ord a) => P2 a -> P2 a -> a -> P2 a | | | rotateOrg :: (Floating a, Ord a) => P2 a -> a -> P2 a | | | reflect :: Fractional a => P2 a -> P2 a -> P2 a -> P2 a | | | lexic2 :: (Num a, Ord a) => OrderRel (P2 a) | | | aboveOrOn :: (Num a, Ord a) => Rel (P2 a) | | | aboveOrRight :: (Num a, Ord a) => Rel (P2 a) | | | aboveOrLeft :: (Num a, Ord a) => Rel (P2 a) | | | above :: (Num a, Ord a) => Rel (P2 a) | | | belowOrOn :: (Num a, Ord a) => Rel (P2 a) | | | belowOrRight :: (Num a, Ord a) => Rel (P2 a) | | | belowOrLeft :: (Num a, Ord a) => Rel (P2 a) | | | below :: (Num a, Ord a) => Rel (P2 a) | | | leftOfOrOn :: (Num a, Ord a) => Rel (P2 a) | | | leftOrBelow :: (Num a, Ord a) => Rel (P2 a) | | | leftOrAbove :: (Num a, Ord a) => Rel (P2 a) | | | leftOf :: (Num a, Ord a) => Rel (P2 a) | | | rightOfOrOn :: (Num a, Ord a) => Rel (P2 a) | | | rightOrBelow :: (Num a, Ord a) => Rel (P2 a) | | | rightOrAbove :: (Num a, Ord a) => Rel (P2 a) | | | rightOf :: (Num a, Ord a) => Rel (P2 a) | | | rightestLowest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | leftestHighest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | rightestHighest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | lowestLeftest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | highestLeftest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | lowestRightest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | highestRightest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | lowest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | highest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | rightest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | leftest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | leftestLowest :: (Num a, Ord a) => [Point2 a] -> Point2 a | | | | | orientation :: (Num a, Ord a) => Point2 a -> Point2 a -> Point2 a -> Orientation | | | caseOrientation :: (Ord a, Num a) => Bool -> Bool -> Bool -> Rel3 (Point2 a) | | | isRightTurn :: (Num a, Ord a) => Rel3 (Point2 a) | | | isLeftTurn :: (Num a, Ord a) => Rel3 (Point2 a) | | | isLeftTurnOrOn :: (Num a, Ord a) => Rel3 (Point2 a) | | | isRightTurnOrOn :: (Num a, Ord a) => Rel3 (Point2 a) | | | isOn :: (Num a, Ord a) => Rel3 (Point2 a) | | | isLeftTurnOrNearer :: (Num a, Ord a) => Rel3 (Point2 a) | | | isRightTurnOrNearer :: (Num a, Ord a) => Rel3 (Point2 a) | | | isCollinear :: (Num a, Ord a) => Rel3 (Point2 a) | | | clockwise3 :: (Ord a, Num a) => [Point2 a] -> [Point2 a] | | | cclockwise3 :: (Ord a, Num a) => [Point2 a] -> [Point2 a] |
|
|
| Documentation |
|
| module GeomAlg.Point |
|
|
| Constructors | | Instances | |
|
|
|
|
|
|
|
| The cross product for two dimensional points is taken from [CLR90, p. 887-888] and [R94, p.19]
|
|
|
| area2 calculates the determinant.
|
|
|
| Angles
|
|
|
|
|
|
|
|
|
|
|
| Translate the point p in direction a for a distance of d.
|
|
|
| Rotate the point p for angle phi around the point o.
|
|
|
| Rotate the point p for angle phi around the origin.
|
|
|
| Reflect the point p at the line qr.
|
|
|
| Boolean and Ordering relations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Extremal values.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Orientation is the orientation of point r with respect to the line pq [R94, p.30-31].
| | Constructors | | Collinear | | | Clockwise | | | CounterClockwise | |
| Instances | |
|
|
|
|
|
| The collinear case for floating point arithmetic has to be implemented with epsilon-intervals [R94, p.30-31].
|
|
|
| Orientation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Produced by Haddock version 2.4.2 |