Rectangle drehen

TheSorm

Bekanntes Mitglied
Also ich Programmiere ein Programm das Rectangles und Kreise auf ein JPanel zeichnet, die Rectangles sollen auch Rotirt werden. Also ich benutze dann graphics 2d un dabei die Roations Methode: rotate(double theta, double x, double y)
dabei ist wenn ich es richtig verstehe theta der winkel um wiviel grad die sache geradreht werden soll ( also wenn man das mit Math.toRadian umrechnet) und x,y der punkt umden gedreht werden soll. Das prblem ist bei mir das einige der Rectangle die zufällig auf die Fläche gesetzt werden nicht angezeigt werden, oder dass sich alle Rectangles wegbewegen und wieder auftauchen wenn ein neues Gesetzt wird. Kann mir jemand helfen ?
 
Zuletzt bearbeitet:

TheSorm

Bekanntes Mitglied
ok das ist so nicht ganz richtig :D also ich hab jetzt das :
[Java]
for(int c = 0; c < circles.size(); c++){
Circle cir = circles.get(c);
g2.setColor(cir.getColor());
g2.rotate(Math.toRadians(cir.getRoatation()), cir.getX() + (cir.getDiameter()/2), cir.getY() + (cir.getDiameter()/2));
g2.fillOval(cir.getX(), cir.getY(), cir.getDiameter(), cir.getDiameter());
}

for(int r = 0; r < rectangles.size(); r++){
Rectangle rec = rectangles.get(r);
g2.setColor(rec.getColor());
g2.rotate(Math.toRadians(rec.getRoatation()), rec.getX() + (rec.getSideLength()/2), rec.getY() + (rec.getSideLength()/2));
g2.fillRect(rec.getX(), rec.getY(), rec.getSideLength(), rec.getSideLength());
}

for(int t = 0; t < triangles.size(); t++){
Triangle tri = triangles.get(t);
g2.setColor(tri.getColor());
g2.rotate(Math.toRadians(tri.getRoatation()),(tri.getXPoints()[0]+tri.getXPoints()[1]+tri.getXPoints()[2])/3, (tri.getYPoints()[0]+tri.getYPoints()[1]+tri.getYPoints()[2])/3);
g2.fillPolygon(tri.getXPoints(), tri.getYPoints(), tri.getNPoints());
}
[/Java]
und das Probklem ist das sich manchmal beim hinzufpgen neuer Objekte alle Obejkete um einen Punkt um ein paa grad drehen ich hab keine Ahnung wieso ... Das ganze passiert auch nur bei den Rechtecken und den Rechtwinkligen Dreiecken
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Die Kreise drehen sich nicht? :lol:

Ich habe mir deinen Code nicht näher angeguckt aber versuch mal alles zu zeichnen, was nicht gedreht werden soll, dann das Gedrehte, dann drehst du zurück, zeichnest weiter, drehst wieder usw.
 

TheSorm

Bekanntes Mitglied
Die Kreise drehen sich nicht? :lol:

Ich habe mir deinen Code nicht näher angeguckt aber versuch mal alles zu zeichnen, was nicht gedreht werden soll, dann das Gedrehte, dann drehst du zurück, zeichnest weiter, drehst wieder usw.

Die Kreise drehen sich nicht um einen externen drehpunkt du schlauberger. Und du solltest dir den Code angucken um mein Problem zu verstehen
 

Gucky

Top Contributor
Ich weiß was du meinst also gebe ich den Schlauberger dankend zurück.

Du iterierst über drei Collections, drehst dabei immer wieder die Graphics und zeichnest danach Kreise, Vierecke und Dreiecke.
Den Rotationsmittelpunkt setzt du dabei immer auf die Mitte des zu drehenden Körpers. Daher ist es nur normal, dass sich die Kreise nicht drehen. Sie tun es zwar schon aber du siehst es nicht.

Versuch mal nach jeder Drehung zurückzudrehen.
 

TheSorm

Bekanntes Mitglied
Mit ist schon kla das Kreise sich wenn sie sich drehen gleich aussehen aberdie anderen Formen drehen sich manchmal um einen externen drehpunkt die Kreise hingegen nicht was mich wundert und das zurück drehen sollte doch die Methode übernehmen
 

Gucky

Top Contributor
Die Methode rotate() translatet nur zurück. Ich weiß aber nicht, ob rotate ein dauerhafter Zustand ist.
Vielleicht ist es ein dauerhafter Zustand und dann wüssten wir, warum das passiert. Warum das bei den Kreisen nicht passiert: Ihre Drehung ist auf ihren Mittelpunkt justiert.

Kannst du einmal ein KSKB posten?
 

TheSorm

Bekanntes Mitglied
Habs hinbekommen. Man muss wirklich nochmal zurück drehen aber so funktionirt es:

[Java]
for(int r = 0; r < rectangles.size(); r++){
Rectangle rec = rectangles.get(r);
g2.setColor(rec.getColor());
g2.rotate(rec.getRoatation(), rec.getX() + (rec.getSideLength()/2), rec.getY() + (rec.getSideLength()/2));
System.out.println();
g2.fillRect(rec.getX(), rec.getY(), rec.getSideLength(), rec.getSideLength());
g2.rotate(-rec.getRoatation(), rec.getX() + (rec.getSideLength()/2), rec.getY() + (rec.getSideLength()/2));
}
[/Java]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Was genau bewirkt Rectangle in 2dGraphics? AWT, Swing, JavaFX & SWT 1
R AWT Rectangle mit Angle AWT, Swing, JavaFX & SWT 10
K 2048 Umsetzung mit Gridpane / Stackpane und / Rectangle AWT, Swing, JavaFX & SWT 0
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
U JavaFX GridPane - Circle auf Rectangle versetzten AWT, Swing, JavaFX & SWT 1
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
L JavaFX Rectangle mit Dock-Mechanismus AWT, Swing, JavaFX & SWT 3
K JavaFX TableView mit Rectangle AWT, Swing, JavaFX & SWT 3
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
J Rectangle g.fillRec() X/Y Punkt AWT, Swing, JavaFX & SWT 5
S Rectangle Border Color AWT, Swing, JavaFX & SWT 13
P drawString in einem Rectangle AWT, Swing, JavaFX & SWT 4
P Rectangle verschieben AWT, Swing, JavaFX & SWT 11
P ImageIcon auf Rectangle AWT, Swing, JavaFX & SWT 3
P Rectangle on JPanel zentrieren AWT, Swing, JavaFX & SWT 20
O 2D-Grafik Rectangle mit double Werten zeichnen AWT, Swing, JavaFX & SWT 3
T Rectangle Namen geben? Alternativen auch gerne gesehen. AWT, Swing, JavaFX & SWT 2
D 2D-Grafik Form der GrafikObjekte ändern, Ellipse -> Rectangle AWT, Swing, JavaFX & SWT 2
K AWT Rectangle klappt nicht AWT, Swing, JavaFX & SWT 7
R Resize Rectangle Problem AWT, Swing, JavaFX & SWT 3
Schandro Den größten passenden java.awt.Font zu einem Rectangle berechnen AWT, Swing, JavaFX & SWT 2
I Text innerhalb von Rectangle rendern AWT, Swing, JavaFX & SWT 3
H Rectangle[] ? AWT, Swing, JavaFX & SWT 5
I Rectangle mit floating values AWT, Swing, JavaFX & SWT 2
D Markieren mit Rectangle ? AWT, Swing, JavaFX & SWT 9
T PLAF MetalButtonUI Rectangle beseitigen AWT, Swing, JavaFX & SWT 4
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
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
G Grafikobjekt drehen AWT, Swing, JavaFX & SWT 6
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