Efecto de iluminación - (luz puntual como fuente)

Al aplicar este efecto a un nodo, se simula una luz sobre él, como si la generara un foco.

Spot Light Source- La luz de esta fuente se atenúa en todas direcciones. La intensidad de la luz depende de la distancia del objeto a la fuente.

La clase nombrada Light.Spot del paquete javafx.scene.effectrepresenta la fuente de luz distante. Esta clase contiene cuatro propiedades, que son:

  • pointsAtX - Esta propiedad es del tipo double y representa la coordenada x de la dirección del vector para esta luz.

  • pointsAtY - Esta propiedad es del tipo double y representa la coordenada y de la dirección del vector para esta luz.

  • pointsAtZ - Esta propiedad es del tipo double y representa la coordenada z de la dirección del vector para esta luz.

  • specularExponent - Esta propiedad es del tipo double y representa el exponente especular, que controla el foco de esta fuente de luz.

Ejemplo

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

A estos les aplicamos el efecto de iluminación, donde la luz es emitida por un foco.

Guarde este código en un archivo con el nombre SpotLightExample.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 SpotLightExample 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 centre 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.Spot class 
      Light.Spot light = new Light.Spot(); 
      
      //Setting the color of the light 
      light.setColor(Color.GRAY); 
      
      //setting the position of the light 
      light.setX(70); 
      light.setY(55); 
      light.setZ(45); 
       
      //Instantiating the Lighting class  
      Lighting lighting = new Lighting(); 
      
      //Setting the light source 
      lighting.setLight(light);  
      
      //Applying lighting effect to the text 
      text.setEffect(lighting);      
      
      //Applying 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("Spot 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 SpotLightExample.java 
java SpotLightExample

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