translate verschiebt verkehrtes Element

Schaaaf

Bekanntes Mitglied
Hallo,

habe eine Strecke mit den Punkten A, B gegeben. Diese zeichne ich auch.
Jetzt möchte ich dieselbe Strecke erneut zeichen, aber um x,y verschieben (translate(x,y)).

Leider bleibt die neue Strecke an Ort und Stelle und die alte verschiebt sich... Wieso?

Java:
...
AffineTransform tx = new AffineTransform();
g.drawLine(points.get(0).x, points.get(0).y, points.get(1).x, points.get(1).y);
tx.translate(20,30);
g2d.setTransform(tx);
...
 
S

SlaterB

Gast
liegt an deinem Programm und deiner Interpretation der Anzeige,
was bei dir in vielleicht 1000 restlichen Klassen wie gezeichnet wird, was points enthält, usw.

der Code an sich ist nicht zu beanstanden, sagt ja auch nicht viel aus bisher,

zur Sicherheit habe ich mir selber noch ein Programm gemacht:
3 Linien werden normal gemalt, eine versetzt nach Setzen der Transformation, funktioniert also
Java:
public class TestGUI   extends JFrame {
    public TestGUI()   {
        JPanel p = new JPanel()     {
                public void paintComponent(Graphics g)      {
                    Graphics2D g2d = (Graphics2D) g;
                    AffineTransform tx = new AffineTransform();
                    g.drawLine(10,10,100,10);
                    g.drawLine(10,20,100,20);
                    g.drawLine(10,30,100,30);
                    tx.translate(20, 30);
                    g2d.setTransform(tx);
                    g.drawLine(10,40,100,40);
                }
            };
        add(p);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 300);
        setVisible(true);
    }

    public static void main(String[] args) {
        new TestGUI();
    }
}

> Leider bleibt die neue Strecke an Ort und Stelle und die alte verschiebt sich... Wieso?

wenn du exakt dieselbe Strecke zweimal zeichnest und am Ende sind beide da,
wie erkennst du überhaupt, welche welche ist? ;)
 

Schaaaf

Bekanntes Mitglied
"wenn du exakt dieselbe Strecke zweimal zeichnest und am Ende sind beide da,
wie erkennst du überhaupt, welche welche ist?"

Hab erst die eine und dann die andere gezeichnet.

Habe aber meinen Fehler gefunden :
Hatte g2d.draw(gp); (Path2D gp) hinter die Translation gesetzt. Jetzt steht es davor und alles klappt wie geplant...

Danke schön.
 

Neue Themen


Oben