Javafx 简明教程
JavaFX - Light.Distant Effect
将远光效果应用于某个节点时,就会模拟它上面的光,就好像它是由远处光源生成的一样。
On applying the light distant effect to a node, a light is simulated on it, as if it is being generated by a distant light source.
Distant Light Source − 与节点距离较远的某个光源。在此,光从光源向一个方向衰减。
Distant Light Source − A source which is at a far distance from the node. In here, the light is attenuated in one direction from the source.

包 javafx.scene.effect 中名为 Light.Distant 的类表示远光源。该类包含两个属性,包括 −
The class named Light.Distant of the package javafx.scene.effect represents the distant light source. This class contains two properties, which include −
-
azimuth − This property is of the type double and it represents the azimuth of the light.
-
elevation − This property is of the type double and it represents the elevation of the light.
Example
以下程序是一个展示 JavaFX 光照效果的示例。在此示例中,光源是远光源。下面我们正在场景中绘制文本“Welcome to Tutorialspoint”和一个圆。
The following program is an example demonstrating the lighting effect of JavaFX. In this, the source of light is a distant source. Here, we are drawing a text “Welcome to Tutorialspoint” and a circle in a scene.
我们将对其应用光照效果,其中光由远光源发出。
To these, we are applying the lighting effect, where the light is being emitted by a distant source.
将此代码另存为 DistantLightingExample.java 。
Save this code in a file with the name 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);
}
}
使用以下命令,从命令提示符编译并执行已保存的 java 文件。
Compile and execute the saved java file from the command prompt using the following commands.
javac --module-path %PATH_TO_FX% --add-modules javafx.controls DistantLightingExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls DistantLightingExample