2013/9/3 Rachael Thomas Carlson rachael.thomas.carl...@gmail.com:
Hello All:
I am attempting to draw a hexagon with a number inside of it using markup.
The attached png is essentially what I am attempting. This is to be used in
a TabStaff. I am not worried about the whiteout = ##f in the png. I just
simply can't seem to figure out how to create a hexagon such as in the png.
Though, again, it would be optimal to create this within a markup
environment.
I am able to modify the TabNoteHead stencil. That is not the problem. I
just need to figure out how to create a hexagon with a number inside of it
using markup.
Any ideas?
Rachael
Hi Rachael,
Torsten once posted the code below in the german LilyPond-forum
\version 2.14.2
#(define-markup-command (draw-n-agon layout props corners radius arg)
(number? number? markup?)
#:category graphic
#:properties ((thickness 1))
(let* ((th (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(alpha-step (if (= corners 0) 99 (/ (* 2 PI) (abs corners
(alpha-start (if (= radius 0) (/ alpha-step 2) 0))
(polypoints
(let loop ((alpha alpha-start))
(if ( alpha (* 2 PI))
'()
(cons (* (abs radius) (sin alpha)) (cons (- 0 (* (abs
radius) (cos alpha)))
(loop (+ alpha alpha-step)))
(m (interpret-markup layout props arg))
(x-ext (ly:stencil-extent m X))
(y-ext (ly:stencil-extent m Y)))
(ly:stencil-add m
(ly:stencil-translate
(if (equal? polypoints '())
(ly:make-stencil (list 'circle radius th #f))
(ly:make-stencil `(polygon ',polypoints ,th #f)))
(cons (/ (cdr x-ext) 2) (/ (cdr y-ext) 2))
% TEST:
\header { tagline = ##f }
\paper { ragged-last-bottom = ##f }
\markup \draw-n-agon #100 #-4 3
\relative c' {
\override Score.RehearsalMark #'padding = #4
% gleichseitige Dreiecke
s1 \mark \markup \draw-n-agon #3 #4 3
s \mark \markup \draw-n-agon #3 #4 33
s \mark \markup \draw-n-agon #3 #-4 3
s \mark \markup \draw-n-agon #3 #-4 33
s \mark \markup \draw-n-agon #3 #4 \draw-n-agon #3 #-4 3
s \mark \markup \draw-n-agon #3 #4 \draw-n-agon #3 #-4 33
s \break
% Quadrate
s \mark \markup \draw-n-agon #4 #3 4
s \mark \markup \draw-n-agon #4 #3 44
s \mark \markup \draw-n-agon #4 #-3 4
s \mark \markup \draw-n-agon #4 #-3 44
s \mark \markup \draw-n-agon #4 #3 \draw-n-agon #4 #-3 4
s \mark \markup \draw-n-agon #4 #3 \draw-n-agon #4 #-3 44
s \break
% gleichseitige Pentagone
s \mark \markup \draw-n-agon #5 #2.5 5
s \mark \markup \draw-n-agon #5 #2.5 55
s \mark \markup \draw-n-agon #5 #-2.5 5
s \mark \markup \draw-n-agon #5 #-2.5 55
s \mark \markup \draw-n-agon #5 #2.5 \draw-n-agon #5 #-2.5 5
s \mark \markup \draw-n-agon #5 #2.5 \draw-n-agon #5 #-2.5 55
s \break
% gleichseitige Hexagone
s \mark \markup \draw-n-agon #6 #2.5 6
s \mark \markup \draw-n-agon #6 #2.5 66
s \mark \markup \draw-n-agon #6 #-2.5 6
s \mark \markup \draw-n-agon #6 #-2.5 66
s \break
% gleichseitige Heptagone
s \mark \markup \draw-n-agon #7 #2.5 7
s \mark \markup \draw-n-agon #7 #2.5 77
s \mark \markup \draw-n-agon #7 #-2.5 7
s \mark \markup \draw-n-agon #7 #-2.5 77
s \break
% gleichseitige Oktagone
s \mark \markup \draw-n-agon #8 #2.5 8
s \mark \markup \draw-n-agon #8 #2.5 88
s \mark \markup \draw-n-agon #8 #-2.5 8
s \mark \markup \draw-n-agon #8 #-2.5 88
s \break
% Kreise
s \mark \markup \draw-n-agon #0 #2.5 0
s \mark \markup \draw-n-agon #0 #2.5 00
% Kombinationen Quadrat und Dreieck
s \mark \markup \draw-n-agon #4 #2.5 \draw-n-agon #3 #5.5 9
s \mark \markup \draw-n-agon #4 #2.5 \draw-n-agon #3 #5.5 99
s \mark \markup \draw-n-agon #4 #5 \lower #1.5 \draw-n-agon #3 #3.5 9
s \mark \markup \draw-n-agon #4 #5 \lower #1.5 \draw-n-agon #3 #3.5 99
s \break
% Kombinationen Dreieck und Kreis
s \mark \markup \draw-n-agon #0 #1.9 \draw-n-agon #3 #4.5 9
s \mark \markup \draw-n-agon #0 #1.9 \draw-n-agon #3 #4.5 99
s \mark \markup \draw-n-agon #0 #2.5 \draw-n-agon #3 #3.5 9
s \mark \markup \draw-n-agon #0 #2.5 \draw-n-agon #3 #3.5 99
s \mark \markup \draw-n-agon #0 #3.5 \draw-n-agon #3 #3.5 9
s \mark \markup \draw-n-agon #0 #3.5 \draw-n-agon #3 #3.5 99
s \mark \markup \draw-n-agon #0 #4 \draw-n-agon #3 #3.5 9
s \mark \markup \draw-n-agon #0 #4 \draw-n-agon #3 #3.5 99
s \break
% Kombinationen Quadrat und Kreis
s \mark \markup \draw-n-agon #0 #2 \draw-n-agon #4 #4 9
s \mark \markup \draw-n-agon #0 #2 \draw-n-agon #4 #4 99
s \mark \markup \draw-n-agon #0 #2.5 \draw-n-agon #4 #3 9
s \mark \markup \draw-n-agon #0 #2.5 \draw-n-agon #4 #3 99
s \mark \markup \draw-n-agon #0 #3 \draw-n-agon #4 #3 9
s \mark \markup \draw-n-agon #0 #3 \draw-n-agon #4 #3 99
s \mark \markup \draw-n-agon #0 #3.5 \draw-n-agon #4 #3 9
s \mark \markup