|
Pour écrire du texte autrement qu'horizontalement, vous devez appliquer une transformation géométrique. Cela peut être fait en utilisant SetTransformation.
Vous trouverez ici différentes utilisations de SetTransformation :
-
le premier appel décale l'origine au centre du cercle,
-
puis une première rotation est effectuée,
-
et enfin sont appliquées des rotations incrémentées successivement.
SetTransformation s'applique à l'état courant (SetTransformation est relatif, pas absolu), ce qui fait que les rotations se cumulent.
|
Importer le script
on SetRotation(a)
SetTransformation({cos a, sin a, -1 * (sin a), cos a, 0, 0})
end SetRotation
-- variables that you can adjust
set s to "What a wonderful world!"
set d to 500
set da to pi / 30
set letter_size_ratio to 0.6
-- prepare data
set c to {d / 2, d / 2}
set r to {0, d / 2.5}
set n to s's length
BeginFigure(0)
SetTextSize(d * da * letter_size_ratio)
SetTextFont("Courier")
-- set the origin of coordinates to center
SetTransformation({1, 0, 0, 1} & c)
SetRotation(n / 2 * da)
repeat with i from 1 to n
SetFillColor({1 - i / n, 1 / 2, i / n})
SetRotation(-da)
TextMoveTo(r)
DrawString("[h]" & character i of s)
end repeat
EndFigure()
|