JavaFX - Ellipse de formes 2D

Une Ellipse est définie par deux points, chacun appelé un focus. Si un point quelconque de l'ellipse est pris, la somme des distances aux points AF est constante. La taille de l'ellipse est déterminée par la somme de ces deux distances. La somme de ces distances est égale à la longueur du grand axe (le plus grand diamètre de l'ellipse). Un cercle est, en fait, un cas particulier d'ellipse.

Une Ellipse a trois propriétés qui sont -

  • Centre- Un point à l'intérieur de l'ellipse qui est le milieu du segment de ligne reliant les deux foyers. L'intersection des axes majeurs et mineurs.

  • Major axis - Le plus long diamètre d'une ellipse.

  • Minor axis - Le plus petit diamètre d'une ellipse.

Dans JavaFX, une Ellipse est représentée par une classe nommée Ellipse. Cette classe appartient au packagejavafx.scene.shape.

En instanciant cette classe, vous pouvez créer un nœud Ellipse dans JavaFX.

Cette classe a 4 propriétés du double type de données à savoir -

  • centerX - La coordonnée x du centre de l'ellipse en pixels.

  • centerY - La coordonnée y du centre de l'ellipse en pixels.

  • radiusX - La largeur des pixels de l'ellipse.

  • radiusY - La hauteur des pixels de l'ellipse.

Pour dessiner une ellipse, vous devez passer des valeurs à ces propriétés, soit en les passant au constructeur de cette classe, dans le même ordre, au moment de l'instanciation, comme indiqué ci-dessous -

Circle circle = new Circle(centerX, centerY, radiusX, radiusY);

Ou, en utilisant leurs méthodes de setter respectives comme suit -

setCenterX(value); 
setCenterY(value);
setRadiusX(value); 
setRadiusY(value);

Étapes pour dessiner une ellipse

Suivez les étapes ci-dessous pour dessiner une Ellipse dans JavaFX.

Étape 1: Créer une classe

Créez une classe Java et héritez du Application classe du package javafx.application et mettre en œuvre le start() méthode de cette classe comme indiqué ci-dessous.

public class ClassName extends Application { 
   @Override     
   public void start(Stage primaryStage) throws Exception {     
   }    
}

Étape 2: création d'une ellipse

Vous pouvez créer une Ellipse dans JavaFX en instanciant la classe nommée Ellipse qui appartient à un package javafx.scene.shape. Vous pouvez instancier cette classe comme suit.

//Creating an Ellipse object         
Ellipse ellipse = new Ellipse();

Étape 3: Définition des propriétés de l'ellipse

Spécifiez les coordonnées x, y du centre de l'ellipse → la largeur de l'ellipse le long de l'axe x et de l'axe y (axes majeurs et mineurs), du cercle en définissant les propriétés X, Y, RadiusX et RadiusY.

Cela peut être fait en utilisant leurs méthodes de définition respectives, comme indiqué dans le bloc de code suivant.

ellipse.setCenterX(300.0f); 
ellipse.setCenterY(150.0f); 
ellipse.setRadiusX(150.0f); 
ellipse.setRadiusY(75.0f);

Étape 4: Création d'un objet de groupe

dans le start() , créez un objet de groupe en instanciant la classe nommée Group, qui appartient au package javafx.scene.

Passez l'objet Ellipse (nœud) créé à l'étape précédente en tant que paramètre au constructeur de la classe Group. Cela devrait être fait afin de l'ajouter au groupe comme indiqué dans le bloc de code suivant -

Group root = new Group(ellipse);

Étape 5: Création d'un objet de scène

Créez une scène en instanciant la classe nommée Scene qui appartient au package javafx.scene. À cette classe, passez l'objet Group (root) créé à l'étape précédente.

En plus de l'objet racine, vous pouvez également transmettre deux doubles paramètres représentant la hauteur et la largeur de l'écran avec l'objet de la classe Group comme suit.

Scene scene = new Scene(group ,600, 300);

Étape 6: Définition du titre de la scène

Vous pouvez définir le titre de la scène à l'aide du setTitle() méthode de la Stageclasse. leprimaryStage est un objet Stage qui est passé à la méthode start de la classe Scene en tant que paramètre.

En utilisant le primaryStage objet, définissez le titre de la scène comme Sample Application comme suit.

primaryStage.setTitle("Sample Application");

Étape 7: Ajouter une scène à la scène

Vous pouvez ajouter un objet Scene à la scène en utilisant la méthode setScene() de la classe nommée Stage. Ajoutez l'objet Scene préparé dans le précédentstep en utilisant cette méthode comme suit.

primaryStage.setScene(scene);

Étape 8: Affichage du contenu de la scène

Affichez le contenu de la scène en utilisant la méthode nommée show() du Stage classe comme suit.

primaryStage.show();

Étape 9: Lancement de l'application

Lancez l'application JavaFX en appelant la méthode statique launch() du Application classe de la méthode principale comme suit.

public static void main(String args[]){   
   launch(args);      
}

Exemple

Voici un programme qui génère une Ellipse à l'aide de JavaFX. Enregistrez ce code dans un fichier avec le nomEllipseExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.Ellipse; 
         
public class EllipseExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing an ellipse 
      Ellipse ellipse = new Ellipse(); 
         
      //Setting the properties of the ellipse 
      ellipse.setCenterX(300.0f); 
      ellipse.setCenterY(150.0f); 
      ellipse.setRadiusX(150.0f); 
      ellipse.setRadiusY(75.0f); 
         
      //Creating a Group object  
      Group root = new Group(ellipse); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300); 
      
      //Setting title to the Stage 
      stage.setTitle("Drawing an Ellipse"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show();
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac EllipseExample.java 
java EllipseExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant une ellipse comme illustré ci-dessous.