Was ist ein Shape, also klar ein Objekt, aber was ist damit gemeint (Graphics2d)? Und was sidn affinetransformationen

uuqfowehui23

Aktives Mitglied
Hi Leute, sorry, aber bin wohl nicht der hellste. Was genau ist mit einem Shape gemeint, wir erstellen ein Shape und wie genau mache ich darasud ann eine Form z. B. ein Dreckeck? Also das verwirrt mich doch sehr.

Ich kann doch eigentlich nur mit Generalpath zeichnen oder?

WIe komme ich jetzt von einer Zeichnung, die ich z. B. angelegt habe zu einem Shape?

Und was genau ist mit affientransfomation gemeint, habe mir das https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/AffineTransform.html

durch gelesen, aber was tut die Klasse? Mit was arbeitet diese Klasse? Tut eine AffineTransoformation eiinen Generalpath bearbeiten?
 
Es gibt verschiedene Arten von geometrischen Formen (wir beschränken uns auf 2D), so ist ein Kreis eine geometrische Form, eine Linie ebenso aber es gibt nicht die geometrische Form. "Geometrische Form" ist also nur ein Überbegriff für alle möglichen Arten geometrischer Formen.

Wenn Du Dir jetzt alle möglichen geometrischen Formen vorstellst, wird es Dir schwer fallen, gemeinsame Attribute zu finden. Schon ein Kreis ließe sich z. B. durch Mittelpunkt und Radius, durch zwei Punkte des umschließenden Rechtecks oder durch drei Punkte, die auf seinem Rand liegen, beschreiben.

Trotzdem gibt es Gemeinsamkeiten: für jede geometrische Form kann z. B. angegeben werden, ob sie einen Punkt enthält oder nicht, auch existiert in jedem Fall ein umschließendes Rechteck und vor allem kann die tatsächliche Gestalt mit Hilfe eines Pfads beschrieben werden.

In Java ist Shape nun ein Interface für geometrische Formen. Jede Klasse, die dieses Interface implementiert, ist also in der Lage eine geometrische Form zu beschreiben.

Dabei gibt es in Java durchaus verschiedene konkrete Formen: Kreisbögen, Ellipsen, Linien, Kurven, Rechtecke, Polygone, Bereiche (zur Konstruktion von komplexeren Formen aus einfacheren) und Pfade.

Wenn Du also einen GeneralPath hast, dann hast Du bereits ein Shape, weil GeneralPath das Interface Shape implementiert. Ein Dreieck kannst Du mit Hilfe eines Polygons beschreiben.

Affine Abbildung ist ein Begriff aus der Mathematik. Vereinfacht gesagt transformiert eine affine Abbildung Punkte und Formen unter Beibehaltung gewisser Eigenschaften. Mit Hilfe von affinen Abbildungen lassen sich z. B. Verschiebung, Drehung, Scherung, Skalierung erzielen. Das Schöne dabei ist, dass die Punkte der Objekte nicht geändert werden müssen. Beispielsweise kannst Du mit Hilfe von Graphics2D#scale eine affine Abbildung für den Zeichenkontext festlegen, so dass die gezeichneten Objekte verkleinert oder vergrößert erscheinen. Affine Abbildungen lassen sich mit Hilfe der Matrixmultiplikation darstellen, wie es in der Doku gezeigt ist. Außerdem lassen sie sich kombinieren, so dass die mehrere Transformationen in einem Rutsch durchgeführt werden können.
 

Zurück
Oben