[mcclim-cvs] CVS update: mcclim/Backends/PostScript/graphics.lisp

Christophe Rhodes crhodes at common-lisp.net
Mon Aug 1 16:50:44 UTC 2005


Update of /project/mcclim/cvsroot/mcclim/Backends/PostScript
In directory common-lisp.net:/tmp/cvs-serv21672

Modified Files:
	graphics.lisp 
Log Message:
Fix the sense of rotations in the Postscript backend, being more careful 
than in my mailed patch to handle NIL angles.

(When are we getting a test suite?)

Date: Mon Aug  1 18:50:44 2005
Author: crhodes

Index: mcclim/Backends/PostScript/graphics.lisp
diff -u mcclim/Backends/PostScript/graphics.lisp:1.12 mcclim/Backends/PostScript/graphics.lisp:1.13
--- mcclim/Backends/PostScript/graphics.lisp:1.12	Fri Dec  3 12:42:43 2004
+++ mcclim/Backends/PostScript/graphics.lisp	Mon Aug  1 18:50:43 2005
@@ -147,8 +147,15 @@
            (cy (point-y center))
            (tr (make-transformation ndx2 ndx1 ndy2 ndy1 cx cy))
            (circle (untransform-region tr ellipse))
-           (start-angle (or (ellipse-start-angle circle) 0))
-           (end-angle (or (ellipse-end-angle circle) (* 2 pi))))
+           ;; we need an extra minus sign because the rotation
+           ;; convention for Postscript differs in chirality from the
+           ;; abstract CLIM convention; we do a reflection
+           ;; transformation to move the coordinates to the right
+           ;; handedness, but then the sense of positive rotation is
+           ;; backwards, so we need this reflection for angles.  --
+           ;; CSR, 2005-08-01
+           (start-angle (- (or (ellipse-end-angle circle) 0)))
+           (end-angle (- (or (ellipse-start-angle circle) (* -2 pi)))))
       (write-string (if filled "true " "false ") stream)
       (write-angle stream (if (< end-angle start-angle)
                               (+ end-angle (* 2 pi))




More information about the Mcclim-cvs mailing list