-
Notifications
You must be signed in to change notification settings - Fork 0
Description
JDK-8234712 #53 : Add pivot properties for scale and rotation in Node, ScaleTransition and RotateTransition
Définir un centre d'homothétie pour le zoom à partir du centre des points de contact sur l'écran ou de la position du pointeur de la souris.
- Une partie du travail dépend du rapport de Bug cité ci-dessus.
- La seconde partie de ce travail doit définir le centre des points de contact des doigt sur l'écran.
La description
Les propriétés de rotation et de mise à l'échelle du nœud ne permettent pas d'utiliser un pivot non central comme cela est autorisé dans les transformations Rotation et Mise à l'échelle. Cela oblige l'utilisateur à définir une telle transformation et à l'ajouter à la liste de transformation du nœud au lieu des propriétés intégrées pratiques.
Par conséquent, ScaleTransition et RotateTransition, qui agissent directement sur les propriétés de Node, ne peuvent pas non plus définir un pivot. La solution de contournement consiste à nouveau à animer les propriétés des transformations une fois qu'elles ont été ajoutées à la liste des transformations.
L'ajout de ces propriétés de pivot à Node et aux transitions serait très pratique.
Les pivots peuvent être représentés soit par un Point3D, soit par un double pour chaque axe (pivotX, pivotY, pivotZ). Points à considérer:
- La transformation d'échelle utilise 3 doubles chacun pour la quantité d'échelle et le pivot. La transformation
Rotateutilise 3 doubles pour le pivot et unPoint3Dpour l'axe. Cela semble incohérent. - L'utilisation de
Point3Dest plus concise. - L'utilisation de
Point3Dest moins performante (par exemple, l'interpolation sur unPoint3Dcrée beaucoup de ces objets). - Le contrôle d'un seul axe est plus difficile avec
Point3Dcar il n'expose pas ses coordonnées en tant que propriétés. - L'utilisation de
Point3Dpermet à l'utilisateur de définir une valeur nulle pour la propriété. Cela provoque déjà un NPE pourrotationAxis(je pense que null devrait plutôt être interprété comme la valeur par défaut).