Release notes for version 1.0 (relative to
opensolid/svg 3.0) are
elm-geometryobjects as SVG
elm-geometry-based 2D transformations to arbitrary SVG elements
boundingBox2d functions all produce standard
values that can be included in any SVG diagram:
The appearance of the resulting elements can be customized by adding SVG
attributes such as
behave just like their standard
elm-geometry counterparts. You can use them to do
things that would be difficult to do using just SVG, such as mirror a fragment
of SVG across an arbitrary axis:
Note that these functions will work on any
Svg msg, value, not just ones
that happen to have been produced with this package! So you can use them as a
convenient way to transform SVG that you've produced in some other way.
placeIn functions allow you to take SVG defined in one
coordinate system and convert it to another. For example, you can take SVG
defined in a model coordinate system where (0,0) is the center and positive Y is
up, and use
relativeTo to convert it into SVG in window coordinates for
display, where (0,0) is the top left corner and positive Y is down.
placeIn is useful for 'instancing' or 'stamping' a fragment of SVG in many
different positions with different orientations:
Assuming you have installed Elm and
started a new project, you can install
elm-geometry-svg by running
elm install ianmackenzie/elm-geometry-svg
in a command prompt inside your project directory.
Full API documentation is available.
Please open a new issue
if you run into a bug, if any documentation is missing/incorrect/confusing, or
if there's a new feature that you would find useful (although note that this
package is not meant to be general-purpose full-blown SVG package, more just a
convenient way to render
elm-geometry values). For general questions about
using this package, try:
You can also find me on Twitter (@ianemackenzie),
where I occasionally post
elm-geometry-related stuff like demos or new
releases. Have fun, and don't be afraid to ask for help!