JavaFX - 平滑屬性



平滑是在統計學或影像處理中更常見的過程。它被定義為一個過程,其中座標或資料點與其系列中相鄰的點(例如時間序列或影像)進行平均。這會導致模糊平滑資料中尖銳邊緣的效果。平滑有時被稱為濾波,因為平滑具有抑制高頻訊號和增強低頻訊號的效果。

平滑過程通常用於細化影像或資料集。在 JavaFX 中,在 2D 形狀上使用此屬性將微調邊緣。

平滑屬性

JavaFX 中的平滑屬性用於使某個 2D 形狀的邊緣平滑。此屬性的型別為布林值。如果此值為真,則形狀的邊緣將是平滑的。

您可以使用以下方法setSmooth()設定此屬性的值:-

path.setSmooth(false);

預設情況下,平滑值為 true。以下是具有兩種平滑值的三角形的圖表。

smooth

示例

在以下示例中,我們將嘗試使 2D 形狀(例如圓形)的邊緣平滑。將此檔案儲存為SmoothExample.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.Circle;
import javafx.scene.shape.StrokeLineCap;
import javafx.scene.paint.Color;
import javafx.stage.Stage;  

public class SmoothExample extends Application { 
   @Override 
   public void start(Stage stage) {        
      //Creating a Circle 
      Circle circle = new Circle(150.0, 150.0, 100.0);  

      circle.setFill(Color.BLUE);
      circle.setStroke(Color.BLACK);
      circle.setStrokeWidth(5.0);
      circle.setSmooth(true);

      //Creating a Group object  
      Group root = new Group(circle);

      //Creating a scene object 
      Scene scene = new Scene(root, 300, 300);  

      //Setting title to the Stage 
      stage.setTitle("Drawing a Circle"); 

      //Adding scene to the stage 
      stage.setScene(scene); 

      //Displaying the contents of the stage 
      stage.show(); 
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令從命令提示符編譯並執行儲存的 java 檔案。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls SmoothExample.java 
java --module-path %PATH_TO_FX% --add-modules javafx.controls SmoothExample

輸出

執行上述程式後,將生成一個 JavaFX 視窗,顯示一個具有平滑描邊的圓形,如下所示。

Smooth Output
廣告