Differenze tra le versioni di "Curvare il testo in una DrawingArea"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per analogia di argomento si rimanda a quest'altra pagina della WIKI: Curvare la linea di testo in un oggetto Image.") |
|||
Riga 1: | Riga 1: | ||
− | + | Il caso è quello in cui si scrive un testo su una circonferenza ideale curvando ogni carattere in modo tale che il proprio asse verticale converga al centro di detta circonferenza. | |
+ | <BR>La rotazione è data dai valori presenti nei metodi ".Traslate()" relativi alle misure dell'area di disegno e a quelle del testo. | ||
+ | |||
+ | Nell'esempio, che segue, si scriveranno alcuni caratteri lungo il semicerchio superiore della circonferenza: | ||
+ | '''Public''' Sub DrawingArea1_Draw() | ||
+ | |||
+ | With Paint | ||
+ | .Arc(300, 300, 50, Rad(0), 360, False) | ||
+ | .Stroke | ||
+ | .DrawRect(250, 250, 50, 50, Color.Red, 1.0) | ||
+ | .DrawRect(300, 250, 50, 50, Color.Red, 1.0) | ||
+ | .DrawRect(250, 300, 50, 50, Color.Red, 1.0) | ||
+ | .DrawRect(300, 300, 50, 50, Color.Red, 1.0) | ||
+ | |||
+ | .Translate(244, 305) | ||
+ | .Rotate(Rad(90)) | ||
+ | .DrawText("G", 0, 0, 5, 5, Align.Left) | ||
+ | |||
+ | .Translate(42, 13) | ||
+ | .Rotate(Rad(315)) | ||
+ | .DrawText("A", 0, 0, 5, 5, Align.Left) | ||
+ | |||
+ | .Translate(43, 13) | ||
+ | .Rotate(Rad(315)) | ||
+ | .DrawText("T", 0, 0, 5, 5, Align.Left) | ||
+ | |||
+ | .Translate(42, 15) | ||
+ | .Rotate(Rad(315)) | ||
+ | .DrawText("T", 0, 0, 5, 5, Align.Left) | ||
+ | |||
+ | .Translate(40, 14) | ||
+ | .Rotate(Rad(315)) | ||
+ | .DrawText("O", 0, 0, 5, 5, Align.Left) | ||
+ | .End | ||
+ | End With | ||
+ | |||
+ | '''End''' |
Versione delle 17:30, 2 giu 2021
Il caso è quello in cui si scrive un testo su una circonferenza ideale curvando ogni carattere in modo tale che il proprio asse verticale converga al centro di detta circonferenza.
La rotazione è data dai valori presenti nei metodi ".Traslate()" relativi alle misure dell'area di disegno e a quelle del testo.
Nell'esempio, che segue, si scriveranno alcuni caratteri lungo il semicerchio superiore della circonferenza:
Public Sub DrawingArea1_Draw() With Paint .Arc(300, 300, 50, Rad(0), 360, False) .Stroke .DrawRect(250, 250, 50, 50, Color.Red, 1.0) .DrawRect(300, 250, 50, 50, Color.Red, 1.0) .DrawRect(250, 300, 50, 50, Color.Red, 1.0) .DrawRect(300, 300, 50, 50, Color.Red, 1.0) .Translate(244, 305) .Rotate(Rad(90)) .DrawText("G", 0, 0, 5, 5, Align.Left) .Translate(42, 13) .Rotate(Rad(315)) .DrawText("A", 0, 0, 5, 5, Align.Left) .Translate(43, 13) .Rotate(Rad(315)) .DrawText("T", 0, 0, 5, 5, Align.Left) .Translate(42, 15) .Rotate(Rad(315)) .DrawText("T", 0, 0, 5, 5, Align.Left) .Translate(40, 14) .Rotate(Rad(315)) .DrawText("O", 0, 0, 5, 5, Align.Left) .End End With End