Safe Haskell | None |
---|

Data types for representing pictures.

- type Point = (Float, Float)
- type Vector = Point
- type Path = [Point]
- data Picture
- = Blank
- | Polygon Path
- | Line Path
- | Circle Float
- | ThickCircle Float Float
- | Arc Float Float Float
- | ThickArc Float Float Float Float
- | Text String
- | Bitmap Int Int BitmapData Bool
- | Color Color Picture
- | Translate Float Float Picture
- | Rotate Float Picture
- | Scale Float Float Picture
- | Pictures [Picture]

- data BitmapData
- blank :: Picture
- polygon :: Path -> Picture
- line :: Path -> Picture
- circle :: Float -> Picture
- thickCircle :: Float -> Float -> Picture
- arc :: Float -> Float -> Float -> Picture
- thickArc :: Float -> Float -> Float -> Float -> Picture
- text :: String -> Picture
- bitmap :: Int -> Int -> BitmapData -> Bool -> Picture
- color :: Color -> Picture -> Picture
- translate :: Float -> Float -> Picture -> Picture
- rotate :: Float -> Picture -> Picture
- scale :: Float -> Float -> Picture -> Picture
- pictures :: [Picture] -> Picture
- lineLoop :: Path -> Picture
- circleSolid :: Float -> Picture
- arcSolid :: Float -> Float -> Float -> Picture
- sectorWire :: Float -> Float -> Float -> Picture
- rectanglePath :: Float -> Float -> Path
- rectangleWire :: Float -> Float -> Picture
- rectangleSolid :: Float -> Float -> Picture
- rectangleUpperPath :: Float -> Float -> Path
- rectangleUpperWire :: Float -> Float -> Picture
- rectangleUpperSolid :: Float -> Float -> Picture
- bitmapOfForeignPtr :: Int -> Int -> ForeignPtr Word8 -> Bool -> Picture
- bitmapOfByteString :: Int -> Int -> ByteString -> Bool -> Picture
- bitmapOfBMP :: BMP -> Picture
- loadBMP :: FilePath -> IO Picture

# Documentation

type Point = (Float, Float)Source

A point on the x-y plane.
Points can also be treated as `Vector`

s, so Graphics.Gloss.Data.Vector
may also be useful.

A 2D picture

Blank | A blank picture, with nothing in it. |

Polygon Path | A convex polygon filled with a solid color. |

Line Path | A line along an arbitrary path. |

Circle Float | A circle with the given radius. |

ThickCircle Float Float | A circle with the given thickness and radius.
If the thickness is 0 then this is equivalent to |

Arc Float Float Float | A circular arc drawn counter-clockwise between two angles (in degrees) at the given radius. |

ThickArc Float Float Float Float | A circular arc drawn counter-clockwise between two angles
(in degrees), with the given radius and thickness.
If the thickness is 0 then this is equivalent to |

Text String | Some text to draw with a vector font. |

Bitmap Int Int BitmapData Bool | A bitmap image with a width, height and some 32-bit RGBA bitmap data. The boolean flag controls whether Gloss should cache the data
between frames for speed. If you are programatically generating
the image for each frame then use |

Color Color Picture | A picture drawn with this color. |

Translate Float Float Picture | A picture translated by the given x and y coordinates. |

Rotate Float Picture | A picture rotated clockwise by the given angle (in degrees). |

Scale Float Float Picture | A picture scaled by the given x and y factors. |

Pictures [Picture] | A picture consisting of several others. |

# Aliases for Picture constructors

thickCircle :: Float -> Float -> PictureSource

A circle with the given thickness and radius.
If the thickness is 0 then this is equivalent to `Circle`

.

arc :: Float -> Float -> Float -> PictureSource

A circular arc drawn counter-clockwise between two angles (in degrees) at the given radius.

thickArc :: Float -> Float -> Float -> Float -> PictureSource

A circular arc drawn counter-clockwise between two angles (in degrees),
with the given radius and thickness.
If the thickness is 0 then this is equivalent to `Arc`

.

bitmap :: Int -> Int -> BitmapData -> Bool -> PictureSource

A bitmap image with a width, height and a Vector holding the 32-bit RGBA bitmap data.

The boolean flag controls whether Gloss should cache the data
between frames for speed.
If you are programatically generating the image for
each frame then use `False`

.
If you have loaded it from a file then use `True`

.

translate :: Float -> Float -> Picture -> PictureSource

A picture translated by the given x and y coordinates.

rotate :: Float -> Picture -> PictureSource

A picture rotated clockwise by the given angle (in degrees).

# Compound shapes

circleSolid :: Float -> PictureSource

A solid circle with the given radius.

arcSolid :: Float -> Float -> Float -> PictureSource

A solid arc, drawn counter-clockwise between two angles at the given radius.

sectorWire :: Float -> Float -> Float -> PictureSource

A wireframe sector of a circle. An arc is draw counter-clockwise from the first to the second angle at the given radius. Lines are drawn from the origin to the ends of the arc.

A path representing a rectangle centered about the origin

rectangleWire :: Float -> Float -> PictureSource

A wireframe rectangle centered about the origin.

rectangleSolid :: Float -> Float -> PictureSource

A solid rectangle centered about the origin.

rectangleUpperPath :: Float -> Float -> PathSource

A path representing a rectangle in the y > 0 half of the x-y plane.

rectangleUpperWire :: Float -> Float -> PictureSource

A wireframe rectangle in the y > 0 half of the x-y plane.

rectangleUpperSolid :: Float -> Float -> PictureSource

A solid rectangle in the y > 0 half of the x-y plane.

# Loading Bitmaps

bitmapOfForeignPtr :: Int -> Int -> ForeignPtr Word8 -> Bool -> PictureSource

O(1). Use a `ForeignPtr`

of RGBA data as a bitmap with the given
width and height.

bitmapOfByteString :: Int -> Int -> ByteString -> Bool -> PictureSource

O(size). Copy a `ByteString`

of RGBA data into a bitmap with the given
width and height.

The boolean flag controls whether Gloss should cache the data
between frames for speed. If you are programatically generating
the image for each frame then use `False`

. If you have loaded it
from a file then use `True`

.

bitmapOfBMP :: BMP -> PictureSource

O(size). Copy a `BMP`

file into a bitmap.