Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | stephen.tetley@gmail.com |
Displacing points - often start points.
- type PointDisplace u = Point2 u -> Point2 u
- type ThetaPointDisplace u = Radian -> Point2 u -> Point2 u
- displace :: Num u => Vec2 u -> PointDisplace u
- dispParallel :: Floating u => u -> ThetaPointDisplace u
- dispPerpendicular :: Floating u => u -> ThetaPointDisplace u
- dispOrtho :: Floating u => Vec2 u -> ThetaPointDisplace u
- dispDirectionTheta :: Floating u => Direction -> u -> ThetaPointDisplace u
- dispCardinalTheta :: Floating u => Cardinal -> u -> ThetaPointDisplace u
- go_up :: Num u => u -> Vec2 u
- go_down :: Num u => u -> Vec2 u
- go_left :: Num u => u -> Vec2 u
- go_right :: Num u => u -> Vec2 u
- go_north :: Num u => u -> Vec2 u
- go_south :: Num u => u -> Vec2 u
- go_east :: Num u => u -> Vec2 u
- go_west :: Num u => u -> Vec2 u
- go_north_east :: Floating u => u -> Vec2 u
- go_north_west :: Floating u => u -> Vec2 u
- go_south_east :: Floating u => u -> Vec2 u
- go_south_west :: Floating u => u -> Vec2 u
- go_up_left :: Num u => u -> Vec2 u
- go_up_right :: Num u => u -> Vec2 u
- go_down_left :: Num u => u -> Vec2 u
- go_down_right :: Num u => u -> Vec2 u
Displacement
type PointDisplace u = Point2 u -> Point2 uSource
PointDisplace
is a type representing functions
from Point to Point
.
It is especially useful for building composite graphics where one part of the graphic is drawn from a different start point to the other part.
type ThetaPointDisplace u = Radian -> Point2 u -> Point2 uSource
ThetaPointDisplace
is a type representing functions
from Radian * Point to Point
.
It is useful for building arrowheads which are constructed with an implicit angle representing the direction of the line at the arrow tip.
displace :: Num u => Vec2 u -> PointDisplace uSource
displace
: Vec2 -> PointDisplace
Alias for .+^
from Data.AffineSpace
.
dispParallel :: Floating u => u -> ThetaPointDisplace uSource
dispParallel
: dist -> ThetaPointDisplace
Build a combinator to move Points
in parallel to the
direction of the implicit angle by the supplied distance
dist
.
dispPerpendicular :: Floating u => u -> ThetaPointDisplace uSource
dispParallel
: dist -> ThetaPointDisplace
Build a combinator to move Points
perpendicular to the
inclnation of the implicit angle by the supplied distance
dist
.
dispOrtho :: Floating u => Vec2 u -> ThetaPointDisplace uSource
dispOrtho
: vec -> ThetaPointDisplace
This is a combination of displaceParallel
and
displacePerpendicular
, with the x component of the vector
displaced in parallel and the y component displaced
perpendicular.
dispDirectionTheta :: Floating u => Direction -> u -> ThetaPointDisplace uSource
Angular version of dispDirection
.
The displacement direction is with respect to implicit angle of inclination, so:
up == perpendicular down == perdendicular . negate left == parallel . negate right == parallel
dispCardinalTheta :: Floating u => Cardinal -> u -> ThetaPointDisplace uSource
Angular version of dispCardinal
.
The displacement direction is with respect to implicit angle of inclination, so:
north == perpendicular east == parallel south == perdendicular . negate etc.
Named vectors
go_north_east :: Floating u => u -> Vec2 uSource
go_north_west :: Floating u => u -> Vec2 uSource
go_south_east :: Floating u => u -> Vec2 uSource
go_south_west :: Floating u => u -> Vec2 uSource
go_up_left :: Num u => u -> Vec2 uSource
go_up_right :: Num u => u -> Vec2 uSource
go_down_left :: Num u => u -> Vec2 uSource
go_down_right :: Num u => u -> Vec2 uSource