Effetti JavaFX - MotionBlur

Proprio come l'effetto gaussiano, Motion Blur è un effetto per sfocare i nodi in JavaFX. Utilizza anche un kernel di convoluzione gaussiana che aiuta a produrre l'effetto di sfocatura. L'unica differenza tra Gaussian Effect e Motion Blur è che il kernel di convoluzione gaussiana viene utilizzato con un angolo specificato.

Come indicato dal nome, applicando questo effetto specificando un angolo, l'input dato ti sembra come se lo stessi vedendo mentre è in movimento.

La classe denominata MotionBlur del pacchetto javafx.scene.effectrappresenta l'effetto Motion Blur. Questa classe contiene tre proprietà, che includono:

  • input - Questa proprietà è del tipo Effect e rappresenta un input per l'effetto box blur.

  • radius - Questa proprietà è di tipo doppio che rappresenta il raggio con cui il Motion Blur Effect deve essere applicato.

  • Angle - Questa è una proprietà di doppio tipo e rappresenta l'angolo dell'effetto di movimento in gradi.

Esempio

Il seguente programma è un esempio che mostra l'effetto Motion Blur. Qui stiamo disegnando il testo "Benvenuti in Tutorialspoint" riempito con il colore DARKSEAGREEN e applicando l'effetto Motion Blur ad esso con un angolo di 45 gradi.

Salva questo codice in un file con il nome 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); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac MotionBlurEffectExample.java 
java MotionBlurEffectExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX come mostrato di seguito.