Efectos JavaFX - MotionBlur
Al igual que el efecto gaussiano, Motion Blur es un efecto para desenfocar los nodos en JavaFX. También utiliza un núcleo de convolución gaussiana que ayuda a producir el efecto de desenfoque. La única diferencia entre el efecto gaussiano y el desenfoque de movimiento es que el núcleo de convolución gaussiano se usa con un ángulo específico.
Como indica el nombre, al aplicar este efecto especificando algún ángulo, la entrada dada le parece como si la estuviera viendo mientras está en movimiento.
La clase nombrada MotionBlur del paquete javafx.scene.effectrepresenta el efecto Motion Blur. Esta clase contiene tres propiedades, que incluyen:
input - Esta propiedad es del tipo Efecto y representa una entrada al efecto de desenfoque del cuadro.
radius - Esta propiedad es de tipo doble que representa el radio con el que Motion Blur Effect se aplicará.
Angle - Esta es una propiedad de tipo doble y representa el ángulo del efecto de movimiento en grados.
Ejemplo
El siguiente programa es un ejemplo que demuestra el efecto de desenfoque de movimiento. Aquí, estamos dibujando el texto “Bienvenido a Tutorialspoint” relleno con color DARKSEAGREEN y aplicándole el efecto Motion Blur con un ángulo de 45 grados.
Guarde este código en un archivo con el nombre 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);
}
}
Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.
javac MotionBlurEffectExample.java
java MotionBlurEffectExample
Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.