Buonasera,

scusatemi per il pessimo titolo del post, spero che qualcuno riesca ugualmente a darmi un aiuto.

Ho scritto la GUI di un programmino. Tale GUI mostra in una finestra un oggetto circolare che si muove, e l'oggetto è preso da un immagine con il metodo ImageIO.read; il tutto è in 2 dimensioni.

Per realizzare il movimento dell'oggetto ho salvato nei suoi campi un vettore di coordinate [x y]. Quando devo realizzare il movimento di un passo in orizzontale incremento la x di 1 (pixel) e chiamo il repaint. Analogamente per un movimento in verticale. In tal modo la lunghezza di un passo è 1 pixel.

Vorrei però poter spostare l'oggetto anche in altre direzioni. Ma qui ho incontrato le prime difficoltà. Infatti se volessi muoverlo a 45 gradi, per logica dovrei incrementare x=x+1 ed y=y+1. Ma in tal modo il passo non è di lunghezza 1, bensì sqrt(2)>1.

Il tutto è dovuto al fatto che non mi pare si possano specificare sottomultipli del pixel nelle coordinate. Come si può ottenere una gestione fine delle coordinate?

Grazie, ciao
Pete