Java 2D - Zeichenstift

ymene

Bekanntes Mitglied
Hallo zusammen,

aktuell studiere ich die Java2D API, denn obwohl ich schon lange Java programmiere, hab ich mich damit noch nicht auseinander gesetzt, daher wollte ich mal ein wenig experimentieren, was alles mit der 2D API möglich ist. Einige erste Erfolge hatte ich auch bereits und nahm mir nun vor, mal die Kochsche Kurve Darstellung in Java2D umzusetzen.

Dazu eine kleine Frage: Gibt es in der 2D API ein Element, dass einem Zeichenstift ähnelt, welchem ich einfach einen Winkel und eine Länge vorgebe, und dieser dann von aktuellem Punkt aus den Zielpunkt selber berechnet (Turtlelike), oder muss ich diese Berechnungen von Hand durchführen?

Die einzige Klasse, die in etwa dies tut schien mir der GeneralPath zu sein, jedoch hat dieser leider keine Winkelfunktionen. Ich kann ihm jeweils nur die Zielkoordinaten übergeben. Daher wäre nun mein erster Ansatz, den GeneralPath um diese Winkelfunktion+Länge Funktionalität zu erweitern. Lieg ich damit gut, oder gibt es andere Lösungsvorschläge, wie man Kochsche Kurve angehen sollte?

Grüße,
ymene
 
Zuletzt bearbeitet:
Dazu eine kleine Frage: Gibt es in der 2D API ein Element, dass einem Zeichenstift ähnelt, welchem ich einfach einen Winkel und eine Länge vorgebe, und dieser dann von aktuellem Punkt aus den Zielpunkt selber berechnet (Turtlelike), oder muss ich diese Berechnungen von Hand durchführen?
So etwas gibt es nicht, man könnte sich dazu aber leicht eine Hilfsmethode schreiben.
Neben der Möglichkeit das selbst zu berechnen, könnte man auch Graphic Objekt transformieren/rotieren und die gewünschte Länge in y-Richtung auftragen.
 
GeneralPath bzw. der aktuellere Path2D.Float wäre eine Option, aber tendenziell würde ich nicht davon erben, sondern vielleicht eher eine Klasse mit den gewünschten Stift-Funktionen machen, von der man sich dann einen Path2D abholen kann...
 
@Michael, eine sehr interessante Idee, ärgert mich, dass ich nicht selber drauf gekommen bin, habe erst kurz zuvor etwas mit AffineTransformation herumexperimentiert. Die Lösung liegt nahe!

@Marco, korrekter Einwand, hast du absolut recht. So würde ich es letztendlich auch am ehesten umsetzen wollen.

Habt vielen Dank für den Input, sind doch mal direkt zwei Wege die ich mal ausprobieren werde! Dachte nur, ich habe sowas wie eine Turtle vielleicht nur übersehen, wollte ja nicht das Rad neu erfinden ;-)
 

Neue Themen


Zurück
Oben