Javafx 简明教程

JavaFX - MotionBlur Effect

就像高斯效果一样,运动模糊是 JavaFX 中使节点变模糊的效果。它还使用高斯卷积核来产生模糊效果。高斯效果和运动模糊之间的唯一区别是,高斯卷积核与指定角度一起使用。

Just like Gaussian Effect, Motion Blur is an effect to blur the nodes in JavaFX. It also uses a Gaussian Convolution Kernel that helps in producing the blurring effect. The only difference between Gaussian Effect and Motion Blur is that the Gaussian Convolution Kernel is used with a specified angle.

如名称所示,通过指定某个角度应用此效果,给定的输入似乎就像您在运动中看到它一样。

As indicated by the name, on applying this effect by specifying some angle, the given input seems to you as if you are seeing it while it is in motion.

javafx.scene.effect 中名为 MotionBlur 的类表示 Motion Blur 效果。此类包含三个属性,其中包括 −

The class named MotionBlur of the package javafx.scene.effect represents the Motion Blur effect. This class contains three properties, which include −

  1. input − This property is of the type Effect and it represents an input to the box blur effect.

  2. radius − This property is of double type representing the radius with which the Motion Blur Effect is to be applied.

  3. Angle − This is a property of double type and it represents the angle of the motion effect in degrees.

Example

以下程序是一个演示 Motion Blur 效果的示例。在此,我们绘制填充有 DARKSEAGREEN 颜色的文本“Welcome to Tutorialspoint”,并对它应用运动模糊效果,角度为 45 度。

The following program is an example demonstrating the Motion Blur Effect. In here, we are drawing the text “Welcome to Tutorialspoint” filled with DARKSEAGREEN color and applying Motion Blur Effect to it with an angle of 45 degrees.

将这段代码保存到名为 MotionBlurEffectExample.java 的文件中。

Save this code in a file with the name MotionBlurEffectExample.java.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.effect.MotionBlur;

public class MotionBlurEffectExample extends Application {
   @Override
   public void start(Stage stage) {
      //Creating a Text object
      Text text = new Text();

      //Setting font to the text
      text.setFont(Font.font(null, FontWeight.BOLD, 40));

      //setting the position of the text
      text.setX(60);
      text.setY(150);

      //Setting the text to be added.
      text.setText("Welcome to Tutorialspoint");

      //Setting the color of the text
      text.setFill(Color.DARKSEAGREEN);

      //Instantiating the MotionBlur class
      MotionBlur motionBlur = new MotionBlur();

      //Setting the radius to the effect
      motionBlur.setRadius(10.5);

      //Setting angle to the effect
      motionBlur.setAngle(45);

      //Applying MotionBlur effect to text
      text.setEffect(motionBlur);

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

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

      //Setting title to the Stage
      stage.setTitle("Sample Application");

      //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 文件。

Compile and execute the saved java file from the command prompt using the following commands.

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

Output

执行后,上述程序会生成如下所示的 JavaFX 窗口。

On executing, the above program generates a JavaFX window as shown below.

motionblur effect