;; ;; Procedures for rotating, scaling, translating points. ;; Based on the Python GTS library. ;; (define (point-translate p #!key (dx 0.0) (dy 0.0) (dz 0.0)) (let ((v (f64vector dx dy dz))) (let ((m (matrix-translate #f v))) (point-transform p m) (matrix-destroy m) p))) (define (point-scale p #!key (dx 0.0) (dy 0.0) (dz 0.0)) (let ((v (f64vector dx dy dz))) (let ((m (matrix-scale #f v))) (point-transform p m) (matrix-destroy m) p))) (define (point-rotate p #!key (dx 0.0) (dy 0.0) (dz 0.0) (angle 0.0)) (let ((v (f64vector dx dy dz))) (let ((m (matrix-rotate #f v angle))) (point-transform p m) (matrix-destroy m) p)))