From 05401941b4697a7d008e8dbcd632c598b377d991 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Mon, 2 Jun 2025 21:15:18 +0100 Subject: [PATCH] draw roads fatter and with edging --- pkgs/maps/main.fnl | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/pkgs/maps/main.fnl b/pkgs/maps/main.fnl index 73db50c..45043e8 100644 --- a/pkgs/maps/main.fnl +++ b/pkgs/maps/main.fnl @@ -94,6 +94,7 @@ label.readout { (fn cairo-the-map [window] (let [{ : lat : lon : zoom } app-state { : num-tiles-x : num-tiles-y &as bounds } (map-bounds lat lon zoom) + road-width 14 lines []] (for [x bounds.min.x bounds.max.x] @@ -111,19 +112,38 @@ label.readout { (g:rectangle 0 0 (* tile-size num-tiles-x) (* tile-size num-tiles-y)) (g:fill) - (g:set_source_rgb 0.2 0.2 0.6) - (g:set_line_width 2) (each [_ line (pairs lines)] (case line [[sx sy] & more] (do + (g:save) + (g:set_source_rgb 0 0 0) + (g:set_line_width road-width) (g:move_to (* tile-size (- sx bounds.min.x)) (* tile-size (- sy bounds.min.y))) (each [_ [x y] (ipairs more)] (let [x1 (* tile-size (- x bounds.min.x)) y1 (* tile-size (- y bounds.min.y))] - (g:line_to x1 y1)))))) - (g:stroke) + (g:line_to x1 y1))) + (g:stroke) + (g:restore)))) + + (each [_ line (pairs lines)] + (case line + [[sx sy] & more] + (do + (g:save) + (g:set_source_rgb 1 1 1) + (g:set_line_width (- road-width 2)) + (g:move_to (* tile-size (- sx bounds.min.x)) + (* tile-size (- sy bounds.min.y))) + (each [_ [x y] (ipairs more)] + (let [x1 (* tile-size (- x bounds.min.x)) + y1 (* tile-size (- y bounds.min.y))] + (g:line_to x1 y1))) + (g:stroke) + (g:restore)))) + map-surface))) (var map-surface nil)