lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Au sujet de titres


From: Martial R
Subject: Re: Au sujet de titres
Date: Sat, 25 Jan 2020 18:17:52 +0100

Bravo !


Le sam. 25 janv. 2020 à 17:10, Christophe Pochon <address@hidden> a écrit :
Etat des lieux :

%%%%%%%%%%%
\version "2.19.20"
\version "2.21.0"
#(define-markup-command (arcText layout props radius size txt)
   (number? number? string?)
   (let* ((font-size size)
          (pi (atan 0 -1))
          (txt-len (* font-size 0.44 (string-length txt)))  
          (circle-len (* pi radius 2))
          (angle-rad (/ txt-len radius))
          (t (/ angle-rad 2))
          (h 0.6)
          (d (/ (* (- font-size 1) h) 3))
          (u (- (* (- font-size 1) h) d))
          (dist-haut (+ radius u))
          (dist-bas (* (- radius d) (cos t)))
          (height (- dist-haut dist-bas))
          (raise (- dist-haut (+ u 1.5)))
          (width (* 2 (+ radius u) (sin t))))
    (if (> angle-rad pi)  (set! width (* radius 2)))
     (interpret-markup layout props
       (markup #:box
        #:with-dimensions
        (cons (* width -.5) (* width .5))
        (cons (* height -.5) (* height .5))
      #:raise (- raise) ; non!
 
        #:postscript
        (format #f "
/r ~a def
/ch 1 string def
/Times findfont
~a scalefont
setfont
0 0 translate
/text (~a) def
/depar text stringwidth pop 90 mul ~a div
r div def
depar rotate
text {
  ch 0 3 2 roll put
  /l ch stringwidth pop def
  /dec l r atan 2 div neg def
  0 0 moveto dec rotate l neg 2 div r rmoveto
  ch show dec rotate
} forall
" radius  font-size txt pi)))))

\header {
  title = \markup \arcText #40 #8  "petit texte"
 title = \markup \arcText #30  #3 "long long long long long texte"
 %title = \markup \arcText #10 5 "long long long long long texte"
}
\relative c'' {
  c1
}
%%%%%%%%%%
Christophe Pochon



Le ven. 24 janv. 2020 à 22:59, Christophe Pochon <address@hidden> a écrit :
trouverai
Christophe Pochon



Le ven. 24 janv. 2020 à 22:57, Christophe Pochon <address@hidden> a écrit :
Je ne sais pas si je trouverais la solution. Je vais encore m'y atteler ces prochains jours. Mais en tout cas, une chose est sûre : ce projet m'a permis de comprendre beaucoup mieux scheme et j'en suis ravi !

Christophe Pochon



Le ven. 24 janv. 2020 à 18:46, Olivier Miakinen <address@hidden> a écrit :
Le 24/01/2020 17:52, j'écrivais :
>
> Voici une image d'illustration : https://i.goopics.net/naa5p.png
>
> En haut, le texte s'il devait s'afficher normalement, tout droit et
> horizontalement. J'ai représenté en bleu le rectangle englobant le
> texte. La ligne horizontale rouge est celle dont la longueur sera
> préservée sur le cercle (bien évidemment, les longueurs au dessus
> deviendront plus grandes, et celles en dessous plus petites).
>
> En bas, le texte en arc de cercle. La ligne en rouge est à une
> distance r du centre du cercle, les autres arcs de cercle étant
> respectivement à r+u et r-d de ce centre.

Et voici déjà quelques valeurs, en espérant que je ne me sois pas
trompé.

Soit t la moitié de l'angle de l'arc de cercle.
On a t = (l/r)/2 = l/2r (en radians).

On a alors les résultats suivants concernant le rectangle en orange qui
englobe le texte en arc de cercle :
1) la longueur de ce rectangle est 2⋅(r+u)⋅sin(t)
2) la distance du bas du rectangle au centre du cercle est (r-d)⋅cos(t)
3) la distance du haut du rectangle au centre du cercle est (r+u)
4) la hauteur du rectangle est donc (r+u) - (r-d)⋅cos(t)

Bien sûr, ceci n'est vrai que tant que l est inférieur à pi⋅r, c'est-
à-dire que l'arc ne fait pas plus d'un demi-tour.

--
Olivier Miakinen



--
Martial Rameaux


reply via email to

[Prev in Thread] Current Thread [Next in Thread]