JavaFX - एनिमेशन

सामान्य तौर पर, किसी वस्तु को एनिमेट करने से तात्पर्य है उसकी गति का भ्रम तेजी से प्रदर्शित होना। जावाएफएक्स में, एक नोड समय के साथ अपनी संपत्ति को बदलकर एनिमेटेड हो सकता है। JavaFX नाम का एक पैकेज प्रदान करता हैjavafx.animation। इस पैकेज में ऐसी कक्षाएं हैं जो नोड्स को चेतन करने के लिए उपयोग की जाती हैं। एनीमेशन इन सभी वर्गों का आधार वर्ग है।

JavaFX का उपयोग करके, आप एनिमेशन (संक्रमण) जैसे आवेदन कर सकते हैं Fade Transition, Fill Transition, Rotate Transition, Scale Transition, Stroke Transition, Translate Transition, Path Transition, Sequential Transition, Pause Transition, Parallel Transition, आदि।

इन सभी बदलावों को पैकेज में व्यक्तिगत वर्गों द्वारा दर्शाया गया है javafx.animation

किसी विशेष एनीमेशन को नोड पर लागू करने के लिए, आपको नीचे दिए गए चरणों का पालन करना होगा -

  • संबंधित वर्ग का उपयोग करके एक आवश्यक नोड बनाएं।

  • संबंधित संक्रमण (एनीमेशन) वर्ग को लागू करें जिसे लागू किया जाना है

  • संक्रमण के गुण सेट करें और

  • अंत में संक्रमण का उपयोग कर खेलते हैं play() की विधि Animation कक्षा।

इस अध्याय में हम बुनियादी बदलावों (रोटेशन, स्केलिंग, अनुवाद) के उदाहरणों पर चर्चा करने जा रहे हैं।

संक्रमण घुमाएँ

निम्नलिखित प्रोग्राम है जो JavaFX में Rotate Transition प्रदर्शित करता है। इस कोड को नाम वाली फ़ाइल में सहेजेंRotateTransitionExample.java

import javafx.animation.RotateTransition; 
import javafx.application.Application; 
import static javafx.application.Application.launch; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Polygon; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
         
public class RotateTransitionExample extends Application { 
   @Override 
   public void start(Stage stage) {      
      //Creating a hexagon 
      Polygon hexagon = new Polygon();        
      
      //Adding coordinates to the hexagon 
      hexagon.getPoints().addAll(new Double[]{        
         200.0, 50.0, 
         400.0, 50.0, 
         450.0, 150.0,          
         400.0, 250.0, 
         200.0, 250.0,                   
         150.0, 150.0, 
      }); 
      //Setting the fill color for the hexagon 
      hexagon.setFill(Color.BLUE); 
       
      //Creating a rotate transition    
      RotateTransition rotateTransition = new RotateTransition(); 
      
      //Setting the duration for the transition 
      rotateTransition.setDuration(Duration.millis(1000)); 
      
      //Setting the node for the transition 
      rotateTransition.setNode(hexagon);       
      
      //Setting the angle of the rotation 
      rotateTransition.setByAngle(360); 
      
      //Setting the cycle count for the transition 
      rotateTransition.setCycleCount(50); 
      
      //Setting auto reverse value to false 
      rotateTransition.setAutoReverse(false); 
      
      //Playing the animation 
      rotateTransition.play(); 
         
      //Creating a Group object   
      Group root = new Group(hexagon); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);   
      
      //Setting title to the Stage 
      stage.setTitle("Rotate transition example "); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

javac RotateTransitionExample.java 
java RotateTransitionExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जैसा कि नीचे दिखाया गया है।

स्केल संक्रमण

निम्नलिखित प्रोग्राम है जो JavaFX में स्केल ट्रांज़िशन प्रदर्शित करता है। इस कोड को नाम वाली फ़ाइल में सहेजेंScaleTransitionExample.java

import javafx.animation.ScaleTransition; 
import javafx.application.Application; 
import static javafx.application.Application.launch; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
         
public class ScaleTransitionExample extends Application {  
   @Override 
   public void start(Stage stage) {      
      //Drawing a Circle 
      Circle circle = new Circle(); 
      
      //Setting the position of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(135.0f); 
      
      //Setting the radius of the circle 
      circle.setRadius(50.0f); 
      
      //Setting the color of the circle 
      circle.setFill(Color.BROWN); 
      
      //Setting the stroke width of the circle 
      circle.setStrokeWidth(20); 
       
      //Creating scale Transition 
      ScaleTransition scaleTransition = new ScaleTransition(); 
      
      //Setting the duration for the transition 
      scaleTransition.setDuration(Duration.millis(1000)); 
      
      //Setting the node for the transition 
      scaleTransition.setNode(circle); 
      
      //Setting the dimensions for scaling 
      scaleTransition.setByY(1.5); 
      scaleTransition.setByX(1.5); 
      
      //Setting the cycle count for the translation 
      scaleTransition.setCycleCount(50); 
      
      //Setting auto reverse value to true 
      scaleTransition.setAutoReverse(false); 
      
      //Playing the animation 
      scaleTransition.play(); 
         
      //Creating a Group object  
      Group root = new Group(circle); 
         
      //Creating a scene object  
      Scene scene = new Scene(root, 600, 300); 
      
      //Setting title to the Stage 
      stage.setTitle("Scale transition example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

javac ScaleTransitionExample.java 
java ScaleTransitionExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जैसा कि नीचे दिखाया गया है।

अनुवाद का अनुवाद

निम्नलिखित प्रोग्राम है जो JavaFX में ट्रांसलेशन ट्रांज़िशन प्रदर्शित करता है। इस कोड को नाम वाली फ़ाइल में सहेजेंTranslateTransitionExample.java

import javafx.animation.TranslateTransition; 
import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
         
public class TranslateTransitionExample extends Application { 
   @Override 
   public void start(Stage stage) {  
      //Drawing a Circle 
      Circle circle = new Circle(); 
      
      //Setting the position of the circle 
      circle.setCenterX(150.0f); 
      circle.setCenterY(135.0f); 
      
      //Setting the radius of the circle 
      circle.setRadius(100.0f); 
      
      //Setting the color of the circle 
      circle.setFill(Color.BROWN); 
      
      //Setting the stroke width of the circle 
      circle.setStrokeWidth(20); 
       
      //Creating Translate Transition 
      TranslateTransition translateTransition = new TranslateTransition(); 
      
      //Setting the duration of the transition  
      translateTransition.setDuration(Duration.millis(1000)); 
      
      //Setting the node for the transition 
      translateTransition.setNode(circle); 
      
      //Setting the value of the transition along the x axis. 
      translateTransition.setByX(300); 
      
      //Setting the cycle count for the transition 
      translateTransition.setCycleCount(50); 
      
      //Setting auto reverse value to false 
      translateTransition.setAutoReverse(false); 
      
      //Playing the animation 
      translateTransition.play(); 
         
      //Creating a Group object  
      Group root = new Group(circle); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Translate transition example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

javac TranslateTransitionExample.java 
java TranslateTransitionExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जैसा कि नीचे दिखाया गया है।

इनके अतिरिक्त, JavaFX नोड्स पर अधिक बदलाव लागू करने के लिए कक्षाएं प्रदान करता है। JavaFX द्वारा समर्थित अन्य प्रकार के संक्रमण निम्नलिखित हैं।

  • संक्रमण जो नोड्स की विशेषताओं को प्रभावित करते हैं फीका, भरण, स्ट्रोक

  • संक्रमण जिसमें एक से अधिक बुनियादी बदलाव होते हैं अनुक्रमिक, समानांतर, ठहराव

  • संक्रमण जो निर्दिष्ट पथ पथ संक्रमण के साथ वस्तु का अनुवाद करता है