Drehen Sie ein Bild in java um den angegebenen Winkel
Hier ist die Funktion, womit eine Form an den angegebenen Koordinaten:
public void drawTank(int x,int y){
int h = 50;
int w = 50;
graphic.setColor(Color.darkGray);
graphic.drawRect(x, y, h, w);
graphic.fillRect(x, y, h, w);
graphic.setColor(Color.GRAY);
graphic.drawRect(x+50, y+20, 35, 10);
graphic.fillRect(x+50, y+20, 35, 10);
}
Möchte ich hinzufügen, eine weitere variable zu der oben genannten Funktion namens "Winkel", so dass das Bild auch bei der Drehung um den angegebenen Winkel (drawTank(int x,int y,int Winkel).
Aktualisiert mit Beispiel
Was ich versucht habe ist, dass ich initialisiert Graphics2D und veränderte mein code bzw:
g2D.setColor(Color.darkGray);
g2D.drawRect(x, y, h, w);
g2D.fillRect(x, y, h, w);
g2D.setColor(Color.red);
g2D.drawRect(x+50, y+20, 35, 10);
g2D.fillRect(x+50, y+20, 35, 10);
g2D.rotate((Math.toRadians(angle)));
Aber das macht eigentlich nichts. :/
1) Falls die grafische variable ist eine
Graphics2D
Objekt, sollten Sie mithilfe einer AffineTransform
auf das Graphics-Objekt. 2) Sollte nicht diese Methode eine Graphics
oder besser eine Graphics2D
parameter so, dass die aktuelle active Graphics-Objekt übergeben werden kann, in von JComponent ist paintComponent(Graphics g)
- Methode (Swing)?InformationsquelleAutor Manas Bajaj | 2013-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorrang Angelegenheiten...
In Ihrem zweiten Beispiel, Sie sind für die Auswahl der Drehung, NACHDEM Sie gezeichnet haben alles. Dies ist nicht, wie Grafiken funktioniert. Sie müssen, um die transformation zuerst, dann alles, was folgt, wird nutzen, dass die transformation.
Möchten Sie vielleicht werfen Sie einen Blick auf Transformieren von Formen, Text und Bilder weitere Informationen
Ja, +1 für faul 😉
InformationsquelleAutor MadProgrammer
Hier ist die brute-force-Weg, es zu tun. Werfen Sie einen Blick auf Java.lang.Math und java.das awt.Grafiken (die Sie haben bereits eine Instanz) Mit dieser können Sie die draw-polygon-Funktion zum berechnen der Punkte des Rechtecks, die Sie tun können, mit der sin und cos Funktionen in Java.lang.Mathematik
Wirklich, würde man nur benötigen, um zu berechnen, zwei Punkte, die die Art und Weise, wie Ihr Ausgangspunkt wäre die 90degree vertex für die Berechnung der zwei benachbarten Koordinaten mit. Von dort aus ist es nur eine Frage der dabei einige addition und Subtraktion mit den Punkten, die Sie und Ihre Werte einer dimension auf, um den letzten Punkt-kitty-Ecke zu Ihrem Ausgangspunkt.
Ich würde es für Sie herausfinden, und schreiben Sie einige Beispiel-code, aber was dann Spaß machen würde, dass Sie verlassen?
InformationsquelleAutor darkpbj