An SVG renderer for Atari 8-bit computers, written in Turbo-BASIC XL
Renderific 1.0 - Readme
Renderific is an SVG renderer for Atari 8-bit computers, written in Turbo-BASIC XL. It tries to parse SVG Tiny files and draw them on screen and/or on an Atari 1020 plotter.
It is copyright 2019 by Kevin Savetz (@KevinSavetz) and released under the MIT license.
The SVG Tiny spec is at https://www.w3.org/TR/SVGTiny12/
Thanks to @PneumaticDeath for help on the Bézier math, and @BillLange1968 for plotter testing.
Fun places to get/make SVGs: Mazes: http://www.mazegenerator.net
Twisted Polygon Generator: https://msurguy.github.io/polygon-tool/
Bugs and things
I've found some SVGs that seem to intentionally draw in negative regions. I'm not sure what their intention is - is the viewport moved to include part of the negative quadrants? Anyway, Renderific doesn't support that. Many of the SVG flags at https://github.com/lipis/flag-icon-css do this. (I'm looking at you, Djibouti and Bouvet Island.)
I kind of wanted to add the "a"rc path command, although it is not in SVG Tiny. It looks complicated. https://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands
It doesn't handle FILLs.
I did not support the SVG TEXT command while rendering to the plotter. It's probably easy to add but given the other plotter issues I thought it best to wait.
The program really wants the file to end with </svg>, otherwise you'll get an EOF error.
If any single command in the SVG file (e.g. very long PATH commands) exceeds the DIMensioned length of A$ (10000 characters) the program will crash.
However, the program should nicely handle SVG files with any type of line ending, e.g. Atari, Mac, Windows, whatever.