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
广告