Scrivere una stringa in verticale

di il
5 risposte

Scrivere una stringa in verticale

E' possibile disegnare una stringa in verticale ?

per scriverla normalmente uso questo :

Graphics2D g = (Graphics2D)g2;
g.drawString("stringa", x1, x2);

come faccio a ruotarla ?

5 Risposte

  • Re: Scrivere una stringa in verticale

    Ciao!

    Graphics2D ha anche un metodo rotate.
    hai provato ad usare quello?
  • Re: Scrivere una stringa in verticale

    kerikcos ha scritto:


    E' possibile disegnare una stringa in verticale ?

    come faccio a ruotarla ?
    Nel Graphics2D viene mantenuta una "matrice di trasformazione" rappresentata da un oggetto AffineTransform.
    Questa matrice permette di descrivere trasformazioni delle coordinate in termini di operazioni di translate/scale/rotate/shear anche combinate insieme.
    Dietro questa matrice c'è tutta una teoria di matematica assolutamente non "banale". Fortunatamente NON è necessario arrivare fino a conoscere quel livello solo per "usare" queste trasformazioni.

    Quindi, consiglio: documentati un minimo sull'argomento.
  • Re: Scrivere una stringa in verticale

    Ma nei metodi AffineTransform posso ruotare vettori, nel metodo per la scrittura stringa c'è solamente una coordinata, quindi non posso applicare la rotazione
  • Re: Scrivere una stringa in verticale

    Ok risolto in effetti utilizzando g.rotate ruota tutto quello che trova successivamente, pensavo fosse da applicare al singolo oggetto.

    grazie mille
  • Re: Scrivere una stringa in verticale

    kerikcos ha scritto:


    Ma nei metodi AffineTransform posso ruotare vettori, nel metodo per la scrittura stringa c'è solamente una coordinata, quindi non posso applicare la rotazione
    Non hai compreso il funzionamento .....

    La matrice di trasformazione applica una trasformazione all'intero piano cartesiano usato dal Graphics2D. All'inizio, in modo predefinito, il piano cartesiano è così:
    1) l'origine degli assi (0,0) è nell'angolo in alto-sinistra del componente
    2) la coordinata x cresce verso DESTRA
    3) la coordinata y cresce verso il BASSO

    Se vuoi es. stampare una scritta in verticale dall'alto verso il basso il cui punto di inizio del baseline sta alle coordinate 100,50, puoi fare:
    a) trasli le coordinate di +100,+50 in questo modo l'origine degli assi (0,0) si sposta lì in quel punto.
    b) una volta che l'origine è in mezzo al componente in quel punto, ruoti il piano di 90° verso destra, in questo modo la x cresce verso il BASSO (e la y verso SINISTRA).
    c) disegni il testo a 0,0 perché sei già lì come origine.
Devi accedere o registrarti per scrivere nel forum
5 risposte