Effetto luminoso - (Luce puntiforme come sorgente)

Applicando questo effetto a un nodo, su di esso viene simulata una luce, come se fosse generata da una sorgente di luce puntiforme.

Point Light Source - La luce proveniente da questa sorgente attenua in tutte le direzioni da un unico punto l'intensità della luce dipende dalla distanza dell'oggetto dalla sorgente.

La classe denominata Point.Spot del pacchetto javafx.scene.effectrappresenta la sorgente di luce puntiforme. Questa classe contiene quattro proprietà, che includono:

  • x - Questa proprietà è di tipo double e rappresenta la coordinata x della posizione della luce.

  • y - Questa proprietà è del tipo double e rappresenta la coordinata y della posizione della luce.

  • z - Questa proprietà è del tipo double e rappresenta la coordinata z della posizione della luce.

Esempio

Il seguente programma è un esempio che dimostra l'effetto luminoso di JavaFX. Qui stiamo disegnando un testo "Benvenuti in Tutorialspoint" e un cerchio in una scena.

A questi stiamo applicando l'effetto luminoso, dove la luce viene emessa da una sorgente di luce puntiforme.

Salva questo codice in un file con il nome PointLightExample.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 PointLightExample 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.Point class 
      Light.Point light = new Light.Point(); 
      
      //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 
      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("Point 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);
   } 
}

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

javac PointLightExample.java 
java PointLightExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX come mostrato di seguito.