Point d'ancrage de x, y dans les nœuds JavaFX


Certaines applications sprite (à savoir pulpcore) vous permettent de définir un point d'ancrage pour un objet.

Par exemple si le point d'ancrage d'un rectangle est de 0,0 et c'est de coordonnées x:0,y:0, le point supérieur gauche du rectangle doit être affiché sur le point supérieur gauche de l'écran.

Si cependant le point d'ancrage du rectangle est 50,50 et sa taille est 100x100, le milieu du rectangle serait placé à 0,0 et seule sa partie inférieure droite serait afficher.

Existe - t-il une propriété similaire dans JavaFX? Existe-t-il un moyen facile de l'implémenter (pouvez-vous lier les coordonnées x et y d'un nœud JavaFX à sa propre hauteur et largeur?)?

Lorsque je lie les coordonnées x,y à boundsInLocal/Parent.width, j'obtiens une exception d'exécution.

Author: Elazar Leibovich, 2009-08-24

1 answers

L'origine d'un rectangle est en haut à gauche comme vous le dites. Vous avez 2 options pour positionner le nœud. Vous pouvez utiliser layoutX et layoutY. var rect = Rectangle { layoutX: 50 layoutY: 50 largeur: 100 hauteur: 100 }

Ou translateX et translateY

Var rect = Rectangle { translateX: 50 translateY: 50 largeur: 100 hauteur: 100 } Le but principal de l'utilisation de layoutX / Y et translateX/ Y, est que translateX / Y est destiné à être modifiable alors que layoutX / Y est destiné au positionnement initial. Par exemple, vous pouvez modifier translateX/Y dans une animation alors que la position d'origine est mémorisée dans layoutX / Y. L'emplacement ultime sera toujours layoutX+ translateX et layoutY + translateY.

Pour déplacer l'origine vers le point central (50,50), utilisez une traduction négative. var rect = Rectangle { translateX: -50 translateY: -50 largeur: 100 hauteur: 100 }

Certaines formes ne sont pas basées sur l'origine en haut à gauche. Pour par exemple, Circle utilise centerX et centerY.

 2
Author: JimClarke, 2009-08-25 15:15:30