IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
logo

FAQ JavaFXConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 507, derni�re mise � jour : 2 novembre 2016  Ajouter une question

 

Cette FAQ a �t� r�alis�e � partir des questions fr�quemment pos�es sur le forum JavaFX de http://java.developpez.com ainsi que l'exp�rience personnelle des auteurs.

Nous tenons � souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne pr�tend pas non plus �tre compl�te. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant r�dacteur, lisez ceci.

Sur ce, nous vous souhaitons une bonne lecture.

SommaireSceneGraphTransformations (5)
pr�c�dent sommaire suivant
 

Nous avons vu que nous pouvons d�j� transformer n'importe quel n�ud via des propri�t�s intrins�ques telles que translateX, rotate, scaleX, etc. Cependant, il existe un autre moyen de transformer un n�ud : les transformations. Chaque n�ud poss�de une liste observable de transformations transforms() qui lui sont appliqu�es ; cette liste est accessible via sa m�thode getTransforms().

Les transformations sont disponibles dans le package javafx.scene.transform. Actuellement, seule une poign�e de transformations affines sont disponibles :

  • Affine - une transformation affine g�n�rique ;
  • Rotate - une rotation qui permet de sp�cifier l'angle, l'axe et le centre de la rotation ;
  • Scale - une mise � l��chelle qui permet de sp�cifier le point de pivot ;
  • Shear - une inclinaison suivant les axes X et/ou Y et qui permet de sp�cifier le point de pivot ;
  • Translate - une translation suivant les axes X, Y et/ou Z.


Note : une transformation affine est une transformation qui conserve le parall�lisme des droites.

Ces transformations sont plus g�n�riques que celles accessibles via les propri�t�s d'un n�ud. Par exemple, ici on peut sp�cifier le centre de la transformation Rotate, ce qui n'est pas le cas de la propri�t� rotate qui utilise toujours le centre de la boite englobante de l'objet comme centre de rotation.

Ces transformations s'appliquent sur un n�ud dans l'ordre de la liste qui les contient. De plus, elles s'appliquent sur le noeud AVANT toute valeur plac�e dans ses propri�t�s telles que translateX, rotate, scaleX, etc.

Mis � jour le 9 septembre 2014 bouye

Il faut ajouter un objet de type javafx.scene.transform.Translate dans la liste des transformations du n�ud.

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Rectangle rectangle = new Rectangle(0, 0, 150, 100); 
        rectangle.setFill(Color.RED); 
        final Translate translate = new Translate(100, 100); 
        rectangle.getTransforms().add(translate); 
        final Pane root = new Pane(); 
        root.getChildren().setAll(rectangle); 
        final Scene scene = new Scene(root, 350, 300); 
        primaryStage.setTitle("Test de transformation de translation"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ici, le rectangle gris en pointill� indique la position d'origine du rectangle rouge :



Ici, nous avons d�plac� notre rectangle de 100 pixels vers la droite sur l'axe X et de 100 pixels vers la droite sur l'axe Y.

Comme il s'agit d'une transformation, ces modifications et changements de rep�res sont appliqu�s avant ceux sp�cifi�s dans les propri�t�s translateX, rotate, scaleX, etc.

Mis � jour le 9 septembre 2014 bouye

Il faut ajouter un objet de type javafx.scene.transform.Rotate dans la liste des transformations du n�ud.

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Rectangle rectangle = new Rectangle(100, 100, 150, 100);         
        rectangle.setFill(Color.RED); 
        final Rotate rotate = new Rotate(10); 
        rectangle.getTransforms().add(rotate); 
        final Pane root = new Pane(); 
        root.getChildren().setAll(rectangle);         
        final Scene scene = new Scene(root, 350, 300);         
        primaryStage.setTitle("Test de transformation de rotation"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    }     
}

Ici, le rectangle gris en pointill� indique la position d'origine du rectangle rouge :



Ici, nous avons fait tourner notre rectangle rouge de 10 degr�s. Cependant, le centre de la rotation n'est plus d�sormais le centre de la boite englobante du rectangle, mais l'origine de la sc�ne, le point (0,0).

Comme il s'agit d'une transformation, ces modifications et changements de rep�res sont appliqu�s avant ceux sp�cifi�s dans les propri�t�s translateX, rotate, scaleX, etc.

Mis � jour le 9 septembre 2014 bouye

Il faut ajouter un objet de type javafx.scene.transform.Scale dans la liste des transformations du n�ud.

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Rectangle rectangle = new Rectangle(100, 100, 150, 100); 
        rectangle.setFill(Color.RED); 
        final Scale scale = new Scale(0.5, 0.5); 
        rectangle.getTransforms().add(scale); 
        final Pane root = new Pane(); 
        root.getChildren().setAll(rectangle); 
        final Scene scene = new Scene(root, 350, 300); 
        primaryStage.setTitle("Test de transformation de mise � l'�chelle"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ici, le rectangle gris en pointill� indique la position d'origine du rectangle rouge :



Ici, nous avons r�duit l��chelle de notre rectangle rouge de 50 % sur l'axe X et de 50 % sur l'axe Y. Cependant, le point de pivot de la mise � l��chelle n'est plus d�sormais le centre de la boite englobante du rectangle, mais l'origine de la sc�ne, le point (0,0).

Comme il s'agit d'une transformation, ces modifications et changements de rep�res sont appliqu�s avant ceux sp�cifi�s dans les propri�t�s translateX, rotate, scaleX, etc.

Mis � jour le 9 septembre 2014 bouye

Il faut ajouter un objet de type javafx.scene.transform.Shear dans la liste des transformations du n�ud.

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Rectangle rectangle = new Rectangle(100, 100, 150, 100); 
        rectangle.setFill(Color.RED); 
        final Shear shear = new Shear(0.5, 0.5); 
        shear.setPivotX(100 + 150 / 2); 
        shear.setPivotY(100 + 100 / 2); 
        rectangle.getTransforms().add(shear); 
        final Pane root = new Pane(); 
        root.getChildren().setAll(rectangle); 
        final Scene scene = new Scene(root, 350, 300); 
        primaryStage.setTitle("Test de transformation d'inclinaison"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ici, le rectangle gris en pointill� indique la position d'origine du rectangle rouge :



Ici, nous avons appliqu� sur notre rectangle rouge un modificateur de d�placement de 0.5 sur l'axe X et sur l'axe Y. De plus, nous avons plac� le point de pivot au centre de la boite englobante de notre rectangle.

Comme il s'agit d'une transformation, ces modifications et changements de rep�res sont appliqu�s avant ceux sp�cifi�s dans les propri�t�s translateX, rotate, scaleX, etc.

Mis � jour le 9 septembre 2014 bouye

Proposer une nouvelle r�ponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plut�t sur le forum de la rubrique pour �a


R�ponse � la question

Liens sous la question
pr�c�dent sommaire suivant
 

Les sources pr�sent�es sur cette page sont libres de droits et vous pouvez les utiliser � votre convenance. Par contre, la page de pr�sentation constitue une �uvre intellectuelle prot�g�e par les droits d'auteur. Copyright � 2025 Developpez Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'� trois ans de prison et jusqu'� 300 000 � de dommages et int�r�ts.