X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Foutput-svg.scm;h=b6bdb2721c56abc52ee406bf07c4a4bb900e2ec5;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=51a491a8ef5d4d07277a952fb31fb5327b92e40d;hpb=3f3019866f87eede1da58b6f2c64097eb5b9b37c;p=lilypond.git diff --git a/scm/output-svg.scm b/scm/output-svg.scm index 51a491a8ef..b6bdb2721c 100644 --- a/scm/output-svg.scm +++ b/scm/output-svg.scm @@ -2,7 +2,7 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 2002--2006 Jan Nieuwenhuizen +;;;; (c) 2002--2008 Jan Nieuwenhuizen ;;;; http://www.w3.org/TR/SVG11 ;;;; http://www.w3.org/TR/SVG12/ -- page, pageSet in draft @@ -336,6 +336,37 @@ `(stroke-width . ,thick) `(r . ,radius))) +(define (ellipse x-radius y-radius thick is-filled) + (entity + 'ellipse "" + '(stroke-linejoin . "round") + '(stroke-linecap . "round") + `(fill . ,(if is-filled "currentColor" "none")) + `(stroke . "currentColor") + `(stroke-width . ,thick) + `(rx . ,x-radius) + `(ry . ,y-radius))) + +(define (oval x-radius y-radius thick is-filled) + (let ((x-max x-radius) + (x-min (- x-radius)) + (y-max y-radius) + (y-min (- y-radius))) + (entity + 'path "" + '(stroke-linejoin . "round") + '(stroke-linecap . "round") + `(fill . ,(if is-filled "currentColor" "none")) + `(stroke . "currentColor") + `(stroke-width . ,thick) + `(d . ,(ly:format "M~4f,~4f C~4f,~4f ~4f,~4f ~4f,~4f S~4f,~4f ~4f,~4f" + x-max 0 + x-max y-max + x-min y-max + x-min 0 + x-max y-min + x-max 0))))) + (define (text font string) (dispatch `(fontify ,font ,(entity 'tspan (string->entities string)))))