Objekte mit eigenen Koordinatensystemen

marcelBa

Grünschnabel
Hallo,

ich möchte eine GUI entwerfen, wo ich eine Umgebung habe und dort meine Bilder platzieren kann.

Die Umgebung und die Bilder sollen alle jeweils ihre eigenen Koordinatensysteme haben.

Zum Beispiel habe ich ein Objekt A (Bild), welches den Koordinatenursprung im Zentrum des Bildes hat.

Nun kann ich mein Objekt A in der Umgebung platzieren. Es liegt zum Beispiel an Position (200,200) im Koordinatensystem der Umgebung. Dieses Objekt A möchte ich rotieren und skalieren. Außerdem möchte ich aus der Umgebungssicht gern wissen, an welcher Position sich ein bestimmter Bereich des Objektes A im Koordinatensystem der Umgebung befindet.

Wie kann ich dies implementieren? Muss jeder dieser Objekte das Graphics2D Objekt haben, welches ja selbst schon ein Koordiatensystem besitzt?

Kann ich das AffineTransform Objekt benutzen, welches Transformationen unterstützt?
 
Hallo

Wie kann ich dies implementieren?
Ich sehe die Probleme irgendwie nicht so ganz. Du kannst ja z.B. auf einem Panel in der pain-Methode g.drawImage(img, 0, 0, this) (oder irgendwie so) ausführen. Die Koordinaten musst du ja nur irgendwo speichern, zum Beispiel in einer eigenen Klasse "MeinBild".
Code:
public class MeinBild(){
  private Image img;
  private int x;
  private int y;

  // getters/setters
}

public class MyPanel extends JPanel(){
  private List<MeinBild> meineBilder;
  public void paint(Graphics g){
    foreach meinebilder
      g.drawImage(meinBild.getBild(), meinBild.getX(), meinBild.getY(), this);
  }
}

Ich empfehle dir, mal auf der Oracle-Seite die grundlegensten "painting-tutorials" durchzuspielen:
http://docs.oracle.com/javase/tutorial/2d/TOC.html

Gruss,
slowy
 
Zurück