# Graphics - Raute



## Gast (17. Mrz 2008)

Versuche eine Linie zu zeichnen, die ihren Startpunkt im definierten Punkt hat, der Zielpunkt ist auf das Zentrum eines Rechteckes/Quadrates gerichtet. Jetzt will ich das Quadrate um 45° drehen, zu einer Raute. Die Linie soll jetzt genau bis zur Umrandung der Raute gezeichnet werden. 

```
Graphics2D g2 = (Graphics2D)g; 

Rectangle2D.Double r = new Rectangle2D.Double(110,110,40,40); 

double theta = Math.PI/4; 
AffineTransform rotator = new AffineTransform(); 
rotator.rotate(theta, r.getCenterX(), r.getCenterY()); 
GeneralPath rgp = new GeneralPath(rotator.createTransformedShape(r)); 


Point2D.Double p1 = new Point2D.Double(0,0); 
Point2D.Double p2 = new Point2D.Double(r.getCenterX(),r.getCenterY()); 
Line2D.Double line = new Line2D.Double(p1, p2); 

g2.draw(rgp); 
g2.draw(line);
```
Von dem GeneralPath bekomme ich wohl kein getCenter, dann müsste ich noch den Radius zur Rauten-Umrandung herausbekommen?


----------



## 0x7F800000 (17. Mrz 2008)

ääähm... eine skizze hätte da imho nicht geschadet, ab "zielpunkt mit richtung" hab ich nix mehr gerafft  :autsch: Was willst du genau zeichnen?


----------



## Marco13 (17. Mrz 2008)

Wenn es noch ein Quardat ist, geht die Linie dann bis ins Zentrum? 
Wenn es gedreht ist, und die Linie am Rand der Raute aufhören soll, kannst du entweder den einfachen Ansatz wählen, und ERST die Linie bis zum Mittelpunkt zeichnen, und dann die Raute drüberpinseln (eben nicht mit draw(shape) sondern mit fill(shape), wobei sie evtl. in der Hitnergrundfarbe gefüllt ist), oder du musst den Schnittpunkt der Rauten-Seite mit der Linie berechnen, und diesen Schnittpunkt als neuen Endpunkt der Linie nehmen.


----------



## Xeyth (20. Mrz 2008)

willst du was mit Isometrie erstellen? Sowas vielleicht? daran arbeite ich eben^^


----------

