Skip to content

Centre et Axe de transformation. #2

@scientificware

Description

@scientificware

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:

  1. 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.
  2. L'utilisation de Point3D est plus concise.
  3. L'utilisation de Point3D est moins performante (par exemple, l'interpolation sur un Point3D crée beaucoup de ces objets).
  4. 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.
  5. 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).

Metadata

Metadata

Labels

EnhancementNew feature or requestWIPWork In Progress

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions