|
|
|
| Description |
| Polygons
|
|
| Synopsis |
|
| | | type Polygon2 a = Polygon Point2 a | | | type Polygon3 a = Polygon Point3 a | | | mapPolygon :: (Point p, Num a, Num b) => (p a -> p b) -> Polygon p a -> Polygon p b | | | vertices :: (Point p, Num a) => Polygon p a -> [p a] | | | edges :: [a] -> [(a, a)] | | | angles :: [a] -> [(a, a, a)] | | | area :: Fractional a => Polygon2 a -> a | | | contains :: (Num a, Ord a) => Polygon2 a -> P2 a -> Bool | | | isConvex :: (Ord a, Num a) => Polygon2 a -> Bool | | | deleteCollinear :: (Ord a, Num a) => [P2 a] -> [P2 a] | | | extreme :: (Num a, Ord a) => P2 a -> Polygon2 a -> P2 a | | | extremeArr :: (Num a, Ord a) => Array Int (P2 a) -> P2 a -> Int -> Int | | | naiveInConvex :: (Num a, Ord a) => P2 a -> Polygon2 a -> Bool | | | inConvexInteriour :: (Fractional a, Ord a) => P2 a -> Polygon2 a -> Bool | | | inConvex :: (Fractional a, Ord a) => P2 a -> Polygon2 a -> Bool |
|
|
| Documentation |
|
|
| Constructors | | PolygonCW [p a] | | | PolygonCCW [p a] | |
| Instances | |
|
|
|
|
|
|
|
|
|
|
| edges :: [a] -> [(a, a)] | Source |
|
|
| angles :: [a] -> [(a, a, a)] | Source |
|
|
|
| Die Flche eines Polygons wird nach Theorem 1.4.3 aus cite{orourke94:cg} berechnet.
|
|
|
| texttt{countCrossings} ist eine erweiterte Version der Funktion
texttt{InPoly} aus cite[S. 235]{orourke94:cg}. Die auf Seite 236
beschriebenen Nachteile werden durch Extratests umgangen.
|
|
|
|
|
|
|
- Extremale Punkte eines konvexen Polygons
|extreme| ermittelt den extremalen Punkt des konvexen Polygons |p| bezglich des
Richtungsvektors |u| (aus cite[K. 7.3]{orourke94:cg}).
|
|
|
|
|
Fr konvexe Polygone ist der Test auf Enthaltensein einfach, zuerst die naive Methode, die
testet, ob sich der Punkt links von oder auf allen Kanten befindet.
|
|
|
| Der Punkt |p| ist genau dann im Inneren eines Polygon enthalten, wenn die Strecke zwischen |p|
und einem Punkt |c| im Innern von |p| keinen Schnittpunkt mit dem Rand von |p| bei einer Kante
|e| hat, die inzident zum extremalen Eckpunkt von |p| in Richtung |p-c| ist.
|
|
|
|
| Produced by Haddock version 2.4.2 |