JavaFX: comment donner formes perspective

La PerspectiveTransform classe vous permet de déformer une forme de sorte qu'il semble avoir un effet tridimensionnel.

Ce ne sont pas la même chose que la création de formes en trois dimensions réelles dans votre scène graph- il déforme tout simplement la géométrie d'un noeud pour créer un effet de perspective.

La PerspectiveTransform classe fonctionne en cartographiant les coins du rectangle de délimitation de la forme originale d'un quadrilatère arbitraire. (La rectangle délimitant est un rectangle qui contient entièrement une forme, et un quadrilatère est toute forme quadrangulaire.) Tout ce que vous devez fournir est la coordonnées y de chaque coin du quadrilatère, en utilisant les méthodes énumérées dans ce tableau x et.

La classe PerspectiveTransform
ConstructeurExplication
PerspectiveTransform ()Crée un nouvel effet de PerspectiveTransform avec defaultparameters.
MéthodesExplication
setUlx vide (valeur double)Définit le coin supérieur gauche coordonnée x.
setUly void (double valeur)Définit le coin supérieur gauche coordonnée y.
setUrx void (double valeur)Définit le coin supérieur droit coordonnée x.
setUry vide (valeur double)Définit le coin supérieur droit coordonnée y.
setLlx vide (valeur double)Définit le coin inférieur gauche coordonnée x.
setLly void (double valeur)Définit le coin inférieur gauche coordonnée y.
setLrx void (double valeur)Définit le coin inférieur droit coordonnée x.
setLry void (double valeur)Définit le coin inférieur droit coordonnée y.

Pour illustrer comment la perspective de transformer des œuvres, ici, il est appliqué à un échiquier créé avec le bit de code suivant:




Groupe pension = nouveau Groupe () - booléen taille isLight = true-int = 50 for (int rang = 0- rang lt; 8- rang ++) {for (int fichier = 0- fichier lt; 8- fichier ++) {Rectangle r = new Rectangle (taille, taille) -r.setX (fichier * taille) -r.setY (rang * taille) -Si (isLight) r.setFill (Color.LIGHTGRAY) -elser.setFill (Color.DARKGRAY) -isLight = isLight-board.getChildren () ajouter (r) -.}} isLight = isLight-!

Ce code utilise un ensemble de imbriquée pour boucles pour dessiner les rangs (lignes) et les fichiers (colonnes) de l'échiquier utilisant 50x50 rectangles de couleur alternatif. La est léger Variable booléenne est utilisé pour garder la trace de la couleur de chaque carrée de cette valeur est inversée après chaque rectangle est dessiné.

La est léger valeur est inversée après chaque fichier est établi de sorte que le fichier suivant commence par la couleur opposée. La figure montre comment l'échiquier apparaît lorsqu'elle est affichée dans une scène.

image0.jpg

L'ensemble de l'échiquier occupe un carré 400x400. Pour ajouter perspective, PerspectiveTransform effet a été créé qui mappe le 400x400 échiquier carré pour un quadrilatère avec coordonne l'angle suivant:

CoinX originaux, yNouveaux x, y
En haut à gauche0, 0100, 100
En haut à droite400, 0450, 100
En bas à gauche0, 4000, 300
En bas à droite400, 400400, 300

Le code pour accomplir cette transformation ressemble à ceci:

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

Cette figure montre comment l'échiquier ressemble quand cette perspective de transformation est appliquée.

image1.jpg

» » » » JavaFX: comment donner formes perspective