JavaFX 3D Animation এবং Transformation Techniques আপনাকে 3D গ্রাফিক্স এবং অ্যানিমেশন তৈরি করতে সহায়তা করে। JavaFX তে 3D গ্রাফিক্স তৈরি করার জন্য বিভিন্ন ট্রান্সফরমেশন এবং অ্যানিমেশন টেকনিক ব্যবহৃত হয় যা 3D অবজেক্টের অবস্থান, আকার, ঘূর্ণন এবং স্কেল পরিবর্তন করতে সক্ষম। এই প্রযুক্তিগুলি আপনার অ্যাপ্লিকেশনকে আরও আকর্ষণীয় এবং ইন্টারেক্টিভ করে তোলে।
1. JavaFX 3D গ্রাফিক্স তৈরি করা
JavaFX তে 3D গ্রাফিক্স তৈরি করার জন্য Shape3D শ্রেণী ব্যবহৃত হয়, যা 3D শেপগুলি তৈরি এবং প্রদর্শন করতে সহায়ক। Box, Sphere, Cylinder, ইত্যাদি JavaFX-এর বিল্ট-ইন 3D শেপ ক্লাস। 3D গ্রাফিক্সের জন্য Group কন্টেইনার ব্যবহার করা হয় এবং শেপগুলিকে প্লেন বা থ্রিডি স্পেসে একত্রিত করতে ব্যবহৃত হয়।
JavaFX 3D Shape Example
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Cylinder;
import javafx.stage.Stage;
public class JavaFX3DExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি সিলিন্ডার তৈরি করা
Cylinder cylinder = new Cylinder(50, 100); // ব্যাসার্ধ 50, উচ্চতা 100
// 3D মেটেরিয়াল যোগ করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.GREEN);
cylinder.setMaterial(material);
// PerspectiveCamera ব্যবহার করা
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500); // ক্যামেরা পজিশন
// Group কন্টেইনার তৈরি করা
Group root = new Group();
root.getChildren().add(cylinder);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 600, 400, true);
scene.setFill(Color.LIGHTBLUE);
scene.setCamera(camera);
// Stage সেট করা
primaryStage.setTitle("JavaFX 3D Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Cylinder: JavaFX 3D গ্রাফিক্সের জন্য সিলিন্ডার তৈরি করা হয়েছে।
- PhongMaterial: 3D শেপের জন্য রঙ এবং টেক্সচার সেট করতে
PhongMaterialব্যবহার করা হয়েছে। - PerspectiveCamera: 3D দৃশ্য প্রদর্শনের জন্য একটি
PerspectiveCameraব্যবহার করা হয়েছে।
2. 3D Transformation Techniques (3D ট্রান্সফরমেশন টেকনিক)
JavaFX তে 3D ট্রান্সফরমেশনগুলি বিভিন্ন ধরনের পরিবর্তন করতে ব্যবহৃত হয় যেমন ঘূর্ণন (rotation), স্থানান্তর (translation), স্কেল (scaling) ইত্যাদি। 3D ট্রান্সফরমেশন করতে JavaFX তে Rotate, Translate, এবং Scale ক্লাস ব্যবহার করা হয়।
3D Transformation Example:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Cylinder;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
public class TransformationExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি সিলিন্ডার তৈরি করা
Cylinder cylinder = new Cylinder(50, 100); // ব্যাসার্ধ 50, উচ্চতা 100
// 3D মেটেরিয়াল যোগ করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.BLUE);
cylinder.setMaterial(material);
// সিলিন্ডারের ট্রান্সফরমেশন যোগ করা (স্থানান্তর, ঘূর্ণন, স্কেল)
cylinder.setTranslateX(150); // স্থানান্তর
cylinder.setTranslateY(150);
cylinder.setTranslateZ(0);
// ঘূর্ণন ট্রান্সফরমেশন
Rotate rotate = new Rotate();
rotate.setAngle(45); // 45 ডিগ্রি ঘূর্ণন
rotate.setAxis(Rotate.Y_AXIS); // Y অক্ষের চারপাশে ঘূর্ণন
cylinder.getTransforms().add(rotate);
// PerspectiveCamera ব্যবহার করা
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500); // ক্যামেরা পজিশন
// Group কন্টেইনার তৈরি করা
Group root = new Group();
root.getChildren().add(cylinder);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 600, 400, true);
scene.setFill(Color.LIGHTYELLOW);
scene.setCamera(camera);
// Stage সেট করা
primaryStage.setTitle("3D Transformation Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Rotate: সিলিন্ডারটিকে Y অক্ষের চারপাশে 45 ডিগ্রি ঘুরানো হচ্ছে।
- Translate: সিলিন্ডারের অবস্থান পরিবর্তন করা হচ্ছে X এবং Y অক্ষের মাধ্যমে।
- PerspectiveCamera: 3D দৃশ্যের জন্য ক্যামেরা সেট করা হচ্ছে।
3. 3D Animation (3D অ্যানিমেশন)
JavaFX এ 3D অ্যানিমেশন তৈরি করতে আপনি Timeline এবং KeyFrame ব্যবহার করতে পারেন। এটি বিভিন্ন ট্রান্সফরমেশন এবং অ্যানিমেশনগুলো নির্দিষ্ট সময়ে অ্যাপ্লিকেশন চলাকালে প্রয়োগ করতে সহায়তা করে।
3D Animation Example (Rotating Cube):
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Box;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
import javafx.util.Duration;
public class AnimationExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি বক্স (Cube) তৈরি করা
Box box = new Box(100, 100, 100); // আকার (100, 100, 100)
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.RED); // বক্সের রঙ সেট করা
box.setMaterial(material);
// বক্সের ঘূর্ণন ট্রান্সফরমেশন
Rotate rotate = new Rotate();
rotate.setAxis(Rotate.Y_AXIS); // Y অক্ষের চারপাশে ঘূর্ণন
box.getTransforms().add(rotate);
// Timeline তৈরি করা
Timeline timeline = new Timeline();
KeyFrame keyFrame = new KeyFrame(Duration.millis(50), e -> {
rotate.setAngle(rotate.getAngle() + 1); // প্রতি মিলিসেকেন্ডে 1 ডিগ্রি ঘূর্ণন
});
timeline.getKeyFrames().add(keyFrame);
timeline.setCycleCount(Timeline.INDEFINITE); // ইনফিনিটি টাইমলাইন
timeline.play(); // অ্যানিমেশন চালু করা
// PerspectiveCamera ব্যবহার করা
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-400); // ক্যামেরা পজিশন
// Group কন্টেইনার তৈরি করা
Group root = new Group();
root.getChildren().add(box);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 600, 400, true);
scene.setFill(Color.LIGHTBLUE);
scene.setCamera(camera);
// Stage সেট করা
primaryStage.setTitle("3D Animation Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Timeline:
TimelineএবংKeyFrameব্যবহার করে আমরা 3D বক্সটি Y অক্ষের চারপাশে ঘূর্ণন করাচ্ছি। - Rotate:
Rotateট্রান্সফরমেশন ব্যবহার করা হচ্ছে বক্সটির ঘূর্ণন নিয়ন্ত্রণ করতে। - Duration.millis(50): প্রতি 50 মিলিসেকেন্ড পরপর ঘূর্ণন 1 ডিগ্রি বাড়ানো হচ্ছে।
JavaFX 3D Animation এবং Transformation Techniques এর সুবিধা:
- Interactive and Engaging UI: 3D অ্যানিমেশন এবং ট্রান্সফরমেশন ব্যবহার করে আপনি ইন্টারঅ্যাকটিভ এবং আকর্ষণীয় ইউজার ইন্টারফেস তৈরি করতে পারেন।
- Camera Manipulation: আপনি
PerspectiveCameraব্যবহার করে 3D দৃশ্যের অ্যাঙ্গেল এবং ফোকাস পরিবর্তন করতে পারেন। - Advanced Graphics: JavaFX 3D ট্রান্সফরমেশন আপনাকে উপাদানগুলির ঘূর্ণন, স্থানান্তর, এবং স্কেল সহজেই নিয়ন্ত্রণ করতে সহায়তা করে।
- Seamless Integration: 3D গ্রাফিক্স এবং অ্যানিমেশন সহজেই JavaFX এর অন্যান্য উপাদানের সাথে একত্রিত করা যেতে পারে, যেমন UI কন্ট্রোল, মিডিয়া প্লেয়ার ইত্যাদি।
সারাংশ:
JavaFX তে 3D Animation এবং Transformation Techniques আপনাকে 3D গ্রাফিক্স তৈরি, তাদের ঘূর্ণন, স্থানান্তর, এবং স্কেল করতে সহায়তা করে। Timeline এবং KeyFrame ব্যবহার করে 3D অ্যানিমেশন তৈরি করা সম্ভব, যা JavaFX অ্যাপ্লিকেশনগুলিকে আরও আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ করে তোলে।
Read more