Effets JavaFX - Éclairage (source distante)

En appliquant cet effet à un nœud, une lumière est simulée dessus, comme si elle était générée par une source lumineuse distante.

Distant Light Source- Une source éloignée du nœud. Ici, la lumière est atténuée dans une direction à partir de la source.

La classe nommée Light.Distant du forfait javafx.scene.effectreprésente la source lumineuse distante. Cette classe contient deux propriétés, qui incluent -

  • azimuth - Cette propriété est du type double et représente l'azimut de la lumière.

  • elevation - Cette propriété est du type double et représente l'élévation de la lumière.

Exemple

Le programme suivant est un exemple illustrant l'effet d'éclairage de JavaFX. En cela, la source de lumière est une source distante. Ici, nous dessinons un texte «Welcome to Tutorialspoint» et un cercle dans une scène.

À ceux-ci, nous appliquons l'effet d'éclairage, où la lumière est émise par une source distante.

Enregistrez ce code dans un fichier avec le nom 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); 
   }
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac DistantLightingExample.java 
java DistantLightingExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX comme indiqué ci-dessous.