Portability | GHC |
---|---|

Stability | highly unstable |

Maintainer | stephen.tetley@gmail.com |

Displacing points - often start points.

- type PointDisplace u = Point2 u -> Point2 u
- type ThetaDisplace = Radian -> Radian
- type ThetaPointDisplace u = Radian -> PointDisplace u
- moveStart :: PointDisplace u -> LocCF u a -> LocCF u a
- moveStartTheta :: ThetaPointDisplace u -> LocThetaCF u a -> LocThetaCF u a
- moveStartThetaPoint :: PointDisplace u -> LocThetaCF u a -> LocThetaCF u a
- moveStartThetaAngle :: ThetaDisplace -> LocThetaCF u a -> LocThetaCF u a
- displace :: Num u => u -> u -> PointDisplace u
- displaceVec :: Num u => Vec2 u -> PointDisplace u
- displaceH :: Num u => u -> PointDisplace u
- displaceV :: Num u => u -> PointDisplace u
- northwards :: Num u => u -> PointDisplace u
- southwards :: Num u => u -> PointDisplace u
- eastwards :: Num u => u -> PointDisplace u
- westwards :: Num u => u -> PointDisplace u
- northeastwards :: Floating u => u -> PointDisplace u
- northwestwards :: Floating u => u -> PointDisplace u
- southeastwards :: Floating u => u -> PointDisplace u
- southwestwards :: Floating u => u -> PointDisplace u
- displaceParallel :: Floating u => u -> ThetaPointDisplace u
- displacePerpendicular :: Floating u => u -> ThetaPointDisplace u
- displaceOrtho :: Floating u => Vec2 u -> ThetaPointDisplace u
- thetaNorthwards :: Floating u => u -> ThetaPointDisplace u
- thetaSouthwards :: Floating u => u -> ThetaPointDisplace u
- thetaEastwards :: Floating u => u -> ThetaPointDisplace u
- thetaWestwards :: Floating u => u -> ThetaPointDisplace u
- thetaNortheastwards :: Floating u => u -> ThetaPointDisplace u
- thetaNorthwestwards :: Floating u => u -> ThetaPointDisplace u
- thetaSoutheastwards :: Floating u => u -> ThetaPointDisplace u
- thetaSouthwestwards :: Floating u => u -> ThetaPointDisplace u

# Moving points and angles

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 ThetaDisplace = Radian -> RadianSource

`ThetaDisplace`

is a type representing functions
`from Radian to Radian`

.

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 -> PointDisplace 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.

moveStart :: PointDisplace u -> LocCF u a -> LocCF u aSource

Move the start-point of a `LocCF`

with the supplied
displacement function.

moveStartTheta :: ThetaPointDisplace u -> LocThetaCF u a -> LocThetaCF u aSource

Move the start-point of a `LocThetaCF`

with the supplied
displacement function.

moveStartThetaPoint :: PointDisplace u -> LocThetaCF u a -> LocThetaCF u aSource

Move the start-point of a `LocThetaCF`

with the supplied
displacement function.

moveStartThetaAngle :: ThetaDisplace -> LocThetaCF u a -> LocThetaCF u aSource

Change the inclination of a `LocThetaCF`

with the supplied
displacement function.

displace :: Num u => u -> u -> PointDisplace uSource

`displace`

: ` x -> y -> PointDisplace `

Build a combinator to move `Points`

by the supplied `x`

and
`y`

distances.

displaceVec :: Num u => Vec2 u -> PointDisplace uSource

displaceH :: Num u => u -> PointDisplace uSource

`displaceH`

: ` x -> PointDisplace `

Build a combinator to move `Points`

by horizontally the
supplied `x`

distance.

displaceV :: Num u => u -> PointDisplace uSource

`displaceV`

: ` y -> PointDisplace `

Build a combinator to move `Points`

vertically by the supplied
`y`

distance.

northwards :: Num u => u -> PointDisplace uSource

southwards :: Num u => u -> PointDisplace uSource

eastwards :: Num u => u -> PointDisplace uSource

westwards :: Num u => u -> PointDisplace uSource

northeastwards :: Floating u => u -> PointDisplace uSource

northwestwards :: Floating u => u -> PointDisplace uSource

southeastwards :: Floating u => u -> PointDisplace uSource

southwestwards :: Floating u => u -> PointDisplace uSource

displaceParallel :: Floating u => u -> ThetaPointDisplace uSource

`displaceParallel`

: ` dist -> ThetaPointDisplace `

Build a combinator to move `Points`

in parallel to the
direction of the implicit angle by the supplied distance
`dist`

.

displacePerpendicular :: Floating u => u -> ThetaPointDisplace uSource

`displaceParallel`

: ` dist -> ThetaPointDisplace `

Build a combinator to move `Points`

perpendicular to the
inclnation of the implicit angle by the supplied distance
`dist`

.

displaceOrtho :: Floating u => Vec2 u -> ThetaPointDisplace uSource

`displaceOrtho`

: ` 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.

thetaNorthwards :: Floating u => u -> ThetaPointDisplace uSource

thetaSouthwards :: Floating u => u -> ThetaPointDisplace uSource

thetaEastwards :: Floating u => u -> ThetaPointDisplace uSource

thetaWestwards :: Floating u => u -> ThetaPointDisplace uSource

thetaNortheastwards :: Floating u => u -> ThetaPointDisplace uSource

thetaNorthwestwards :: Floating u => u -> ThetaPointDisplace uSource

thetaSoutheastwards :: Floating u => u -> ThetaPointDisplace uSource

thetaSouthwestwards :: Floating u => u -> ThetaPointDisplace uSource