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 Rotate utilise 3 doubles pour le pivot et un Point3D pour l'axe. Cela semble incohérent.
L'utilisation de Point3D est plus concise.
L'utilisation de Point3D est moins performante (par exemple, l'interpolation sur un Point3D crée beaucoup de ces objets).
Le contrôle d'un seul axe est plus difficile avec Point3D car il n'expose pas ses coordonnées en tant que propriétés.
L'utilisation de Point3D permet à l'utilisateur de définir une valeur nulle pour la propriété. Cela provoque déjà un NPE pour rotationAxis (je pense que null devrait plutôt être interprété comme la valeur par défaut).
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.
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
etRotateTransition
, qui agissent directement sur les propriétés deNode
, 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:Rotate
utilise 3 doubles pour le pivot et unPoint3D
pour l'axe. Cela semble incohérent.Point3D
est plus concise.Point3D
est moins performante (par exemple, l'interpolation sur unPoint3D
crée beaucoup de ces objets).Point3D
car il n'expose pas ses coordonnées en tant que propriétés.Point3D
permet à 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).