Allora , sto cercando di mettere in atto il tuo suggerimento ma qualcosa non funziona...ti mostro cosa sto facendo:
supponendo che il raggio io lo indichi , qui di seguito , come "distanza" , cioè sarà la distanza tra il centro della palla e il punto in cui sta il cursore del mouse trovata mediante:
codice:
public double distanza(Vettore v) {
return Math.sqrt ((x - v.x) * (x - v.x) + (y - v.y) * (y - v.y));
}
considera che è un metodo d'istanza di una classe "Vettore" dove ogni istanza rappresenta un vettore in due coordinate cartesiane x e y
fin qui dimmi se ho commesso errori...
poi , tornando alla rotazione e quindi al disegno , ho fatto qualcosa del tipo:
codice:
g2.rotate(Math.toRadians(angolo - 90)); //PERCHE' HO L'IMMAGINE DELLA STECCA VERSO L'ALTO
int x = (int)((int) (Math.cos(Math.toRadians(angolo)) * distanza) + palle [0].getCentro().getX());
int y = (int)((int) (Math.sin(Math.toRadians(angolo)) * distanza) + palle [0].getCentro().getY());
g2.drawImage(immagineStecca, x, y, this);
dove palle [0] è una istanza della classe Palla e rappresenta una palla da biliardo , immagineStecca e una Image rappresentante l'immagine png della stecca
ma c'è sempre qualcosa che non va , e non capisco il perchè...
aggiungo che io l'angolo lo ottengo (mediante un apposito algoritmo) come di consueto si è soliti considerare (crescono in senso antiorario) e con assi x e y con verso positivo rispettivamente verso destra e verso l'alto...può essere quindi il diverso orientamento in Java dell'asse y (cioè verso positivo verso il basso) la causa dei miei problemi?