JavaFX - Ellisse di forme 2D

Un'ellisse è definita da due punti, ciascuno chiamato focus. Se viene preso un punto qualsiasi dell'ellisse, la somma delle distanze dai punti focali è costante. La dimensione dell'ellisse è determinata dalla somma di queste due distanze. La somma di queste distanze è uguale alla lunghezza dell'asse maggiore (il diametro più lungo dell'ellisse). Un cerchio è, infatti, un caso speciale di un'ellisse.

Un'ellisse ha tre proprietà che sono -

  • Centre- Un punto all'interno dell'ellisse che è il punto medio del segmento di linea che collega i due fuochi. L'intersezione degli assi maggiore e minore.

  • Major axis - Il diametro più lungo di un'ellisse.

  • Minor axis - Il diametro più corto di un'ellisse.

In JavaFX, un'ellisse è rappresentata da una classe denominata Ellipse. Questa classe appartiene al pacchettojavafx.scene.shape.

Istanziando questa classe, puoi creare un nodo Ellipse in JavaFX.

Questa classe ha 4 proprietà del doppio tipo di dati, ovvero:

  • centerX - La coordinata x del centro dell'ellisse in pixel.

  • centerY - La coordinata y del centro dell'ellisse in pixel.

  • radiusX - La larghezza dei pixel dell'ellisse.

  • radiusY - L'altezza dei pixel dell'ellisse.

Per disegnare un'ellisse, è necessario passare valori a queste proprietà, passandoli al costruttore di questa classe, nello stesso ordine, al momento dell'istanziazione, come mostrato di seguito -

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

Oppure, utilizzando i rispettivi metodi setter come segue:

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

Passaggi per disegnare l'ellisse

Seguire i passaggi indicati di seguito per disegnare un'ellisse in JavaFX.

Passaggio 1: creazione di una classe

Crea una classe Java ed eredita il file Application classe del pacchetto javafx.application e implementare il start() metodo di questa classe come mostrato di seguito.

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

Passaggio 2: creazione di un'ellisse

È possibile creare un'ellisse in JavaFX istanziando la classe denominata Ellipse che appartiene a un pacchetto javafx.scene.shape. È possibile creare un'istanza di questa classe come segue.

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

Passaggio 3: impostazione delle proprietà sull'ellisse

Specificare le coordinate x, y del centro dell'ellisse → la larghezza dell'ellisse lungo gli assi xe y (assi maggiore e minore), del cerchio impostando le proprietà X, Y, RadiusX e RadiusY.

Questo può essere fatto usando i rispettivi metodi setter come mostrato nel seguente blocco di codice.

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

Passaggio 4: creazione di un oggetto gruppo

Nel start() metodo, creare un oggetto gruppo istanziando la classe denominata Group, che appartiene al pacchetto javafx.scene.

Passare l'oggetto Ellipse (nodo) creato nel passaggio precedente come parametro al costruttore della classe Group. Questo dovrebbe essere fatto per aggiungerlo al gruppo come mostrato nel seguente blocco di codice:

Group root = new Group(ellipse);

Passaggio 5: creazione di un oggetto scena

Crea una scena istanziando la classe denominata Scene che appartiene al pacchetto javafx.scene. A questa classe passa l'oggetto Group (root) creato nel passaggio precedente.

Oltre all'oggetto radice, puoi anche passare due parametri doppi che rappresentano l'altezza e la larghezza dello schermo insieme all'oggetto della classe Group come segue.

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

Passaggio 6: impostazione del titolo dello stage

Puoi impostare il titolo dello stage utilizzando il setTitle() metodo del Stageclasse. IlprimaryStage è un oggetto Stage che viene passato al metodo di avvio della classe scene come parametro.

Usando il primaryStage oggetto, imposta il titolo della scena come Sample Application come segue.

primaryStage.setTitle("Sample Application");

Passaggio 7: aggiunta di scene allo stage

Puoi aggiungere un oggetto Scene allo stage utilizzando il metodo setScene() della classe denominata Stage. Aggiungi l'oggetto Scene preparato in precedenzastep utilizzando questo metodo come segue.

primaryStage.setScene(scene);

Passaggio 8: visualizzazione dei contenuti dello stage

Visualizza il contenuto della scena utilizzando il metodo denominato show() del Stage classe come segue.

primaryStage.show();

Passaggio 9: avvio dell'applicazione

Avvia l'applicazione JavaFX chiamando il metodo statico launch() del Application class dal metodo principale come segue.

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

Esempio

Di seguito è riportato un programma che genera un'ellisse utilizzando JavaFX. Salva questo codice in un file con il nomeEllipseExample.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); 
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac EllipseExample.java 
java EllipseExample

All'esecuzione, il programma precedente genera una finestra JavaFX che mostra un'ellisse come mostrato di seguito.