From 26266ab14c2c24632aeedc7b1b129b1bee0f32db Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Sun, 9 Jul 2023 18:27:08 -0400 Subject: Fix region and vec2 rotate --- virtual-programs/regions.folk | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'virtual-programs') diff --git a/virtual-programs/regions.folk b/virtual-programs/regions.folk index b1cf45a0..0e261b34 100644 --- a/virtual-programs/regions.folk +++ b/virtual-programs/regions.folk @@ -15,8 +15,8 @@ namespace eval ::vec2 { } proc rotate {a theta} { lassign $a x y - list [expr {$x*cos($theta) - $y*sin($theta)}] \ - [expr {$x*sin($theta) + $y*cos($theta)}] + list [expr {$x*cos($theta) + $y*sin($theta)}] \ + [expr {-$x*sin($theta) + $y*cos($theta)}] } proc distance {a b} { lassign $a ax ay @@ -130,12 +130,14 @@ namespace eval ::region { proc rotate {r angle} { set theta [angle $r] set c [centroid $r] - mapVertices v $r { + set r' [mapVertices v $r { set v [vec2 sub $v $c] set v [vec2 rotate $v $angle] set v [vec2 add $v $c] set v - } + }] + lset r' 2 [+ $theta $angle] + set r' } # Scales about the center of the region, along the x and y axes of -- cgit v1.2.3