Grafikobjekt drehen

GideFix

Mitglied
Halle ich schätze dieses oder ein ähnliches Thema wurde schon erstellt aber ich habs mit der Suche nicht gefunden :S

Wie dreht man in Java ein einfache Grafikobjekt wie zum Beispiel ein Rechteckt?!

Danke schonmal im voraus!
 

GideFix

Mitglied
ich versteh nicht auf was diese methoden angewendet werden sollen :S
könnten ihr vll ne beispiel methode schreiben, die einfach ein quader um 45 grad dreht?

Das Problem ist halt, dass ich diese komsiche graphics2d klasse nicht verstehe, da wir sowas in der schule nie behandelt haben...
 

GideFix

Mitglied
Tut mir leid jetzt mehr infos :
Also...
Bisher haben wir in der schule ungefähr so gemalt:
Wir haben einfach ein graphics Objekt genommen und dann sowas wie dieses in die paint methode gemach:

public void paint (Graphics stift){
sitft.drawrect (100,100,200,200)}

Jetzt haben wir vom Lehrer die Aufgabe bekomme ein gemaltes polygon um einen bestimmten Winkel zu drehen.
Ich habe allerdings keine Ahnung wo ich anfangen soll...
Ich hoffe ihr könnt mir helfen :S
 

eRaaaa

Top Contributor
Anfangen solltest du im Lesen von dem o.g. Link :)
Denn dort ist alles beschrieben.
Sagen wir du hast ein Polygon -> ein einfaches Rechteck:
Java:
private Polygon s = new Polygon(new int[]{0,100,100,0}, new int[]{0, 0, 100, 100}, 4);
dieses willst du nun in deiner paint(Component) drehen und evtl. vorher verschieben, dann erstellst du ein AffineTransform-Objekt und rufst dort eben dann die Methode rotate oder translate auf und setzt anschließend dieses Objekt mit setTransform an dem Graphics-Objekt. Vorher evtl. die aktuelle Transformation speichern, indem du dir diese mit getTransform holst!
Da die setTransform Methode nicht in der abstrakten Klasse Graphics bereit steht, musst du das Graphics-Objekt zuvor auf Graphics2D casten.
Hier noch einmal ein minimales Beispiel, das evlt. übersichtlicher ist als das Verlinkte
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.AffineTransform;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class TransformDemo {
	
	private Polygon s = new Polygon(new int[]{0,100,100,0}, new int[]{0, 0, 100, 100}, 4);

	public TransformDemo(){
		JFrame frame = new JFrame();
		JPanel panel = new JPanel(){
			@Override
			protected void paintComponent(Graphics g) {
				super.paintComponent(g);
				g.fillPolygon(s);
				//demo:
				g.setColor(Color.RED);
				g.drawString("hallo", 10, 10);
				Graphics2D g2d = (Graphics2D) g;
				AffineTransform at = new AffineTransform();
				at.translate(100, 0); //verschiebe auf x achse um 100
				at.rotate(Math.toRadians(45)); //rotiere um 45 grad
				g2d.setTransform(at); // <---
				g.fillPolygon(s);
				g.setColor(Color.BLACK);
				g.drawString("hallo", 10, 10);
			}
		};
		frame.add(panel);
		frame.setSize(200, 200);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				new TransformDemo();
			}
		});
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M "einfaches Grafikobjekt erzeugen" AWT, Swing, JavaFX & SWT 8
onek2705 ButtonArray drehen AWT, Swing, JavaFX & SWT 5
N Bild Drehen AWT, Swing, JavaFX & SWT 1
B JavaFX Bild um die eigene Achse drehen lassen AWT, Swing, JavaFX & SWT 0
S JavaFX Drehen um eigene Achse AWT, Swing, JavaFX & SWT 2
J Images drehen AWT, Swing, JavaFX & SWT 5
M Java FX 3D kamera drehen oder lieber die Gruppe drehen AWT, Swing, JavaFX & SWT 10
B Graphics2D Componente Drehen AWT, Swing, JavaFX & SWT 2
TheSorm Rectangle drehen AWT, Swing, JavaFX & SWT 9
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
C Rechteck drehen AWT, Swing, JavaFX & SWT 1
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
L 2D-Grafik Bild in Richtung Maus drehen AWT, Swing, JavaFX & SWT 18
F 2D-Grafik Punkte um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 11
T Bild drehen ohne Resize AWT, Swing, JavaFX & SWT 3
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
M Rechtecke drehen AWT, Swing, JavaFX & SWT 15
P JComponent / JLabel drehen (Rotation) AWT, Swing, JavaFX & SWT 2
S Bild in Richtung Mauszeiger drehen AWT, Swing, JavaFX & SWT 2
D Swing Spielfeld drehen von Pentago endet in einer Katastrophe AWT, Swing, JavaFX & SWT 2
Jats 2D-Grafik Quadrat/Dreieck um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 10
B 2D-Grafik Zeilen drehen im JEditorPane AWT, Swing, JavaFX & SWT 3
M Rechteck "umdrehen"/über die Kante drehen AWT, Swing, JavaFX & SWT 4
G Swing JLabel drehen für Kartenspiel AWT, Swing, JavaFX & SWT 9
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
multiholle Swing Panel um 90° drehen AWT, Swing, JavaFX & SWT 5
O JLabel um 90 Grad drehen ? AWT, Swing, JavaFX & SWT 9
E Bild drehen AWT, Swing, JavaFX & SWT 4
R Rechteck drehen! AWT, Swing, JavaFX & SWT 4
S BufferedImage drehen AWT, Swing, JavaFX & SWT 3
N Formen drehen und auf JPanel zeichnen AWT, Swing, JavaFX & SWT 6
S wie Jpanel drehen AWT, Swing, JavaFX & SWT 4
J swing komponenten drehen? AWT, Swing, JavaFX & SWT 11
K Graphics drehen? AWT, Swing, JavaFX & SWT 7
B Ein Image Objekt drehen? AWT, Swing, JavaFX & SWT 2
N Bild drehen (AffinTransform etc.) AWT, Swing, JavaFX & SWT 2
N Bild drehen AWT, Swing, JavaFX & SWT 7
thE_29 Bild drehen AWT, Swing, JavaFX & SWT 6
C Koordinatensystem drehen AWT, Swing, JavaFX & SWT 3
B Text drehen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben