# Verständnisproblem GeneralPath/AffineTransform



## heine789 (15. Aug 2004)

Hallo zusammen!

Habe eine Frage bezüglich folgendem code. Von wo weiss das AffineTransform Objekt das die Operationen setToRotation(...) u. setToTranslation(...) auf das GeneralPath Objekt ausgeführt werden sollen???

Vielen Dank 

Hier der code...


```
// Datei Example02.java

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class Example02 extends Frame {
	public static void main( String[] args ) {
		new Example02();
	}
	
	public Example02() {
		
		super( "Java 2D Example02, Shapes and Transforms" );
		setSize( 400, 300 );
		setVisible( true );
		
		addWindowListener(
				new WindowAdapter() {
					public void windowClosing( WindowEvent ev ) {
						dispose();
						System.exit( 0 );
					}
				}
		);
	}
	
	
	public void paint( Graphics g ) {
		
		g.setColor( Color.red );
		g.drawRect( 50, 50, 200, 200 );
		
		Graphics2D g2d = ( Graphics2D ) g;
		g2d.setColor( Color.blue );
		g2d.drawRect( 75, 75, 300, 200);
		
		
		GeneralPath path = new GeneralPath(
				GeneralPath.WIND_EVEN_ODD );
		path.moveTo( 0.0f, 0.0f );
		path.lineTo( 0.0f, 125.0f );
		path.lineTo( 225.0f, 125.0f );
		path.lineTo( 225.0f, 0.0f );
		path.closePath();
		
		AffineTransform at = new AffineTransform();
		at.setToRotation( -Math.PI / 8.0 );
		g2d.transform( at );
		at.setToTranslation( 50.0f, 200.0f );
		g2d.transform( at );
		
		g2d.setColor( Color.green );
		g2d.fill( path );
	}
}
```


----------



## Kerberus (15. Aug 2004)

Weiss es nicht. Das AffineTranform-Objekt dreht das ganze Koordinaten System. Das heisst, wenn du nur dein GeneralPath drehen willst, musst du zuerst die Roationt anwenden, dann den Path  zeichnen und dann wieder zurück drehen, denn sonst werden alle anderen Objekte, die du zeichnen willst, auch gedreht erscheinen.


----------



## heine789 (16. Aug 2004)

Danke!


----------

