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


JavaFX 類 Light.Spot用法及代碼示例


Light.Spot類是JavaFX的一部分。 Light.Spot類用於創建具有可配置的3D空間中的光,焦點和顏色的方向向量值的 spotlight 。 Light.Spot類繼承了Light.Point類。

該類的構造函數:

  1. Spot():創建具有默認值的 spotlight
  2. Spot(double x, double y, double z, double s, Color c):創建具有x,y,z,specularExponent和光色的指定值的 spotlight

常用方法:


方法 說明
getPointsAtX() 返回光的方向向量的x坐標。
getPointsAtY() 返回光的方向向量的y坐標。
getPointsAtZ() 返回光的方向向量的z坐標。
getSpecularExponent() 返回specularExponent的值。
setPointsAtX(double v) 設置光的方向向量的x坐標值。
setPointsAtY(double v) 設置光的方向向量的y坐標值。
setPointsAtZ(double v) 設置光的方向向量的z坐標值。
setSpecularExponent(double v) 設置specularExponent的值。

以下示例程序旨在說明Light.Spot類的用法:

  1. Java程序創建 spotlight 並將其添加到矩形中:在此程序中,我們將創建一個具有指定高度和寬度的矩形矩形。我們還將創建一個名為light的Light.Spot對象。我們將使用setX(),setY()和setZ()函數設置x,y,z值。現在創建一個照明對象,並使用setLight()函數將該照明對象添加到照明中。我們將Lighting效果設置為Rectangle並將其添加到場景中,然後將場景添加到舞台上並調用show函數以顯示結果。
    // Java Program to create a Spot light 
    // and add it to a rectangle 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.shape.Rectangle; 
    import javafx.scene.control.*; 
    import javafx.stage.Stage; 
    import javafx.scene.Group; 
    import javafx.scene.effect.Light.*; 
    import javafx.scene.effect.*; 
    import javafx.scene.paint.Color; 
      
    public class Spot_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            // set title for the stage 
            stage.setTitle("creating Light.Spot"); 
      
            // create Spot Light object 
            Light.Spot light = new Light.Spot(); 
      
            // set coordinates 
            light.setX(100); 
            light.setY(100); 
            light.setZ(100); 
      
            // create a lighting 
            Lighting lighting = new Lighting(); 
      
            // set Light of lighting 
            lighting.setLight(light); 
      
            // create a rectangle 
            Rectangle rect = new Rectangle(250, 250); 
      
            // set fill 
            rect.setFill(Color.WHITE); 
      
            // set effect 
            rect.setEffect(lighting); 
      
            // create a Group 
            Group group = new Group(rect); 
      
            // create a scene 
            Scene scene = new Scene(group, 500, 300); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    輸出:

  2. Java程序創建一個Spotlight並將其添加到一個矩形中並設置光的方向向量和光的顏色的坐標:在此程序中,我們將創建一個具有指定高度和寬度的矩形矩形。我們還將創建一個名為light的Light.Spot對象。我們將使用setX(),setY()和setZ()函數設置x,y,z值。使用setPointsAtX(),setPointsAtY()和setPointsAtX()設置光的方向矢量的坐標,並使用setColor()函數指定顏色的值。現在創建一個照明對象,並使用setLight()函數將照明對象添加到照明中。我們將Lighting效果設置為Rectangle並將其添加到場景中,然後將場景添加到舞台上並調用show函數以顯示結果。
    // Java Program to create a Spot light 
    // and add it to a rectangle and set the 
    // coordinates of direction vector of  
    // light and color of light 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.shape.Rectangle; 
    import javafx.scene.control.*; 
    import javafx.stage.Stage; 
    import javafx.scene.Group; 
    import javafx.scene.effect.Light.*; 
    import javafx.scene.effect.*; 
    import javafx.scene.paint.Color; 
      
    public class Spot_2 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            // set title for the stage 
            stage.setTitle("creating Light.Spot"); 
      
            // create Spot Light object 
            Light.Spot light = new Light.Spot(); 
      
            // set coordinate of direction 
            // the vector of this light 
            light.setPointsAtX(0); 
            light.setPointsAtY(0); 
            light.setPointsAtZ(-60); 
      
            // set specular exponent 
            light.setSpecularExponent(2); 
      
            // set color of light 
            light.setColor(Color.RED); 
      
            // set coordinates 
            light.setX(100); 
            light.setY(100); 
            light.setZ(200); 
      
            // create a lighting 
            Lighting lighting = new Lighting(); 
      
            // set Light of lighting 
            lighting.setLight(light); 
      
            // create a rectangle 
            Rectangle rect = new Rectangle(250, 250); 
      
            // set fill 
            rect.setFill(Color.WHITE); 
      
            // set effect 
            rect.setEffect(lighting); 
      
            // create a Group 
            Group group = new Group(rect); 
      
            // create a scene 
            Scene scene = new Scene(group, 500, 300); 
      
            // 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/effect/Light.Spot.html



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | Light.Spot Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。