Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [java] problema classe Graphics

    salve ragazzi,
    ho un problema con la classe Graphics,cioè devo disegnare un rettangolo avendo le coordinate del punto più in alto a sinistra e quelle del punto più in basso a destra. le coordinate sono date cosi'
    es:
    10 7 11
    dove

    10 è l'indice della riga
    7 è il valore inferiore segmento(inizio sequenza)
    11 è il valore superiore segmento(fine sequenza)

    mi hanno detto di usare drawLine ma non so come trovarmi le 4 coordinate, mi potete aiutare?

    grazie.

  2. #2
    codice:
     7 è il valore inferiore segmento(inizio sequenza)
    11 è il valore superiore segmento(fine sequenza)
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: [java] problema classe Graphics

    Originariamente inviato da masferretti
    es:
    10 7 11
    dove

    10 è l'indice della riga
    7 è il valore inferiore segmento(inizio sequenza)
    11 è il valore superiore segmento(fine sequenza)

    mi hanno detto di usare drawLine ma non so come trovarmi le 4 coordinate, mi potete aiutare?

    grazie.
    Questo puoi saperlo soltanto tu: non ho idea di cosa significhino quei numeri. Completa l'esempio, dicendoci come dovrebbe apparire il rettangolo dati quei numeri.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    forse mi sono spiegato male riguardo le coordinate dei punti.
    io ho due sequenze di punti che sono:
    top 4 7 15
    up 10 12 19
    la prima rappresenta il punto più in alto a sx ;
    la seconda il punto più in basso a dx;

    -il 1° campo contiene l’indice della riga della matrice in cui si trova la sequenza;
    -il 2° contiene l’indice dell’estremo sinistro della sequenza;
    -il 3° contiene l’indice dell’estremo destro della sequenza;

    date le sequenze di pixel sopra il mio rettangolo dovrebbe apparire con queste coordinate nei 4 vertici:
    (7,4) (19,4)
    (7,10) (19,10)

    spero sia stato più comprensivo.
    grazie

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Diciamo che sei stato un po' più comprensibile... ora, dato che hai queste coordinate, direi che non ci dovrebbero essere problemi nel disegnare il rettangolo. Si dovrebbe utilizzare fillRect() o drawRect() (a seconda se ti interessa avere un rettangolo pieno o un rettangolo vuoto), ma non dovrebbe servirti drawLine che serve a tracciare una linea.

    Rimane il mistero su cosa rappresentino i valori che hai tralasciato:
    codice:
    top 4  7 15   /* A cosa serve il 15 ?? */
    up 10 12 19   /* A cosa serve il 12 ?? */
    
    Coordinate vertici:
    (7, 4) (19, 4)
    (7,10) (19,10)
    C'è da specificare una cosa... il sistema di coordinate uitilizzato dai computer non è esattamente come quello che si usa di solito per tracciare i grafici su carta: infatti, mentre su carta l'asse delle Y (l'ordinata) cresce andando verso l'alto, nei PC succede il contrario:
    codice:
    |------------------------------|
    |(0, 0)                  (N, 0)|
    |                              |
    |                              |
    |                              |
    |                              |
    |(0, N)                  (N, N)|
    |------------------------------|
    A questo punto, se le coordinate sono corrette così come le hai scritte, il vertice in alto a sinistra è (7, 4), mentre quello in basso a destra è (19, 10).
    Tracciamo, quindi, questo rettangolo:
    codice:
    public void paint(Graphics g) {
       g.setColor( Color.black );   // Colore nero
    
       // Rettangolo pieno:
       g.fillRect(7, 4, 12, 6);  // 12 è la larghezza e 6 è l'altezza
                                 // 12 = 19-7, 6 = 10 - 4
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.