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.