@hackage wumpus-core0.43.0
Pure Haskell PostScript and SVG generation.
Categories
License
BSD-3-Clause
Maintainer
Stephen Tetley <stephen.tetley@gmail.com>
Links
- Homepage
- Documentation
- No source repository
- Changelog
- Security
Versions
Installation
Dependencies (4)
- base <4.5
- containers >=0.3 && <=0.6
- time >=1.1.3 && <1.6
- vector-space >=0.6 && <1.0 Show all…
Dependents (5)
@hackage/wumpus-tree, @hackage/wumpus-basic, @hackage/wumpus-drawing, @hackage/acme-everything, @hackage/wumpus-microprint
Wumpus-Core is a low-level library for generating static 2D
vector pictures, its salient feature is portability due to no
FFI dependencies. It can generate PostScript (EPS) files and SVG
files. The generated PostScript code is plain and reasonably
efficient as the use of stack operations, i.e gsave and
grestore, is minimized.
Although Wumpus-Core only generates vector output, the generated PostScript can be interpreted by GraphicsMagick or a similar tool to convert EPS files into bitmap image files (e.g JPEGs).
Wumpus-Core makes pictures from paths and text labels. Paths themselves are made from points. The usual affine transformations (rotations, scaling, translations) can be applied to Pictures. Unlike PostScript there is no notion of a current point, Wumpus-Core builds pictures in a coordinate-free style.
GENERAL DRAWBACKS...
For actually building pictures, diagrams, etc. Wumpus-Core is
very low-level. There are two supplementary packages
Wumpus-Basic and Wumpus-Drawing also on Hackage that aim to
be a higher-level basis for creating certain types of diagram,
but they are experimental - functionality is added and dropped
between releases and curently the API is too unstable to write
code upon (they should be considered a technology preview rather
than re-usable libraries).
Also, some of the design decisions made for Wumpus-Core are not sophisticated - e.g. how path and text attributes like colour are handled, and how the bounding boxes of text labels are calculated. Compared to other systems, Wumpus might be rather limited, however, the design permits a fairly simple implementation.
Changelog:
v0.42.1 to v0.43.0:
API change - the function
bezierCircleinCore.Geometryhas changed. It now implements a better method of drawing circles with Bezier curves and no longer needs the subvision factor. The old circle drawing function has been retained assubdivisionCircleas it is useful for corroboratingbezierCircle, but the general use ofsubdivisionCircleshould be avoided.Added a function
bezierEllipsetoCore.Geometry.