X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Flily-library.scm;h=0bfce9eb0c8a748099b3af053cf29d822de8a4b6;hb=3b322e2bf09b761f165c09a7f5ee83e282dcd1d2;hp=c5bf8cc59de12066e1f4bbf7e6aa88e321ef883e;hpb=cee6cea4ed55eb4fa1f9d83c997ebc19744a6e1a;p=lilypond.git diff --git a/scm/lily-library.scm b/scm/lily-library.scm index c5bf8cc59d..0bfce9eb0c 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -707,20 +707,13 @@ right (@var{dir}=+1)." (define-public (coord-scale coordinate amount) (coord-operation * amount coordinate)) -(define-public (coord-rotate coordinate degrees-in-radians) - (let* - ((coordinate - (cons - (exact->inexact (coord-x coordinate)) - (exact->inexact (coord-y coordinate)))) - (radius - (sqrt - (+ (* (coord-x coordinate) (coord-x coordinate)) - (* (coord-y coordinate) (coord-y coordinate))))) - (angle (angle-0-2pi (atan (coord-y coordinate) (coord-x coordinate))))) - (cons - (* radius (cos (+ angle degrees-in-radians))) - (* radius (sin (+ angle degrees-in-radians)))))) +(define-public (coord-rotate coordinate angle) + (let ((c (cos angle)) + (s (sin angle)) + (x (coord-x coordinate)) + (y (coord-y coordinate))) + (cons (- (* c x) (* s y)) + (+ (* s x) (* c y))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; trig