JavaFX: Wie Geben Formen Perspektive

Das PerspectiveTransform Klasse können Sie eine Form verzerren, so dass es eine dreidimensionale Wirkung zu haben scheint.

Dies ist nicht das Gleiche wie tatsächliche dreidimensionale Formen in der Szene zu schaffen Graph- es einfach die Geometrie eines Knotens verzerrt eine perspektivische Effekt zu erzeugen.

Das PerspectiveTransform Klasse arbeitet, indem die Ecken der ursprünglichen Form aufzeichnenstereotypprojekt Begrenzungsrechteck auf einem beliebigen Viereck. (Das Begrenzungsrechteck ist ein Rechteck, das eine Form vollständig enthält, und ein Viereck ist eine beliebige viereckige Form.) Alles, was Sie ist die x- und y-Koordinaten jeder Ecke des Vierecks zu liefern haben, die Methoden unter Verwendung der in dieser Tabelle aufgeführt.

Die PerspectiveTransform Klasse
constructorErläuterung
PerspectiveTransform ()Erstellt einen neuen PerspectiveTransform Effekt mit Defaultparameters.
MethodenErläuterung
Leere setUlx (double-Wert)Legt die obere linke Ecke x-Koordinate.
Leere setUly (double-Wert)Legt die obere linke Ecke y-Koordinate.
Leere setUrx (double-Wert)Legt die obere rechte Ecke x-Koordinate.
Leere setUry (double-Wert)Legt die obere rechte Ecke y-Koordinate.
Leere setLlx (double-Wert)Setzt die untere linke Ecke x-Koordinate.
Leere setLly (double-Wert)Setzt die untere linke Ecke y-Koordinate.
Leere setLrx (double-Wert)Setzt die untere rechte Ecke x-Koordinate.
Leere setLry (double-Wert)Setzt die untere rechte Ecke y-Koordinate.

Um darzustellen, wie die Perspektive Werke verwandeln, hier wird es auf einem Schachbrett angelegt mit dem folgenden Stück Code erstellt:

Gruppe Board = new Group () - boolean isLight = true-int size = 50 für (int rank = 0- Rang lt; 8- Rang ++) {for (int file = 0- Datei lt; 8- Datei ++) {Rectangle r = new Rectangle (Größe, Größe) -r.setX (Datei * Größe) -r.setY (Rang * Größe) -wenn (isLight) r.setFill (Color.LIGHTGRAY) -elser.setFill (Color.DARKGRAY) -isLight = isLight-board.getChildren () hinzufügen (r) -.} isLight = isLight-}!

Dieser Code verwendet eine Reihe von verschachtelten für Schleifen, um die Reihen (Zeilen) und Dateien (Spalten) des Schachbretts mit 50x50 Rechtecke aus abwechselnden Farben zeichnen. Das isLight Boolesche Variable wird verwendet, diesen Wert zu halten Spur der Farbe jedes Quadrat- invertiert wird nach jedem Rechteck gezeichnet wird.

Das isLight Wert invertiert wird, nachdem jede Datei erstellt wird, so dass die nachfolgende Datei mit der entgegengesetzten Farbe beginnt. Die Abbildung zeigt, wie das Schachbrett, wenn in einer Szene angezeigt erscheint.

bild0.jpg

Das gesamte Schachbrett befindet sich in einem 400x400 Platz. So fügen Sie Perspektive, PerspectiveTransform Effekt wurde geschaffen, der die 400x400 quadratischen Schachbrett auf ein Viereck bildet mit den folgenden Ecke Koordinaten:

EckeOriginal x, yNeue x, y
Oben links0, 0100, 100
Oben rechts400, 0450, 100
Unten links0, 4000, 300
Rechts unten400, 400400, 300

Der Code, um diese Transformation zu erreichen, sieht wie folgt aus:

PerspectiveTransform e = new PerspectiveTransform () - e.setUlx (100) - // Ober lefte.setUly (100) -e.setUrx (450) - // Ober righte.setUry (100) -e.setLlx (0) - / / Nieder lefte.setLly (300) -e.setLrx (400) - // Lower righte.setLry (300) -board.setEffect (e) -

Diese Abbildung zeigt, wie das Schachbrett aussieht, wenn diese Perspektive Transformation angewendet wird.

image1.jpg

Menü