Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== An SVG path data library for Chicken Scheme [[toc:]] This library can turn SVG path data to tagged sexp format (compatible with SXML). You can switch between absolute and relative coordinates, and turn it into a minified string. The procedures work on both this library's own tagged format and on path data strings. The data format uses single-letter symbols for the commands and exacts for the numbers. Every node is always a separate list, even when there's multiple subsequent nodes of the same command. Every node can have attributes with an {{@}} attribute marker, just like in SXML. You can put in any attributes you want so you can keep track of node-local data. They're stripped out when you export the path back to string. Here's an example of an {{H}} command with one argument, which happens to be {{105}}, and with absolute coords added as an attribute: (H (@ (coords (x 105) (y 200))) 105) === Procedures ==== path->string (path->string "M100 100 L101,101 90 102") ⇒ "M100 100l1 1-11 1" Reads a path (in sexp or string format) and returns a minified string. ==== ->apath (->apath "M100 200L200 100-100-200") ⇒ ((M 100 200) (L 200 100) (L -100 -200)) Reads a path (in sexp or string format) and returns sexp format with absolute coordinates. ==== ->rpath (->rpath "M100 200L200 100-100-200") ⇒ ((m 100 200) (l 100 -100) (l -300 -300)) Reads a path (in sexp or string format) and returns sexp format with relative coordinates. ==== ->mpath (->mpath "M100 200L200 100-100-200") ⇒ ((M 100 200) (L 200 100) (L -100 -200)) Reads a path (in sexp or string format) and returns sexp format with whatever coordinate format will print the shortest. This is almost never that useful when doing path programming, but {{path->string}} uses it internally. ==== add-coords Change a path (in sexp or string format) into sexp format with a {{coords}} attribute added that stores the absolute coordinates of the node. If the path already had coords, only the newly computated coords will be returned. ==== add-distances Change a path (in sexp or string format) into sexp format with a {{distance}} attribute added that stores the pythagorean diagonal distance from the previous node. If the path has a {{coords}} attribute on all of its nodes, they will be trusted, otherwise new ones will be calculated and added for all nodes. === measure-path Convenience function returning a sub of the distances in a path. === reverse-path Reads a path in any format and returns it in sexp format reversed. Any attributes in the input path are stripped. === Source code For a repo, git clone https://idiomdrottning.org/svgpath
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you multiply 3 by 0?