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

    [Java]Ridimensionare una figura geometrica

    Ciao ragazzi, ho un problemino sul quale sto impazzendo da ieri, spero possiate darmi qualche consiglio su come risolverlo.
    Nel mio programma è possibile disegnare un ellisse trascinando il mouse.
    Adesso: una volta che l'ellisse è stata disegnata, vorrei che, cliccandoci sopra, si costruisse il classico rettangolino intorno che permetta di muovere e ridimensionare l'ellisse appena disegnata.
    Qualcuno ha idea di come fare?
    Vi prego ditemi di si!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java]Ridimensionare una figura geometrica

    Originariamente inviato da AndreKJ88
    Nel mio programma è possibile disegnare un ellisse trascinando il mouse.
    Adesso: una volta che l'ellisse è stata disegnata, vorrei che, cliccandoci sopra, si costruisse il classico rettangolino intorno che permetta di muovere e ridimensionare l'ellisse appena disegnata.
    Qualcuno ha idea di come fare?
    Intendi farlo "da zero"? Cioè gestendo tutto tu?
    Ovviamente è possibile .... ma non è così "banale".

    Innanzitutto immagino che hai definito un tuo "pannello" (estendendo tipicamente JPanel o in altri casi JComponent) e che hai gestito il painting della/e figura/e in paintComponent(Graphics). Immagino anche che nel tuo componente hai messo una apposita struttura dati che contiene i riferimenti alle figure (se più di una) e che ogni figura sia "modellata" appropriatamente in termini di oggetto/i.

    A questo punto devi:
    a) Tenere uno "stato" che indica quale figura è quella selezionata.
    b) Per la figura selezionata, determinare il bounding-box, il rettangolo che contiene la figura.
    c) Quando la figura è selezionata, causare il repaint per far disegnare anche il rettangolo.
    d) Memorizzare in una struttura dati i punti o rettangoli (dipende) che sono le zone "hot" per lo spostamento/ridimensionamento della figura. Ad ogni evento del mouse devi andare a vedere se il punto del mouse "cade" in una di queste aree.
    e) In base agli eventi del mouse (e se è nelle zone interessate), calcolare la nuova posizione o dimensione, aggiornare lo "stato" dell'oggetto che rappresenta la figura e quindi causare un repaint per visualizzare l'aggiornamento.

    Tra i miei Java Examples (vedi dal mio sito), nella sezione Graphics c'è proprio un esempio che mostra alcune figure che si possono spostare (e nulla di più). Prova a vederlo. Se però non ti è chiaro il mio esempio ..... dubito che riuscirai a fare quello che hai chiesto che è ben di più del mio esempio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao!
    Allora, innanzitutto grazie della risposta
    Tutto quello che mi hai detto l'ho fatto già: ho un JPanel dove vengono disegnate le figure, un arrayList per memorizzare tutte le figure disegnate, ed una variabile booleana che si attiva ogni volta che seleziono una determinata figura.
    Immaginavo fosse una cosa complessa, ma non credevo così complessa come me la stai descrivendo :/
    Non so perchè, ma contavo su una sorta di oggetto Resizable già esistente (java abitua troppo bene sotto questo punto di vista)
    Andrò a guardare i tuoi esempi e proverò a combinare qualcosa
    Grazie mille!

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.