From d297c59ce2538b2f88d808346e8b9bbea2848e7d Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 22 Sep 2021 07:29:32 -0400 Subject: graphics: path: Add square-limit procedure. --- chickadee/graphics/path.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/chickadee/graphics/path.scm b/chickadee/graphics/path.scm index 83b50bf..ee501ce 100644 --- a/chickadee/graphics/path.scm +++ b/chickadee/graphics/path.scm @@ -88,6 +88,7 @@ right-split up-split corner-split + square-limit painter? painter-bounding-box make-empty-canvas @@ -1503,6 +1504,17 @@ (below (below right-small right-small) (corner-split smaller (- n 1))))))) +(define (square-limit painter n) + (if (<= n 0) + painter + (let* ((smaller (scale 0.5 painter)) + (split (corner-split smaller n)) + (flipped (vertical-flip split))) + (below (beside (rotate pi split) + (horizontal-flip (rotate pi split))) + (beside (horizontal-flip split) + split))))) + (define-record-type (%make-canvas matrix compiled-path filled-path-pool stroked-path-pool tesselated-paths) -- cgit v1.2.3