📜  JavaFX | Light.Point 类(1)

📅  最后修改于: 2023-12-03 15:01:36.072000             🧑  作者: Mango

JavaFX | Light.Point 类介绍

JavaFX 中的 Light.Point 类是 PointLight 类的子类,它表示一个点光源,可以通过它来清晰地照亮场景中的一些关键点,比如角落、重要物体等等。当把光源放置到 3D 场景中后,可以使用 Light.Point 类来调整光源的参数,例如光强、光照颜色等等。

Light.Point 类构造方法

Light.Point 类提供了两个构造方法:

public Light.Point();
public Light.Point(Color color);

第一个构造方法创建一个默认颜色为白色的 Light.Point 对象,而第二个构造方法允许你指定颜色参数。

Light.Point 类可用的属性和方法

Light.Point 类有一些可用的属性和方法,这些属性和方法可以用来精细地控制点光源的各种参数。下面是一些核心属性和方法介绍:

color
public final ObjectProperty<Color> colorProperty()

光源颜色属性,用于获取或设置光源颜色。

intensity
public final DoubleProperty intensityProperty()

光源强度属性,用于获取或设置光源的强度。

x, y, z
public final DoubleProperty xProperty()
public final DoubleProperty yProperty()
public final DoubleProperty zProperty()

光源位置属性,用于获取或设置光源的位置。

getScope()
public final double getScope()

获取 Light.Point 光源的范围。

使用示例
Light.Point lightPoint = new Light.Point();
lightPoint.setX(-100);
lightPoint.setY(100);
lightPoint.setZ(-100);
lightPoint.setColor(Color.web("#ffffff"));
lightPoint.setIntensity(2.0);

Group group = new Group();
Sphere sphere = new Sphere(25);

PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.web("#0076a3"));
material.setSpecularColor(Color.web("#66c2ff"));
sphere.setMaterial(material);
group.getChildren().add(sphere);

Group root = new Group();
root.getChildren().add(group);
root.getChildren().add(lightPoint);

Scene scene = new Scene(root, 500, 500, true, SceneAntialiasing.BALANCED);
scene.setFill(Color.web("#383838"));

Stage stage = new Stage();
stage.setScene(scene);
stage.show();

在这个例子中,我们创建了一个 Light.Point 对象,并使用 setX()、setY() 和 setZ() 方法来设置它的位置参数。然后我们通过 setColor() 方法来设置光源的颜色,setIntensity() 方法来设置光源强度。

接着我们创建了一个 Sphere 对象,并使用 setMaterial() 方法来给它设置了材质。在新建的 Group 中,我们添加了这个 Sphere 对象,并将 Group 对象添加到场景的 root Group 中,同时将 Light.Point 光源添加到 root Group 中。

最后我们创建了场景,将 root Group 分配到场景中,然后创建了一个 Stage 并将场景分配给它进行显示。

总结

在本篇文章中,我们对 JavaFX 中的 Light.Point 类进行了详细介绍。这个类可以用于设置点光源,控制光源的颜色、位置和强度等参数。我们还提供了一个使用示例,希望这篇文章可以帮助读者更好地理解 Light.Point 类的作用。