Efectos JavaFX - Iluminación (fuente distante)

Al aplicar este efecto a un nodo, se simula una luz sobre él, como si fuera generada por una fuente de luz distante.

Distant Light Source- Una fuente que se encuentra a gran distancia del nodo. Aquí, la luz se atenúa en una dirección desde la fuente.

La clase nombrada Light.Distant del paquete javafx.scene.effectrepresenta la fuente de luz distante. Esta clase contiene dos propiedades, que incluyen:

  • azimuth - Esta propiedad es del tipo double y representa el acimut de la luz.

  • elevation - Esta propiedad es de tipo doble y representa la elevación de la luz.

Ejemplo

El siguiente programa es un ejemplo que demuestra el efecto de iluminación de JavaFX. En esto, la fuente de luz es una fuente distante. Aquí, estamos dibujando un texto "Bienvenido a Tutorialspoint" y un círculo en una escena.

A estos, estamos aplicando el efecto de iluminación, donde la luz es emitida por una fuente distante.

Guarde este código en un archivo con el nombre DistantLightingExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Light;
import javafx.scene.effect.Lighting; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class DistantLightingExample extends Application { 
   @Override 
   public void start(Stage stage) {  
      //Creating a Text object 
      Text text = new Text();       
      
      //Setting font to the text 
      text.setFont(Font.font(null, FontWeight.BOLD, 40));       
      
      //setting the position of the text 
      text.setX(60); 
      text.setY(50); 
      
      //Setting the text to be embedded. 
      text.setText("Welcome to Tutorialspoint");       
      
      //Setting the color of the text 
      text.setFill(Color.RED);   
       
      //Drawing a Circle 
      Circle circle = new Circle();         
      
      //Setting the center of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(160.0f); 
      
      //Setting the radius of the circle 
      circle.setRadius(100.0f); 
      
      //setting the fill color of the circle 
      circle.setFill(Color.CORNFLOWERBLUE);   
       
      //Instantiating the Light.Distant class
      Light.Distant light = new Light.Distant(); 
      
      //Setting the properties of the light source 
      light.setAzimuth(45.0); 
      light.setElevation(30.0);       
       
      //Instantiating the Lighting class  
      Lighting lighting = new Lighting(); 
      
      //Setting the source of the light 
      lighting.setLight(light);  
      
      //Applying the lighting effect to the text 
      text.setEffect(lighting);      
      
      //Applying the lighting effect to the circle 
      circle.setEffect(lighting); 
         
      //Creating a Group object  
      Group root = new Group(text,circle);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Distant light effect example"); 
         
      //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 DistantLightingExample.java 
java DistantLightingExample

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.