|
| Wumpus.Basic.Graphic | | Portability | GHC | | Stability | highly unstable | | Maintainer | stephen.tetley@gmail.com |
|
|
|
|
|
| Description |
Graphic type and opertations
** WARNING ** - this module is highly experimental, and
may change significantly or even be dropped from future
revisions.
|
|
| Synopsis |
|
| type Graphic u = H (Primitive u) | | | type DGraphic = Graphic Double | | | type GraphicF u = Point2 u -> Graphic u | | | type DGraphicF = GraphicF Double | | | cc :: (r1 -> a -> ans) -> (r1 -> r2 -> a) -> r1 -> r2 -> ans | | | supply :: u -> (u -> a) -> a | | | drawGraphic :: (Real u, Floating u, FromPtSize u) => Graphic u -> Maybe (Picture u) | | | drawGraphicU :: (Real u, Floating u, FromPtSize u) => Graphic u -> Picture u | | | wrapG :: Primitive u -> Graphic u | | | emptyG :: Graphic u | | | textline :: (TextLabel t, Num u) => t -> String -> GraphicF u | | | straightLine :: (Stroke t, Fractional u) => t -> Vec2 u -> GraphicF u | | | strokedRectangle :: (Stroke t, Fractional u) => t -> u -> u -> GraphicF u | | | filledRectangle :: (Fill t, Fractional u) => t -> u -> u -> GraphicF u | | | rectanglePath :: Num u => u -> u -> Point2 u -> Path u | | | strokedCircle :: (Stroke t, Floating u) => t -> Int -> u -> GraphicF u | | | filledCircle :: (Fill t, Floating u) => t -> Int -> u -> GraphicF u | | | disk :: (Ellipse t, Fractional u) => t -> u -> GraphicF u | | | type Point2T u = Point2 u -> Point2 u | | | type DPoint2T = Point2T Double | | | positionWith :: Point2T u -> (Point2 u -> a) -> Point2 u -> a | | | disp :: Num u => u -> u -> Point2T u | | | vdisp :: Num u => u -> Point2T u | | | hdisp :: Num u => u -> Point2T u | | | data Rectangle u = Rectangle {} | | | type DRectangle = Rectangle Double | | | grid :: (Stroke t, RealFrac u) => t -> u -> u -> Rectangle u -> GraphicF u | | | border :: (Stroke t, Num u) => t -> Rectangle u -> GraphicF u | | | type RectangleLoc u = (Rectangle u, Point2 u) | | | type DRectangleLoc = RectangleLoc Double | | | withinRectangleLoc :: (Num u, Ord u) => Point2 u -> RectangleLoc u -> Bool |
|
|
|
| Type aliases
|
|
|
| Note - this representation allows for zero, one or more
Primitives to be collected together.
|
|
|
|
|
|
|
|
| General combinators
|
|
| cc :: (r1 -> a -> ans) -> (r1 -> r2 -> a) -> r1 -> r2 -> ans | Source |
|
Composition operator...
cc f g = \x y -> f x (g x y)
|
|
| supply :: u -> (u -> a) -> a | Source |
|
| Reverse application.
|
|
| Operations
|
|
|
| Note - a Picture cannot be empty whereas a Graphic can.
Hence this function returns via Maybe.
|
|
|
| Unsafe version of drawGraphic - this function throws
an error when the graphic is empty.
|
|
|
| Lift a Primitive to a Graphic
|
|
|
| The empty graphic.
|
|
| Graphic primitives
|
|
|
Text should not contain newlines.
Note the supplied point is the 'left-baseline'.
|
|
|
| Vector is applied to the point.
|
|
|
| Supplied point is center.
|
|
|
| Supplied point is center.
|
|
|
| Supplied point is bottom-left.
|
|
|
strokedCircle : stroked_props * num_subs * radius -> GraphicF
Draw a stroked circle made from Bezier curves. num_subs is
the number of subdivisions per quadrant.
The result is a HOF (GraphicF :: Point -> Graphic) where the
point is the center.
|
|
|
filledCircle : fill_props * num_subs * radius -> GraphicF
Draw a filled circle made from Bezier curves. num_subs is
the number of subdivisions per quadrant.
The result is a HOF (GraphicF :: Point -> Graphic) where the
point is the center.
|
|
|
disk is drawn with Wumpus-Core's ellipse primitive.
This is a efficient representation of circles using
PostScript's arc or SVG's circle in the generated
output. However, stroked-circles do not draw well after
non-uniform scaling - the line width is scaled as well as
the shape.
For stroked circles that can be scaled, consider making the
circle from Bezier curves.
|
|
| Displacement
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Grid
|
|
|
| Constructors | | Rectangle | | | rect_width :: !u | | | rect_height :: !u | |
|
| Instances | |
|
|
|
|
|
grid : stroke_props * xstep * ystep * boundary_rect -> GraphicF
The result is a HOF (GraphicF :: Point -> Graphic) where the
point is bottom-left.
|
|
|
border : stroke_props * boundary_rect -> GraphicF
The result is a HOF (GraphicF :: Point -> Graphic) where the
point is bottom-left.
|
|
|
|
|
|
|
|
| Produced by Haddock version 2.6.1 |