Hallo Leute,
ich hatte vor ein Bild je nachdem wie der Mauszeiger steht zu rotieren, um genau zu sein soll die rechte Mitte des Bildes immer Richtung des Mauszeigers zeigen solange dieser im JFrame ist. Habe nun versucht immer den Winkel berechnen zu lassen mit ( arctan((y2 - y1)/(x2 - x1))) )wobei x1,y1 der Punkt auf dem Bild und x2,y2 der Punkt der Mauszeigerposition ist. Dies habe ich dann mit Math.toDegrees umgeformt um damit
später die Graphics Komponente zu drehen.
Und hier entsteht nun wahrscheinlich das Problem.
Die getRotation Methode gibt folgendes zurück:
Also drehen tut es sich schon beim bewegen des Mauszeigers nur einfach nicht in die Richtung von diesem. Ich weiß nicht wie ich das umsetzen soll ich muss ja bei jedem zeichnen die Rotation berechnen die die Differenz von der neuen Mausposition zur Alten beschreibt.
Hat da jemand eine Idee bzw. kennt eine andere Methode?
MFG Syny
PS: Hoffe mein Anliegen ist einigermaßen Verständlich
ich hatte vor ein Bild je nachdem wie der Mauszeiger steht zu rotieren, um genau zu sein soll die rechte Mitte des Bildes immer Richtung des Mauszeigers zeigen solange dieser im JFrame ist. Habe nun versucht immer den Winkel berechnen zu lassen mit ( arctan((y2 - y1)/(x2 - x1))) )wobei x1,y1 der Punkt auf dem Bild und x2,y2 der Punkt der Mauszeigerposition ist. Dies habe ich dann mit Math.toDegrees umgeformt um damit
später die Graphics Komponente zu drehen.
Und hier entsteht nun wahrscheinlich das Problem.
Java:
private void drawPlayer(Graphics2D g){
rota = player.getRotation();
double newRota= old-rota;
BufferedImage blankCanvas = new BufferedImage(player.getLook().getWidth(),player.getLook().getHeight(),BufferedImage.TYPE_INT_ARGB);
g.rotate(newRota,player.f_PosX+(player.getLook().getWidth())/2,player.f_PosY+(player.getLook().getHeight())/2);
g.drawImage(player.getLook(),(int)player.f_PosX,(int)player.f_PosY,null);
old = rota;
}
Java:
return(Math.toDegrees(Math.tanh(((f_yPointer-(f_PosY+(getLook().getHeight()))/2))/((f_xPointer-(f_PosX+(getLook().getWidth())))))));
Also drehen tut es sich schon beim bewegen des Mauszeigers nur einfach nicht in die Richtung von diesem. Ich weiß nicht wie ich das umsetzen soll ich muss ja bei jedem zeichnen die Rotation berechnen die die Differenz von der neuen Mausposition zur Alten beschreibt.
Hat da jemand eine Idee bzw. kennt eine andere Methode?
MFG Syny
PS: Hoffe mein Anliegen ist einigermaßen Verständlich