当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 PointLight用法及代码示例


PointLight是JavaFX的一部分。 PointLight定义点光源。 PointLight是空间中的固定光源,可全方位辐射光。

该类的构造函数是:

  1. PointLight():创建一个新的pointlight实例
  2. PointLight(Color c):创建特定颜色的点光源的新实例

常用方法:


方法 说明
getColor() 返回灯光的颜色
isLightOn() 返回指示灯是否点亮
setColor(Color value) 设置灯光的颜色
setLightOn(boolean value) 设置属性lightOn的值。

以下示例程序旨在说明PointLight类:

  1. Java程序创建默认颜色的点光源:该程序创建一个以sphere命名的Sphere(半径作为参数传递)。创建一个名为Pointlight的PointLight,这是一个点光源,并沿所有方向辐射光。 Sphere将在场景内创建,而场景又将在舞台内托管。函数setTitle()用于为舞台提供标题。然后创建一个组,并附加了球体和点光源。该组将附加到场景。最后,调用show()方法以显示最终结果。将创建一个透视相机并将其添加到场景中以3D渲染圆柱体。
    // Java program to create a point light of default color 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.shape.DrawMode; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.scene.PointLight; 
    import javafx.scene.shape.Sphere; 
    import javafx.scene.control.*; 
    import javafx.stage.Stage; 
    import javafx.scene.Group; 
    import javafx.scene.PerspectiveCamera; 
    import javafx.scene.paint.Color; 
      
    public class pointlight_2 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
              
            // set title for the stage 
            stage.setTitle("creating sphere"); 
      
            // create a sphere 
            Sphere sphere = new Sphere(80.0f); 
      
            // create a point light 
            PointLight pointlight = new PointLight(); 
      
            // create a Group 
            Group group = new Group(sphere, pointlight); 
      
            // translate the sphere to a position 
            sphere.setTranslateX(100); 
            sphere.setTranslateY(100); 
      
            // translate point light 
            pointlight.setTranslateZ(-1000); 
            pointlight.setTranslateX(+1000); 
            pointlight.setTranslateY(+10); 
      
            // create a perspective camera 
            PerspectiveCamera camera = new PerspectiveCamera(false); 
            camera.setTranslateX(0); 
            camera.setTranslateY(0); 
            camera.setTranslateZ(0); 
      
            // create a scene 
            Scene scene = new Scene(group, 500, 300); 
      
            scene.setCamera(camera); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
          
        // Main Method 
        public static void main(String args[]) 
        { 
              
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  2. Java程序创建指定颜色(例如红色)的点光源:该程序创建一个以sphere命名的Sphere(半径作为参数传递)。将创建一个名为pointlight(的PointLight(),并将指定的颜色作为参数传递给点光源,该点光源是点光源并向各个方向辐射光。将在场景内创建Sphere,然后将其托管在舞台内。函数setTitle()用来为舞台提供标题,然后创建一个组,并附加球体和点光源,将该组附加到场景,最后,调用show()方法以显示最终结果,将创建一个透视相机。并添加到场景中以3D渲染圆柱体。
    // Java program to create a point light 
    // of specified color(eg RED) 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.shape.DrawMode; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.scene.PointLight; 
    import javafx.scene.shape.Sphere; 
    import javafx.scene.control.*; 
    import javafx.stage.Stage; 
    import javafx.scene.Group; 
    import javafx.scene.PerspectiveCamera; 
    import javafx.scene.paint.Color; 
      
    public class sphere_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
              
            // set title for the stage 
            stage.setTitle("creating sphere"); 
      
            // create a sphere 
            Sphere sphere = new Sphere(80.0f); 
      
            // create a point light 
            PointLight pointlight = new PointLight(Color.RED); 
      
            // create a Group 
            Group group = new Group(sphere, pointlight); 
      
            // translate the sphere to a position 
            sphere.setTranslateX(100); 
            sphere.setTranslateY(100); 
      
            // translate point light 
            pointlight.setTranslateZ(-1000); 
            pointlight.setTranslateX(+1000); 
            pointlight.setTranslateY(+10); 
      
            // create a perspective camera 
            PerspectiveCamera camera = new PerspectiveCamera(false); 
            camera.setTranslateX(0); 
            camera.setTranslateY(0); 
            camera.setTranslateZ(0); 
      
            // create a scene 
            Scene scene = new Scene(group, 500, 300); 
      
            scene.setCamera(camera); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
          
        // Main Method 
        public static void main(String args[]) 
        { 
              
            // launch the application 
            launch(args); 
        } 
    }

    输出:

注意:以上程序可能无法在在线IDE中运行。请使用离线编译器。

参考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/PointLight.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | PointLight with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。