JavaFX Light.Spot类

这种效果通过聚光灯照亮节点。聚光光源是其光线在所有方向上衰减的光源。光源的强度取决于光源与节点之间的距离。类javafx.scene.effect.Light.Spot表示这种效果。我们只需要实例化这个类就可以在节点上生成合适的光照。

1 Light.Spot类的属性

属性 描述 setter方法
pointsAtX 这是一个双重类型的属性。它表示光的方向向量的X坐标 setPointsAtX(double value)
pointsAtY 这是一个双重类型的属性。它表示光的方向向量的Y坐标 setPointsAtY(double value)
pointsAtZ 这是一个双重类型的属性。它表示光的方向矢量的 Z 坐标 setPointsAtZ(double value)
specularExponent 这是一个双重类型的属性。它代表镜面反射指数。这用于改变光源的焦点 setSpecularExponent(double value)

2 Light.Spot类的构造函数

该类包含下面描述的两个构造函数。

  1. Light.Spot():使用默认参数创建一个新实例。
  2. Light.Spot(double x, double y, double z, double specularexponent, color color):使用指定的参数创建一个新实例。

3 Light.Spot类的例子

package com.yiidian;

import javafx.application.Application;
import javafx.geometry.VPos;
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.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class LightingExample1 extends Application {
    @Override
    public void start(Stage stage) {
        Text text = new Text();
        text.setFont(Font.font(null, FontWeight.BOLD, 35));
        text.setX(20);
        text.setY(50);
        text.setTextOrigin(VPos.TOP);
        text.setText("欢迎访问一点教程网");
        text.setFill(Color.RED);
        Light.Spot light = new Light.Spot();
        light.setPointsAtX(0);
        light.setPointsAtY(0);
        light.setPointsAtZ(-50);
        light.setSpecularExponent(5);
        Lighting lighting = new Lighting();
        text.setEffect(lighting);
        Group root = new Group();
        root.getChildren().add(text);
        Scene scene = new Scene(root, 500, 200);
        stage.setTitle("一点教程网:light.Spot example");
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String args[]){
        launch(args);
    }
}  

输出结果为:

热门文章

优秀文章