當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。