2D-Grafik User-BufferedImage rotieren im Zentrum und ohne "anpassung"

Spytrycer

Mitglied
Hey Leute,

Ich hab das Problem das ich ein spezielles BufferedImage immer und solange die S taste gedrueckt ist rotieren will.

Ich verwende dafuer bisher folgenden Code

Java:
     public static BufferedImage rotateImageX(BufferedImage img, double angle) {
            double sin = Math.abs(Math.sin(Math.toRadians(angle))), cos = Math.abs(Math.cos(Math.toRadians(angle)));
            int w = img.getWidth(null), h = img.getHeight(null);
            int neww = (int) Math.floor(w * cos + h  * sin),newh = (int) Math.floor(h  * cos + w * sin);
            BufferedImage bimg = new BufferedImage(neww, newh,BufferedImage.TYPE_INT_ARGB);
            Graphics2D g = bimg.createGraphics();
            g.translate((neww - w) , (newh - h) );
            g.rotate(Math.toRadians(angle), w / 2, h / 2);
            g.drawRenderedImage(img, null);
            g.dispose();
            return bimg;
        }

Mein Bufferedimage lasse ich mit folgendem Code anzeigen

Code:
if (down)
 {
 g.drawImage(rotateImageX(ship_idle,rotation), (int)pos.xpos - width, (int)pos.ypos- height , width  , height , null);
                  rotation++;
}

Jedoch verschiebt sich mein BufferedImage (wird nicht im Zentrum rotiert UND wird beim drehen verkleinert:

Unrotiert:
image rotate.png
Wenn S gedrueckt wird:
image rotate2.png
zum vergleich basis und rotation:
image rotate3.png
 

JCODA

Top Contributor
Ich denke es ist viel einfacher, wenn du die Rotation "on the fly" machst, also beim Zeichnen. Das hat den Vorteil, dass du nicht jedesmal ein neues BufferedImage erstellen musst. Ich vermute es sieht dann auch flüssiger aus.
 

Jardcore

Top Contributor
Am besten du hast einfach ein Objekt welches eine Koordinate hat und ein Winkel in Blickrichtung.
Der Winkel ist dann zwischen 0 und 2PI. Dann brauchst du nur eine Methode die das Objekt auf deinem Bildschirm darstellt. In jedem Frame wird das Bild neu gezeichnet und es wird immer die aktuelle Position und Blickrichtung gezeigt.
Das ganze solltest du dann am besten auf einem Canvas oder ähnlichen machen, statt mehrere Bilder übereinander zu zeichnen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
J Swing Erstellung eines User Interface AWT, Swing, JavaFX & SWT 2
R Swing User tippt in unsichtbares JTextField AWT, Swing, JavaFX & SWT 3
P Dynamische Seite zum basteln für den User AWT, Swing, JavaFX & SWT 8
C Swing JTattoo - Look and Feel für ALLE User AWT, Swing, JavaFX & SWT 5
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
M Eclipse-Platform Combo-Binding für User-Einträge AWT, Swing, JavaFX & SWT 9
Y DatenEvents in JTable bei User-Edit AWT, Swing, JavaFX & SWT 2
jgh Speichern von User-GUI-Einstellungen AWT, Swing, JavaFX & SWT 2
C Vom User angelegte Spaltenanordung rückgängig machen AWT, Swing, JavaFX & SWT 2
A Swing Drag and Drop TreeNode User Object AWT, Swing, JavaFX & SWT 3
A User Interface aufteilen? AWT, Swing, JavaFX & SWT 3
N JTable: Informiert werden, wenn User eine Zelle editiert hat AWT, Swing, JavaFX & SWT 2
J user fadein/fadeout benachrichtigung AWT, Swing, JavaFX & SWT 3
P User-Rechte fuer Frames ueberpruefen und deren Schliessung AWT, Swing, JavaFX & SWT 4
I Arbeitsspeicherverbrauch BufferedImage.TYPE_INT_RGB vs. TYPE_3BYTE_BGR AWT, Swing, JavaFX & SWT 6
H BufferedImage zurücksetzen funktioniert nicht AWT, Swing, JavaFX & SWT 12
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
I GEmaltes BufferedImage löschen AWT, Swing, JavaFX & SWT 3
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
cool_brivk24 AWT BufferedImage wird nicht geladen AWT, Swing, JavaFX & SWT 17
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
C Pixel-Rendering/Animation Performance in BufferedImage AWT, Swing, JavaFX & SWT 1
H Swing BufferedImage zeichnen AWT, Swing, JavaFX & SWT 1
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
G Subimage von BufferedImage speichern AWT, Swing, JavaFX & SWT 4
D JPanel Graphic2D als BufferedImage Speichern AWT, Swing, JavaFX & SWT 5
D BufferedImage -> Feature Extraktion. Unterschiedliche BufferedImage imageTypes problem AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Shape aus BufferedImage "löschen" AWT, Swing, JavaFX & SWT 2
M 2D-Grafik LookupOp Operation auf BufferedImage AWT, Swing, JavaFX & SWT 7
GianaSisters 2D-Grafik BufferedImage.getSubimage - Frage AWT, Swing, JavaFX & SWT 7
P BufferedImage schlechte Qualität beim Abspeichern AWT, Swing, JavaFX & SWT 9
S BufferedImage als schwarz-weiß-Bild AWT, Swing, JavaFX & SWT 3
Luk10 BufferedImage[...].getData() vs BufferedImage.setRGB() AWT, Swing, JavaFX & SWT 2
D Schnelles kopieren von Pixeln in ein BufferedImage AWT, Swing, JavaFX & SWT 25
J Flackern wie mit BufferedImage beheben AWT, Swing, JavaFX & SWT 4
N Swing BufferedImage neu laden AWT, Swing, JavaFX & SWT 10
N 2D-Grafik BufferedImage, Line2D, Swing und die Probleme AWT, Swing, JavaFX & SWT 5
Luk10 BufferedImage auf ein anderes BufferedImage zeichnen AWT, Swing, JavaFX & SWT 6
P BufferedImage auf JPanel AWT, Swing, JavaFX & SWT 11
K 2D-Grafik BufferedImage eingelesen, welches Modell?! AWT, Swing, JavaFX & SWT 2
T BufferedImage bei paintComponent AWT, Swing, JavaFX & SWT 6
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
0x7F800000 2D-Grafik int[] zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 27
H 2D-Grafik BufferedImage aus Integer-Array AWT, Swing, JavaFX & SWT 3
Luk10 2D-Grafik BufferedImage sauber rotieren AWT, Swing, JavaFX & SWT 16
P Image mehrfach in ein BufferedImage zeichnen AWT, Swing, JavaFX & SWT 7
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
E BufferedImage Alphaknal ein- und ausblenden AWT, Swing, JavaFX & SWT 7
N BufferedImage zeichnen AWT, Swing, JavaFX & SWT 4
D BufferedImage Größe skalieren AWT, Swing, JavaFX & SWT 2
P Swing Vom BufferedImage bei paintComponent nur soviel zeichnen, wie nötig AWT, Swing, JavaFX & SWT 3
B 2D-Grafik BufferedImage Performance AWT, Swing, JavaFX & SWT 3
Y frage zu BufferedImage AWT, Swing, JavaFX & SWT 7
E AWT RenderedImage aus BufferedImage erzeugen, um Bild abzuspeichern? AWT, Swing, JavaFX & SWT 4
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
A 2D-Grafik BufferedImage wird nicht eingezeichnet AWT, Swing, JavaFX & SWT 3
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
J AWT BufferedImage to 2DArray AWT, Swing, JavaFX & SWT 10
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
J JPanel in Bufferedimage AWT, Swing, JavaFX & SWT 3
1 BufferedImage in byte[], dann in String und zurück AWT, Swing, JavaFX & SWT 7
J Swing paintComponent() - repaint() - BufferedImage anzeigen AWT, Swing, JavaFX & SWT 5
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
B BufferedImage Builder AWT, Swing, JavaFX & SWT 15
F Transparentes BufferedImage über BufferedImage AWT, Swing, JavaFX & SWT 12
F Größe von BufferedImage ändern AWT, Swing, JavaFX & SWT 27
I Swing JComponent als BufferedImage speichern AWT, Swing, JavaFX & SWT 18
Dragonfire Swing Zoom-Vorgang optimieren [BufferedImage] AWT, Swing, JavaFX & SWT 2
2 Memory Leak mit BufferedImage !! AWT, Swing, JavaFX & SWT 15
X BufferedImage maximiert in JFrame anzeigen? AWT, Swing, JavaFX & SWT 2
R JPanel - BufferedImage - zeichnen großer Bilder AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
D BufferedImage und Graphics2D AWT, Swing, JavaFX & SWT 3
R Zeichnen von Zahlen in BufferedImage AWT, Swing, JavaFX & SWT 6
G BufferedImage.getRGB() mit 3 int-Werten vergleichen AWT, Swing, JavaFX & SWT 2
Luma BufferedImage wird nicht gezeichnet AWT, Swing, JavaFX & SWT 3
G keine ScaledInstance von BufferedImage? AWT, Swing, JavaFX & SWT 6
S BufferedImage & Scaling: Altes Problem im neuen Gewand AWT, Swing, JavaFX & SWT 2
G zu viele/große BufferedImage führt zu Java heap space AWT, Swing, JavaFX & SWT 5
G BufferedImage und jpg --> maximale Qualität AWT, Swing, JavaFX & SWT 9
F HTML Text irgendwie auf BufferedImage bringen AWT, Swing, JavaFX & SWT 3
R BufferedImage Problem AWT, Swing, JavaFX & SWT 2
G Problem mit BufferedImage und imageIO AWT, Swing, JavaFX & SWT 2
S BufferedImage drehen AWT, Swing, JavaFX & SWT 3
? ActionListener auf BufferedImage AWT, Swing, JavaFX & SWT 11
M BufferedImage mit html interpretierten String beschriften AWT, Swing, JavaFX & SWT 3
A Probelme mit großen BufferedImage in paintComponent AWT, Swing, JavaFX & SWT 7
B Farbtiefe eines BufferedImage verringern AWT, Swing, JavaFX & SWT 3
F ImageIcon -> BufferedImage AWT, Swing, JavaFX & SWT 2
T Performance Problem bei BufferedImage AWT, Swing, JavaFX & SWT 3
F Animiertes Gif als BufferedImage AWT, Swing, JavaFX & SWT 10
L Anzeigen von fotos: ImageIcon oder BufferedImage + paint() ? AWT, Swing, JavaFX & SWT 5
C Rotate BufferedImage --> Bild unvollständig AWT, Swing, JavaFX & SWT 5
U Streifen hinter bewegtem BufferedImage AWT, Swing, JavaFX & SWT 13
M BufferedImage skalieren AWT, Swing, JavaFX & SWT 6
T BufferedImage verkleinern Resultat ist zu pixelig. AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben