lines
Mojo module 🡭
lines
Line, polyline, and polygon-outline drawing: Bresenham hard-edged (draw_line/draw_polyline/draw_polygon), supersampled analytic-coverage anti-aliased (draw_line_aa/draw_polyline_aa/draw_polygon_aa), and the dash-aware cores they share (_draw_line_core, _draw_polyline_core_aa).
draw_polygon/draw_polygon_aa here draw the outline only. The
interior fills, fill_polygon/fill_polygon_aa, are a different
scanline algorithm in canvas.shapes.polygon_fill.
Naming convention across canvas.shapes/: hard-edged and anti-aliased
variants are separate functions (draw_circle vs. draw_circle_aa), never
one function behind an antialias: Bool. The two differ in complexity
class – hard-edged circle drawing is O(radius), AA is
O(radius^2 * supersample^2) – and in which parameters apply, since
Bresenham is definitionally 1px and takes no width.