JavaFX - Tipos de arco de formas 2D

En JavaFX, puede dibujar tres tipos de arcos, a saber:

  • Open - Un arco que no está cerrado en absoluto se conoce como arco abierto.

  • Chord - Una cuerda es un tipo de arco que está cerrado por una línea recta.

  • Round - El arco de Ronda es un arco que se cierra uniendo el punto inicial y final al centro de la elipse.

Puede establecer el tipo de arco usando el método setType() pasando cualquiera de las siguientes propiedades: ArcType.OPEN, ArcType.CHORD, ArcType.Round.

Pasos para dibujar un arco

Para dibujar un arco en JavaFX, siga los pasos que se indican a continuación.

Paso 1: crear una clase

Cree una clase Java y herede la Application clase del paquete javafx.application e implementar el start() método de esta clase de la siguiente manera.

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

Paso 2: crear un arco

Puede crear un arco en JavaFX creando una instancia de la clase llamada Arc que pertenece a un paquete javafx.scene.shape. Puede crear una instancia de esta clase como se muestra a continuación.

//Creating an object of the class Arc         
Arc arc = new Arc();

Paso 3: Establecer propiedades en el arco

Especifique las coordenadas x, y del centro de la Elipse (de la cual este arco es parte). Estas coordenadas incluyen: radioX, radioY, ángulo inicial y longitud del arco usando sus respectivos métodos de establecimiento como se muestra en el siguiente bloque de código.

También puede establecer el tipo de arco (redondo, cuerda abierta) usando el setType() método.

//Setting the properties of the arc 
arc.setCenterX(300.0f); 
arc.setCenterY(150.0f); 
arc.setRadiusX(90.0f); 
arc.setRadiusY(90.0f); 
arc.setStartAngle(40.0f); 
arc.setLength(239.0f); 
arc.setType(ArcType.ROUND);

Paso 4: Establecer el tipo de arco

Puede establecer el tipo de arco usando el método setType() como se muestra en el siguiente bloque de código.

//Setting the type of the arc 
arc.setType(ArcType.ROUND);

Paso 5: crear un objeto de grupo

En el start() método crea un objeto de grupo instanciando la clase llamada Group, que pertenece al paquete javafx.scene.

Pase el objeto Arc (nodo) creado en el paso anterior como parámetro al constructor de la clase Group. Esto debe hacerse para agregarlo al grupo como se muestra a continuación:

Group root = new Group(arc);

Paso 6: creación de un objeto de escena

Cree una escena creando una instancia de la clase llamada Scene que pertenece al paquete javafx.scene. A esta clase, pase el objeto Grupo(root) creado en el paso anterior.

Además del objeto raíz, también puede pasar dos parámetros dobles que representan la altura y el ancho de la pantalla junto con el objeto de la clase Group de la siguiente manera.

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

Paso 7: Establecer el título del escenario

Puede establecer el título del escenario utilizando el setTitle() método del Stage class. losprimaryStage es un objeto Stage que se pasa al método de inicio de la clase de escena como parámetro.

Utilizando el primaryStage objeto, establezca el título de la escena como Sample Application como sigue.

primaryStage.setTitle("Sample Application");

Paso 8: agregar escena al escenario

Puede agregar un objeto de escena al escenario usando el método setScene() de la clase nombrada Stage. Agregue el objeto Scene preparado en los pasos anteriores utilizando este método de la siguiente manera.

primaryStage.setScene(scene);

Paso 9: Visualización del contenido del escenario

Muestre el contenido de la escena usando el método llamado show() del Stage clase de la siguiente manera.

primaryStage.show();

Paso 10: lanzamiento de la aplicación

Inicie la aplicación JavaFX llamando al método estático launch()del Application class del método principal de la siguiente manera.

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

Ejemplo

A continuación se muestra un programa que genera un arco. Guarde este código en un archivo con el nombreArcExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene;
import javafx.stage.Stage; 
import javafx.scene.shape.Arc;  
import javafx.scene.shape.ArcType; 
        
public class ArcExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing an arc 
      Arc arc = new Arc(); 
         
      //Setting the properties of the arc 
      arc.setCenterX(300.0f); 
      arc.setCenterY(150.0f); 
      arc.setRadiusX(90.0f); 
      arc.setRadiusY(90.0f); 
      arc.setStartAngle(40.0f); 
      arc.setLength(239.0f);  
      
      //Setting the type of the arc 
      arc.setType(ArcType.ROUND);         
         
      //Creating a Group object  
      Group root = new Group(arc); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Drawing an Arc"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage
      stage.show(); 
   }   
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac ArcExample.java 
java ArcExample

Al ejecutarse, el programa anterior genera una ventana JavaFX que muestra un arco como se muestra en la siguiente captura de pantalla.