Bild in Richtung Maus drehen

Lastone

Mitglied
Hallo zusammen,

Da ich im anderen Themenbereich keinen Erfolg hatte(war wohl im falschen Thema!)
daher erneut:

Ich habe ein Problem und zwar will ich dass wenn ich mit der Maus in mein Panel klicke das Bild dort hin zeigt.

Ich probiere das momentan mit Graphics2D (rotate).

Momentan habe ich:
Java:
public void Mouseleft(MouseEvent e) {
                
        if (e.getButton() == MouseEvent.BUTTON1) {
            
            Xl = e.getX();
            Yl = e.getY();
            
            
            
            xturret = (pictankturret.getIconWidth() / 2);
            yturret = (pictankturret.getIconHeight() / 2);
            
            float xDistance = Xl - xturret;
            float yDistance = Yl - yturret;
            rotationAngle = (Math.atan2(yDistance, xDistance));

und im paint:
Java:
public void paint(Graphics g) {
        super.paint(g);
 
        Graphics2D g2d = (Graphics2D)g;
        
        
        // turret zeichnen
        g2d.rotate(tank.getrotationAngle());
        g2d.drawImage(tank.getImage2(),250,250, this);
        
        Toolkit.getDefaultToolkit().sync();
        g.dispose();
    }

aber irgendwie funktioniert das mit dem drehen so gar nicht...
Das Bild soll ja auf der stelle gegen den Mauszeiger drehen.

Vielen Dank schon im vorraus.
Freundliche Grüsse
Lastone
 
Java:
            xturret = (pictankturret.getIconWidth() / 2);
            yturret = (pictankturret.getIconHeight() / 2);

das wäre die mitte... x und y position halt.

Muss ich das nun in einen Point abspeichern? und wie geht das dann mit dem Rotate?
 
Probier das mal mit
Code:
Graphics2D.drawImage(Image img,AffineTransform xform,null);
Die AffineTransform hierzu holst du dir bei deinem Graphics2D Objekt mithilfe von
Code:
getTransform()
ab.

Laut API sollte das das Bild vorher drehen, sonst ist (anscheinend) die Transformation des Graphics2D umsonst. Es scheint, als könnte diese Klasse nur Transformationen speichern und implementiert keine Mehtode, die direkt umzusetzen
 

Neue Themen


Zurück
Oben