From 7016b5c90b49fb73fbbefda5486c9e03d9daf23f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Thu, 27 Feb 2025 21:29:06 +0100 Subject: [PATCH] Cudna animacija (ampak zabavna) --- guile/risalnik.scm | 9 ++++++--- guile/ww/copic.scm | 25 +++++++++++++++++++------ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/guile/risalnik.scm b/guile/risalnik.scm index deb6c28..61a1ac6 100644 --- a/guile/risalnik.scm +++ b/guile/risalnik.scm @@ -3,6 +3,8 @@ (use-modules (chickadee) (chickadee graphics color) (chickadee math vector) + (chickadee math vector) + (chickadee graphics path) (system repl coop-server) (ww copic)) @@ -17,7 +19,7 @@ (define stevec 0) ;; copic za risanje - kazalnik -(define copic (make-copic (kazalnik 50) (vec2 300 300))) +(define copic (make-copic (kazalnik 100 stevec) (vec2 300 300))) (define (prestavi-copic! nov-polozaj) (copic-polozaj-set! copic (vec2+ (copic-polozaj copic) @@ -37,7 +39,8 @@ (define tekst "") -(set! stevec 6000) +(set! stevec 300) + (define (update dt) ;; REPL! @@ -68,7 +71,7 @@ (draw-text tekst (vec2 3 3) #:color black) ;; kurzor - (izrisi-kazalnik copic)) + (izrisi-kazalnik copic 100 stevec)) (define (load) (reset-stevec!)) diff --git a/guile/ww/copic.scm b/guile/ww/copic.scm index 4d2cb5d..635d3e8 100644 --- a/guile/ww/copic.scm +++ b/guile/ww/copic.scm @@ -21,13 +21,26 @@ #:origin (vec2 sirina sirina))) ;; Krog z gradientom kot copic -(define (kazalnik sirina) +(define (kazalnik sirina stevec) (with-style - ((fill-color (kazalnik-barva sirina))) - (fill (circle (vec2 sirina sirina) sirina)))) + ((fill-color black)) + (fill + (path + (line-to (vec2 + (* sirina (cos (/ stevec 33))) + (* sirina (sin (/ stevec 100))))) + (line-to (vec2 (* sirina (sin (/ stevec 50))) + (cos (/ stevec 16.5)))) + (line-to (vec2 (* sirina (sin stevec)) (* sirina (sin (/ stevec 471))))) + (line-to (vec2 (cos (/ stevec 47)) (cos (/ stevec 123)))))))) -(define (izrisi-kazalnik copic) + +(define (izrisi-kazalnik copic sirina stevec) (draw-canvas (make-canvas - (translate (copic-polozaj copic) - (copic-lik copic))))) + (translate + (copic-polozaj copic) + (rotate (/ stevec 10) + (translate (vec2 (* -1 (/ sirina 2)) + (* -1 (/ sirina 2))) + (kazalnik sirina stevec)))))))