Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | stephen.tetley@gmail.com |
Bounded versions of Graphic and LocGraphic.
Bounded meaning they are actually Images that return the bounding box of the Graphic.
- type BoundedGraphic u = Image u (BoundingBox u)
- type DBoundedGraphic = BoundedGraphic Double
- type BoundedLocGraphic u = LocImage u (BoundingBox u)
- type DBoundedLocGraphic = BoundedLocGraphic Double
- type BoundedLocThetaGraphic u = LocThetaImage u (BoundingBox u)
- type DBoundedLocThetaGraphic = BoundedLocThetaGraphic Double
- emptyBoundedLocGraphic :: Num u => BoundedLocGraphic u
- centerOrthoBBox :: (Real u, Floating u) => Radian -> BoundingBox u -> BoundingBox u
- illustrateBoundedGraphic :: Fractional u => BoundedGraphic u -> BoundedGraphic u
- illustrateBoundedLocGraphic :: Fractional u => BoundedLocGraphic u -> BoundedLocGraphic u
- illustrateBoundedLocThetaGraphic :: Fractional u => BoundedLocThetaGraphic u -> BoundedLocThetaGraphic u
Bounded graphic / loc graphic
type BoundedGraphic u = Image u (BoundingBox u)Source
Graphic with a bounding box.
type BoundedLocGraphic u = LocImage u (BoundingBox u)Source
LocGraphic with a bounding box.
type BoundedLocThetaGraphic u = LocThetaImage u (BoundingBox u)Source
LocThetaGraphic with a bounding box.
Note the size of bounding box for the "same" shape will vary according to the rotation. A bounding box is always orthonormal (?) to the x- and y-axes.
emptyBoundedLocGraphic :: Num u => BoundedLocGraphic uSource
centerOrthoBBox :: (Real u, Floating u) => Radian -> BoundingBox u -> BoundingBox uSource
openStroke
: theta * bbox -> BBox
Rotate a bounding box by theta
about its center. Take the
new bounding box.
Remember that bounding boxes are always orthonormal rectangles, so the dimensions as well as the positions may change under rotation.
illustrateBoundedGraphic :: Fractional u => BoundedGraphic u -> BoundedGraphic uSource