JavaFX এর মধ্যে 3D গ্রাফিক্স সমর্থন করা হয়, যা ব্যবহারকারীদের 3D অবজেক্ট তৈরি এবং প্রদর্শন করার জন্য অনেক কার্যকরী টুল সরবরাহ করে। JavaFX এর 3D গ্রাফিক্স API দিয়ে আপনি 3D শেপ তৈরি করতে পারেন, ক্যামেরা সেট করতে পারেন, এবং 3D দৃশ্যের মধ্যে লাইট এবং মেটেরিয়াল যোগ করতে পারেন।
JavaFX তে 3D গ্রাফিক্স তৈরির জন্য, আপনি Group অথবা SubScene ক্লাসের সাথে 3D শেপ এবং 3D লাইট ব্যবহার করবেন। সাধারণ 3D শেপগুলির মধ্যে Box, Sphere, Cylinder ইত্যাদি অন্তর্ভুক্ত রয়েছে, যা আপনি ঘুরাতে এবং মুভ করতে পারেন।
JavaFX তে 3D Graphics তৈরি করার মূল উপাদান:
- 3D Shapes:
- Box: একটি 3D বক্স (কিউব) তৈরি করতে ব্যবহৃত হয়।
- Sphere: একটি 3D গোলক তৈরি করতে ব্যবহৃত হয়।
- Cylinder: একটি 3D সিলিন্ডার তৈরি করতে ব্যবহৃত হয়।
- Camera: 3D দৃশ্যের দৃষ্টিভঙ্গি নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
- Light: 3D শেপের উপর আলো প্রয়োগ করতে ব্যবহৃত হয়।
- Material: 3D শেপের পৃষ্ঠের গুণাবলী নির্ধারণ করতে ব্যবহৃত হয়, যেমন রঙ, টেক্সচার ইত্যাদি।
JavaFX তে 3D Graphics উদাহরণ
এই উদাহরণে, আমরা একটি 3D বক্স তৈরি করবো এবং তাকে ঘুরাবো। এর সাথে একটি ক্যামেরা এবং আলো যোগ করা হবে।
3D Box Example:
import javafx.application.Application;
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.layout.StackPane;
import javafx.stage.Stage;
import javafx.animation.RotateTransition;
import javafx.util.Duration;
public class JavaFX3DExample extends Application {
@Override
public void start(Stage primaryStage) {
// 3D Box তৈরি
Box box = new Box(200, 200, 200); // 3D বক্সের আকার
// Box এর জন্য Material সেট করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.BLUE); // বক্সের রঙ
box.setMaterial(material);
// ক্যামেরা তৈরি
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500); // ক্যামেরার অবস্থান
// RotateTransition সেট করা, যাতে বক্সটি ঘুরে
RotateTransition rotateTransition = new RotateTransition(Duration.seconds(5), box);
rotateTransition.setByAngle(360); // 360 ডিগ্রি ঘূর্ণন
rotateTransition.setCycleCount(RotateTransition.INDEFINITE); // অবিরাম ঘূর্ণন
rotateTransition.setAutoReverse(true); // উল্টো পথে ঘূর্ণন
rotateTransition.play();
// Scene তৈরি করা
StackPane root = new StackPane();
root.getChildren().add(box);
Scene scene = new Scene(root, 800, 600, true);
scene.setFill(Color.LIGHTGRAY);
scene.setCamera(camera); // ক্যামেরা যুক্ত করা
primaryStage.setTitle("JavaFX 3D Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- 3D Box:
Boxঅবজেক্ট তৈরি করা হয়েছে যা 3D আয়তক্ষেত্র তৈরি করবে। এর আকার200, 200, 200পিক্সেল সেট করা হয়েছে। - PhongMaterial:
PhongMaterialব্যবহার করা হয়েছে, যা বক্সের রঙ বা পৃষ্ঠের গুণাবলী নির্ধারণ করতে ব্যবহৃত হয়। এখানে, আমরা বক্সটির রঙ ব্লু সেট করেছি। - PerspectiveCamera: একটি 3D ক্যামেরা তৈরি করা হয়েছে, যা দৃশ্যের দৃষ্টিভঙ্গি নিয়ন্ত্রণ করে।
setTranslateZ(-500)দ্বারা ক্যামেরার অবস্থান পরিবর্তন করা হয়েছে, যাতে বক্সটি দৃশ্যমান হয়। - RotateTransition: বক্সটিকে ঘোরানোর জন্য
RotateTransitionব্যবহার করা হয়েছে।setByAngle(360)দ্বারা 360 ডিগ্রি ঘূর্ণন করার জন্য সেট করা হয়েছে। - Scene: একটি
Sceneতৈরি করা হয়েছে যা 3D দৃশ্য ধারণ করবে এবং ক্যামেরা সেট করা হয়েছে।
3D Sphere Example (Sphere তৈরি করা)
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Sphere;
import javafx.stage.Stage;
public class SphereExample extends Application {
@Override
public void start(Stage primaryStage) {
// 3D Sphere তৈরি
Sphere sphere = new Sphere(150); // 3D গোলকের আকার (ব্যাসার্ধ 150)
// Sphere এর জন্য Material সেট করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.RED); // গোলকের রঙ
sphere.setMaterial(material);
// Scene তৈরি করা
Scene scene = new Scene(sphere, 600, 400, true);
scene.setFill(Color.LIGHTBLUE); // পটভূমির রঙ
primaryStage.setTitle("JavaFX 3D Sphere");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে, আমরা একটি 3D Sphere তৈরি করেছি এবং সেটির রঙ লাল (Red) হিসেবে নির্ধারণ করেছি।
PhongMaterialব্যবহার করে গোলকের পৃষ্ঠের রঙ সেট করা হয়েছে।
JavaFX তে 3D Shapes, Lighting এবং Camera ব্যবহার করা
আপনি 3D গ্রাফিক্সে Lighting এবং Camera এর মাধ্যমে দৃশ্যের আলোক-সংকেত (lighting effects) এবং দৃশ্যের দৃষ্টিভঙ্গি নিয়ন্ত্রণ করতে পারেন।
Lighting Example (3D Lighting):
import javafx.application.Application;
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.lighting.PointLight;
import javafx.stage.Stage;
public class LightingExample extends Application {
@Override
public void start(Stage primaryStage) {
// 3D Cylinder তৈরি
Cylinder cylinder = new Cylinder(100, 200); // সিলিন্ডারের ব্যাস এবং উচ্চতা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.GREEN); // সিলিন্ডারের রঙ
cylinder.setMaterial(material);
// PointLight তৈরি
PointLight pointLight = new PointLight();
pointLight.setColor(Color.WHITE); // আলো সাদা
pointLight.setTranslateX(100); // আলো প্রেরণের অবস্থান
pointLight.setTranslateY(-100);
pointLight.setTranslateZ(-200);
// ক্যামেরা তৈরি
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500);
// Scene তৈরি
Scene scene = new Scene(cylinder, 800, 600, true);
scene.setFill(Color.LIGHTGRAY);
scene.setCamera(camera); // ক্যামেরা যুক্ত করা
scene.setRoot(cylinder); // 3D সিলিন্ডার দৃশ্যের রুট হিসেবে
// আলো যুক্ত করা
scene.setFill(Color.BLACK);
scene.setRoot(cylinder);
scene.setFill(Color.GRAY);
primaryStage.setTitle("JavaFX 3D Lighting");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
JavaFX তে 3D গ্রাফিক্স ব্যবহার করে আপনি বিভিন্ন ধরনের 3D শেপ যেমন Box, Sphere, Cylinder তৈরি করতে পারেন এবং Camera, Light, এবং Material ব্যবহার করে তাদের দেখানোর স্টাইল নিয়ন্ত্রণ করতে পারেন। JavaFX এর WebView, WebEngine, PathTransition, এবং RotateTransition এর সাহায্যে আপনি 3D গ্রাফিক্সের সাথেও আকর্ষণীয় অ্যানিমেশন তৈরি করতে পারেন।
JavaFX তে 3D গ্রাফিক্স ব্যবহারের ফলে আপনি শক্তিশালী এবং ইন্টারেক্টিভ গ্রাফিক্যাল অ্যাপ্লিকেশন তৈরি করতে পারেন, যেমন গেম, 3D মডেলিং অ্যাপ্লিকেশন, এবং আরও অনেক কিছু।
JavaFX হল একটি শক্তিশালী ফ্রেমওয়ার্ক যা গ্রাফিকাল ইউজার ইন্টারফেস (GUI) তৈরি করতে ব্যবহৃত হয়, এবং এতে 2D এবং 3D graphics এর জন্য সমর্থন রয়েছে। JavaFX 3D গ্রাফিক্স ব্যবহারকারীদের 3D objects, scenes, এবং lighting effects তৈরি এবং পরিচালনা করার সুযোগ দেয়। এর মাধ্যমে আপনি একটি সম্পূর্ণ 3D অ্যাপ্লিকেশন বা গেম তৈরি করতে পারেন বা 3D গ্রাফিক্সের মাধ্যমে ইউজার ইন্টারফেস আরও ইন্টারঅ্যাকটিভ এবং আকর্ষণীয় করতে পারেন।
JavaFX এ 3D graphics ব্যবহার করার মাধ্যমে আপনি 3D Shapes, Transforms, Camera এবং Lighting ইফেক্টস নিয়ন্ত্রণ করতে পারবেন। এর সাহায্যে আপনি একটি থ্রিডি দৃশ্য তৈরি করতে পারেন, যেখানে বিভিন্ন 3D objects যেমন Cube, Sphere, Cone, Cylinder ইত্যাদি অন্তর্ভুক্ত থাকে।
JavaFX 3D Graphics এর মূল উপাদানগুলো:
- 3D Shapes:
- JavaFX 3D গ্রাফিক্সের প্রধান উপাদান হল 3D shapes। এই shapes এর মধ্যে Box, Sphere, Cylinder, Cone ইত্যাদি অন্তর্ভুক্ত থাকে। আপনি এগুলোর আকার, অবস্থান এবং রঙ কাস্টমাইজ করতে পারেন।
- Camera:
- 3D দৃশ্যের মধ্যে কেমেরা হল একটি গুরুত্বপূর্ণ উপাদান যা দৃশ্যের দৃষ্টিকোণ নিয়ন্ত্রণ করে। JavaFX এ PerspectiveCamera এবং ParallelCamera ব্যবহার করা যায়। কেমেরা ব্যবহারকারীর দৃষ্টিকোণ অনুযায়ী 3D objects এর অবস্থান এবং ঘূর্ণন (rotation) পরিবর্তন করতে সাহায্য করে।
- Lighting:
- JavaFX 3D গ্রাফিক্সে lighting effects ব্যবহার করে আপনি 3D objects-এ আলো এবং ছায়া প্রভাব যুক্ত করতে পারেন। JavaFX এর মধ্যে বিভিন্ন ধরনের লাইটিং ইফেক্ট রয়েছে, যেমন PointLight, DirectionalLight, SpotLight ইত্যাদি। এর মাধ্যমে আপনি একাধিক লাইট সজ্জা বা পরিবেশ তৈরি করতে পারেন।
- Transforms:
- 3D objects এর পজিশন, স্কেল এবং রোটেশন নিয়ন্ত্রণ করতে Transforms ব্যবহার করা হয়। JavaFX-এ বিভিন্ন ধরনের Transform রয়েছে, যেমন Translate, Rotate, Scale, ইত্যাদি।
- Material:
- 3D objects এর উপাদান (material) বা রঙ এবং texture কাস্টমাইজ করতে PhongMaterial অথবা ImagePattern ব্যবহার করা হয়।
JavaFX 3D Graphics উদাহরণ:
এখানে একটি উদাহরণ দেওয়া হল যেখানে 3D Box (Cube), Light, এবং Camera ব্যবহার করে একটি 3D দৃশ্য তৈরি করা হয়েছে।
JavaFX 3D Graphics 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.Box;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
public class JavaFX3DExample extends Application {
@Override
public void start(Stage primaryStage) {
// 3D Box তৈরি
Box box = new Box(200, 200, 200);
// PhongMaterial তৈরি করে Box এর উপরে রঙ প্রয়োগ করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.CYAN); // Box এর রঙ Cyan হবে
box.setMaterial(material);
// Box এর জন্য একটি Rotate Transform যোগ করা
box.setRotationAxis(Rotate.Y_AXIS); // Y-axis এ ঘুরবে
box.setRotate(45); // 45 ডিগ্রি ঘূর্ণন
// PerspectiveCamera তৈরি এবং সেট করা
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500); // ক্যামেরার দূরত্ব
// Group তৈরি করা এবং Box যোগ করা
Group root = new Group();
root.getChildren().add(box);
// Scene তৈরি করা এবং ক্যামেরা যুক্ত করা
Scene scene = new Scene(root, 800, 600, true);
scene.setCamera(camera);
// স্টেজ সেট করা
primaryStage.setTitle("JavaFX 3D Graphics Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- Box:
- এই উদাহরণে একটি 3D Box তৈরি করা হয়েছে যার আকার 200x200x200।
PhongMaterialব্যবহার করে আমরা এটি সায়ান রঙে স্টাইল করেছি।
- এই উদাহরণে একটি 3D Box তৈরি করা হয়েছে যার আকার 200x200x200।
- Rotation:
Rotate.Y_AXISএর মাধ্যমে Box এর রোটেশন অ্যাক্সিস Y-অক্ষ হিসেবে সেট করা হয়েছে, এবংbox.setRotate(45)দিয়ে এটি 45 ডিগ্রি ঘুরানো হয়েছে।
- PerspectiveCamera:
- PerspectiveCamera ব্যবহার করা হয়েছে যাতে 3D দৃশ্যের গভীরতা এবং দৃষ্টিকোণ পাওয়া যায়। ক্যামেরা TranslateZ(-500) দ্বারা দৃশ্য থেকে 500 পিক্সেল পিছনে অবস্থান করে, যাতে Box স্পষ্টভাবে দৃশ্যমান হয়।
- Scene এবং Camera:
- Scene তে 3D গ্রাফিক্স প্রদর্শনের জন্য ক্যামেরা যোগ করা হয়েছে, যা 3D দৃশ্যের দৃষ্টিকোণ নিয়ন্ত্রণ করে।
JavaFX 3D Graphics এর অন্যান্য উপাদান:
- 3D Shapes:
- Box: একটি 3D ঘনবস্তুর আকৃতি।
- Sphere: একটি 3D গোলক।
- Cylinder: একটি 3D সিলিন্ডার।
- Cone: একটি 3D শঙ্কু।
- Lighting:
- PointLight: একটি একক উৎস থেকে আলো ফেলে।
- DirectionalLight: একটি নির্দিষ্ট দিক থেকে আলো ফেলে।
- SpotLight: একটি সুনির্দিষ্ট জায়গায় আলো ফেলে।
- Materials:
- PhongMaterial: 3D objects-এ শাইন এবং পরিবেশের রঙ যুক্ত করতে ব্যবহৃত হয়।
- Color: মৌলিক রঙের প্রয়োগ।
- ImagePattern: 3D object-এ একটি ছবির টেক্সচার প্রয়োগ করা।
JavaFX 3D Graphics এর সুবিধা:
- 3D Rendering:
- JavaFX 3D গ্রাফিক্স সহজেই 3D অ্যানিমেশন এবং দৃশ্য তৈরি করতে সাহায্য করে। এটা 3D objects, scenes, এবং lighting effects পরিচালনা করতে সক্ষম।
- Transforms:
- JavaFX তে আপনি rotate, translate, scale এবং shear ট্রান্সফর্মস এর মাধ্যমে 3D objects এর পজিশন, আকার এবং ঘূর্ণন নিয়ন্ত্রণ করতে পারেন।
- User Interaction:
- JavaFX 3D গ্রাফিক্সের মাধ্যমে আপনি ব্যবহারকারীদের সাথে ইন্টারঅ্যাক্টিভ 3D অ্যাপ্লিকেশন তৈরি করতে পারেন, যেমন 3D গেম, সিমুলেশন, অথবা 3D ইউজার ইন্টারফেস।
- Cross-Platform:
- JavaFX 3D গ্রাফিক্সকে cross-platform হিসেবে তৈরি করা যায়, অর্থাৎ একটি অ্যাপ্লিকেশন একবার তৈরি করার পর সেটি Windows, MacOS এবং Linux এ চলে।
JavaFX-এ 3D গ্রাফিক্সের মাধ্যমে আপনি আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ 3D অ্যাপ্লিকেশন তৈরি করতে পারেন। এর মাধ্যমে আপনি 3D shapes, camera, lighting, transforms এবং materials ব্যবহার করে শক্তিশালী 3D গ্রাফিক্স তৈরি করতে সক্ষম। JavaFX 3D গ্রাফিক্সে সহজে 3D objects যোগ করা, সেগুলোর অবস্থান এবং আঙ্গিক নিয়ন্ত্রণ করা সম্ভব, যা আপনার অ্যাপ্লিকেশনকে একটি নতুন দৃষ্টিকোণ এনে দেয়।
JavaFX 3D Shapes হল JavaFX এর একটি শক্তিশালী ফিচার যা 3D গ্রাফিক্স তৈরি করতে সহায়তা করে। JavaFX আপনাকে সহজে Box, Cylinder, এবং Sphere সহ বিভিন্ন ধরনের 3D শেপ তৈরি করার সুবিধা দেয়। আপনি এই শেপগুলির সাথে রোটেশন, স্কেলিং, এবং ট্রান্সফরমেশন প্রয়োগ করতে পারেন, যা গ্রাফিক্যাল অ্যাপ্লিকেশনগুলোকে আরও বাস্তবসম্মত এবং ইন্টারঅ্যাকটিভ করে তোলে।
1. Box (বক্স)
Box হল একটি 3D শেপ যা একটি পিরামিডের মতো দেখতে তবে এর সাড়ে তিনটি পাশ থাকে, এটি একটি সাধারণ কিউবের মতো। JavaFX-এ, Box ক্লাস ব্যবহার করে আপনি 3D বক্স তৈরি করতে পারেন।
Box উদাহরণ:
import javafx.application.Application;
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.scene.layout.StackPane;
import javafx.stage.Stage;
public class BoxExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি Box তৈরি করা
Box box = new Box(100, 100, 100); // দৈর্ঘ্য, প্রস্থ, এবং উচ্চতা
// বক্সের জন্য একটি মেটেরিয়াল সেট করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.DODGERBLUE);
box.setMaterial(material);
// বক্সটিকে ঘোরানোর জন্য রোটেশন প্রয়োগ করা
box.setRotationAxis(Rotate.Y_AXIS); // Y অক্ষের চারপাশে ঘোরানো
box.setRotate(45); // 45 ডিগ্রি ঘুরানো
// StackPane লেআউট তৈরি করা
StackPane root = new StackPane();
root.getChildren().add(box);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 300, 250, true); // 3D Scene এর জন্য তৃতীয় প্যারামিটার true
primaryStage.setTitle("3D Box Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Box তৈরি করার জন্য
Boxক্লাস ব্যবহার করা হয়েছে। এটি তিনটি আকার নির্ধারণ করে: দৈর্ঘ্য, প্রস্থ এবং উচ্চতা। - PhongMaterial ব্যবহার করে বক্সের রঙ বা মেটেরিয়াল সেট করা হয়েছে।
Rotate.Y_AXISব্যবহার করে Y অক্ষের চারপাশে বক্সটিকে ঘোরানো হয়েছে।
2. Cylinder (সিলিন্ডার)
Cylinder হল একটি 3D শেপ যা একটি সিলিন্ডারের মতো দেখতে। JavaFX-এ Cylinder ক্লাস ব্যবহার করে আপনি সহজে 3D সিলিন্ডার তৈরি করতে পারেন।
Cylinder উদাহরণ:
import javafx.application.Application;
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 CylinderExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি Cylinder তৈরি করা
Cylinder cylinder = new Cylinder(50, 150); // ব্যাসার্ধ এবং উচ্চতা
// সিলিন্ডারের জন্য একটি মেটেরিয়াল সেট করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.RED);
cylinder.setMaterial(material);
// সিলিন্ডারটিকে ঘোরানোর জন্য রোটেশন প্রয়োগ করা
cylinder.setRotationAxis(Rotate.X_AXIS); // X অক্ষের চারপাশে ঘোরানো
cylinder.setRotate(45); // 45 ডিগ্রি ঘুরানো
// StackPane লেআউট তৈরি করা
StackPane root = new StackPane();
root.getChildren().add(cylinder);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 300, 250, true); // 3D Scene এর জন্য তৃতীয় প্যারামিটার true
primaryStage.setTitle("3D Cylinder Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Cylinder তৈরি করা হয়েছে
Cylinderক্লাসের মাধ্যমে। এটি ব্যাসার্ধ এবং উচ্চতা নেবে। - PhongMaterial ব্যবহার করে সিলিন্ডারের রঙ বা মেটেরিয়াল সেট করা হয়েছে।
Rotate.X_AXISব্যবহার করে X অক্ষের চারপাশে সিলিন্ডারটিকে ঘোরানো হয়েছে।
3. Sphere (স্ফিয়ার)
Sphere হল একটি 3D শেপ যা একটি গোলাকার আকার ধারণ করে। JavaFX-এ, Sphere ক্লাস ব্যবহার করে আপনি 3D স্ফিয়ার তৈরি করতে পারেন।
Sphere উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Sphere;
import javafx.stage.Stage;
public class SphereExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি Sphere তৈরি করা
Sphere sphere = new Sphere(50); // ব্যাসার্ধ
// স্ফিয়ারের জন্য একটি মেটেরিয়াল সেট করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.GREEN);
sphere.setMaterial(material);
// StackPane লেআউট তৈরি করা
StackPane root = new StackPane();
root.getChildren().add(sphere);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 300, 250, true); // 3D Scene এর জন্য তৃতীয় প্যারামিটার true
primaryStage.setTitle("3D Sphere Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Sphere তৈরি করা হয়েছে
Sphereক্লাসের মাধ্যমে। এটি একটি গোলাকার শেপ যা ব্যাসার্ধ নেবে। - PhongMaterial ব্যবহার করে স্ফিয়ারের রঙ বা মেটেরিয়াল সেট করা হয়েছে।
JavaFX 3D Shapes এর Transformations
JavaFX 3D শেপগুলির জন্য বিভিন্ন transformations যেমন Translate, Rotate, এবং Scale ব্যবহার করে আপনি 3D শেপগুলির অবস্থান, আকার, এবং ঘূর্ণন পরিবর্তন করতে পারেন। উদাহরণস্বরূপ:
Transformations উদাহরণ:
import javafx.application.Application;
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.scene.transform.Translate;
import javafx.stage.Stage;
public class TransformationsExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি Cylinder তৈরি করা
Cylinder cylinder = new Cylinder(50, 150);
// সিলিন্ডারের জন্য একটি মেটেরিয়াল সেট করা
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.BLUE);
cylinder.setMaterial(material);
// ট্রান্সফর্মেশন যোগ করা (Translate এবং Rotate)
cylinder.setTranslateX(100); // X অক্ষে স্থানান্তর
cylinder.setTranslateY(100); // Y অক্ষে স্থানান্তর
cylinder.setRotationAxis(Rotate.Z_AXIS); // Z অক্ষের চারপাশে ঘোরানো
cylinder.setRotate(45); // 45 ডিগ্রি ঘুরানো
// StackPane লেআউট তৈরি করা
StackPane root = new StackPane();
root.getChildren().add(cylinder);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 300, 250, true);
primaryStage.setTitle("3D Transformations Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Transformations এর ব্যবহার:
- Translate: শেপটিকে X, Y, এবং Z অক্ষের চারপাশে স্থানান্তর করার জন্য ব্যবহৃত হয়।
- Rotate: শেপটিকে ঘোরানোর জন্য ব্যবহৃত হয়। ঘূর্ণন সাধারনত X, Y, এবং Z অক্ষের চারপাশে হতে পারে।
- Scale: শেপটির আকার পরিবর্তন করার জন্য ব্যবহৃত হয়।
JavaFX 3D Shapes এর সুবিধা:
- ব্যক্তিগতকৃত গ্রাফিক্স: JavaFX আপনাকে 3D শেপ তৈরি এবং কাস্টমাইজ করার সুযোগ দেয়।
- থ্রিডি অ্যানিমেশন: 3D শেপগুলির সঙ্গে সহজে অ্যানিমেশন যোগ করা যায়।
- এন্টারপ্রাইজ এবং গেমস: JavaFX 3D গ্রাফিক্স সরঞ্জামগুলির মাধ্যমে গেম বা অন্যান্য 3D ভিজ্যুয়ালাইজেশন অ্যাপ্লিকেশন তৈরি করা যায়।
- Transformations: 3D শেপগুলির সাথে নানা ধরনের পরিবর্তন (স্থানান্তর, ঘূর্ণন, আকার) সহজেই করা যায়।
সারাংশ:
JavaFX 3D Shapes (Box, Cylinder, Sphere) এবং তাদের Transformations (যেমন Translate, Rotate, Scale) ব্যবহার করে আপনি 3D গ্রাফিক্স তৈরি করতে পারেন এবং তাদের বিভিন্ন ধরণের পরিবর্তন করতে সক্ষম হবেন। এই ফিচারগুলি গ্রাফিক্যাল অ্যাপ্লিকেশনগুলিতে সুন্দর এবং ইন্টারঅ্যাকটিভ 3D ভিজ্যুয়াল উপাদান তৈরি করতে সাহায্য করে।
JavaFX Camera এবং Lighting হল JavaFX গ্রাফিক্যাল ইউজার ইন্টারফেসে 3D গ্রাফিক্স তৈরি এবং উপস্থাপন করার জন্য ব্যবহৃত শক্তিশালী টুলস। 3D গ্রাফিক্সে সঠিক ক্যামেরা অ্যাঙ্গেল এবং আলো ব্যবহারের মাধ্যমে আপনি একটি জটিল দৃশ্য তৈরি করতে পারেন। JavaFX 3D সাপোর্ট দিয়ে আপনি বাস্তবসম্মত দৃশ্য এবং ভিজ্যুয়াল উপাদান তৈরি করতে পারেন।
JavaFX 3D Camera এবং Lighting
JavaFX-এর 3D গ্রাফিক্স ব্যবস্থাপনায় আপনি Camera এবং Lighting ব্যবহার করে 3D দৃশ্যগুলি তৈরি এবং সেগুলি আরও বাস্তবসম্মত এবং ইন্টারঅ্যাকটিভ করে তুলতে পারেন। এখানে Camera দৃশ্যের ভিউয়ের জন্য এবং Lighting দৃশ্যের আলোর জন্য ব্যবহৃত হয়।
1. Camera in JavaFX
Camera হল JavaFX-এর 3D দৃশ্যে দেখানোর জন্য ব্যবহৃত একটি অবজেক্ট। আপনি বিভিন্ন ধরনের ক্যামেরা ব্যবহার করতে পারেন, যেমন:
- PerspectiveCamera: এটি দৃশ্যকে 3D প্রক্ষেপণে (projection) দেখায়, যাতে দূরত্ব, গভীরতা এবং স্কেলিং বাস্তবসম্মতভাবে দেখা যায়।
- ParallelCamera: এটি 3D দৃশ্যকে একে অপরের সমান্তরালে দেখায় (orthogonal projection) এবং এটি 3D বস্তুগুলির মাপ পরিবর্তন করে না।
PerspectiveCamera উদাহরণ:
import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Box;
import javafx.stage.Stage;
public class CameraExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি 3D বক্স তৈরি করা
Box box = new Box(100, 100, 100); // সাইজ (100, 100, 100)
box.setTranslateX(200);
box.setTranslateY(200);
box.setTranslateZ(0);
// PerspectiveCamera তৈরি করা
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500); // ক্যামেরা পিছনে সরানো
camera.setTranslateY(-200); // ক্যামেরা কিছুটা নীচে রাখা
// 3D সীন তৈরি করা
Group root = new Group();
root.getChildren().add(box);
// Scene তৈরি করা
Scene scene = new Scene(root, 600, 400, true);
scene.setFill(Color.LIGHTGRAY); // ব্যাকগ্রাউন্ড রঙ
// ক্যামেরা সন্নিবেশ করা
scene.setCamera(camera);
// Stage সেট করা
primaryStage.setTitle("JavaFX Camera Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- PerspectiveCamera: ক্যামেরা
trueহিসাবে ইনিশিয়ালাইজ করা হয়েছে, যার ফলে এটি পারস্পেকটিভ ভিউ প্রদান করবে, এবং 3D বক্সটি ক্যামেরার সামনে এবং পিছনে দৃশ্যমান হবে। - Box: একটি 3D বক্স তৈরি করা হয়েছে এবং ক্যামেরার জন্য দৃশ্যমান করা হয়েছে।
2. Lighting in JavaFX
JavaFX এ Lighting দৃশ্যের আলো কাস্টমাইজ করতে ব্যবহৃত হয়। JavaFX মূলত তিন ধরনের আলো প্রদান করে:
- AmbientLight: এই আলো দৃশ্যে প্রতিটি উপাদানকে সমানভাবে আলো প্রদান করে, অর্থাৎ, এটি কোনও নির্দিষ্ট স্থান থেকে আসা আলো নয়, বরং একটি সাধারণ পরিবেশ আলো।
- PointLight: এটি একটি পয়েন্ট থেকে নির্গত আলো যা একটি নির্দিষ্ট জায়গা থেকে প্রতিটি জায়গায় আলো ছড়িয়ে দেয়। এই আলো 3D অবজেক্টের উপর কার্যকরী হতে পারে, এবং এই আলোতে
falloffবা ঘনত্বও থাকতে পারে। - DirectionalLight: এটি একটি নির্দিষ্ট দিক থেকে আসা আলো যা সমান্তরাল রশ্মি তৈরি করে।
Lighting Example (PointLight, DirectionalLight, and AmbientLight):
import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Sphere;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
public class LightingExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি 3D ব Sphere তৈরি করা
Sphere sphere = new Sphere(150);
sphere.setTranslateX(300);
sphere.setTranslateY(200);
sphere.setTranslateZ(0);
// PointLight যোগ করা
PointLight pointLight = new PointLight(Color.RED);
pointLight.setTranslateX(500);
pointLight.setTranslateY(200);
pointLight.setTranslateZ(-100);
// DirectionalLight যোগ করা
DirectionalLight directionalLight = new DirectionalLight(Color.BLUE);
directionalLight.setTranslateX(300);
directionalLight.setTranslateY(-300);
directionalLight.setTranslateZ(-500);
// AmbientLight যোগ করা
AmbientLight ambientLight = new AmbientLight(Color.WHITE);
// 3D সীন তৈরি করা
Group root = new Group();
root.getChildren().addAll(sphere, pointLight, directionalLight, ambientLight);
// Scene তৈরি করা
Scene scene = new Scene(root, 600, 400, true);
scene.setFill(Color.LIGHTGRAY); // ব্যাকগ্রাউন্ড রঙ
// ক্যামেরা সন্নিবেশ করা
PerspectiveCamera camera = new PerspectiveCamera(true);
scene.setCamera(camera);
// Stage সেট করা
primaryStage.setTitle("JavaFX Lighting Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- PointLight: একটি রেড আলো যা একটি নির্দিষ্ট স্থান থেকে ছড়ানো হচ্ছে।
- DirectionalLight: একটি ব্লু আলো যা সমান্তরালভাবে 3D সীনকে আলোকিত করছে।
- AmbientLight: একটি সাদা আলো যা পুরো দৃশ্যকে সমানভাবে আলোকিত করছে।
Lighting Types:
- AmbientLight: সমস্ত জিনিসের উপর একরকম আলো প্রদান করে, যাতে কোনো সঠিক দিক বা অবস্থান থাকে না।
- PointLight: একটি নির্দিষ্ট পয়েন্ট থেকে আলো আসে এবং এটি সব দিকে ছড়িয়ে পড়ে।
- DirectionalLight: একটি নির্দিষ্ট দিক থেকে আলো আসছে যা সমান্তরাল রশ্মি তৈরি করে।
3. Combining Camera and Lighting
JavaFX-এ ক্যামেরা এবং আলোর একত্রে ব্যবহার করে আপনি একটি পূর্ণাঙ্গ 3D দৃশ্য তৈরি করতে পারেন। আপনি ক্যামেরার অবস্থান এবং আলোর উৎস অনুযায়ী দৃশ্যের দৃষ্টিভঙ্গি এবং আলো কাস্টমাইজ করতে পারেন।
Combing Camera and Lighting Example:
import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Cylinder;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
public class CameraAndLightingExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি সিলিন্ডার তৈরি করা
Cylinder cylinder = new Cylinder(50, 200);
cylinder.setTranslateX(250);
cylinder.setTranslateY(200);
cylinder.setTranslateZ(0);
// PointLight তৈরি করা
PointLight pointLight = new PointLight(Color.GREEN);
pointLight.setTranslateX(300);
pointLight.setTranslateY(100);
pointLight.setTranslateZ(-100);
// DirectionalLight তৈরি করা
DirectionalLight directionalLight = new DirectionalLight(Color.YELLOW);
directionalLight.setTranslateX(-200);
directionalLight.setTranslateY(-200);
directionalLight.setTranslateZ(-300);
// 3D সীন তৈরি করা
Group root = new Group();
root.getChildren().addAll(cylinder, pointLight, directionalLight);
// Scene তৈরি এবং সেট করা
Scene scene = new Scene(root, 600, 400, true);
scene.setFill(Color.LIGHTBLUE); // ব্যাকগ্রাউন্ড রঙ
// PerspectiveCamera তৈরি করা
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-500); // ক্যামেরাকে পিছনে নিয়ে যাওয়া
scene.setCamera(camera);
// Stage সেট করা
primaryStage.setTitle("JavaFX Camera and Lighting Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
এখানে কী হচ্ছে?
- Cylinder: একটি 3D সিলিন্ডার তৈরি করা হয়েছে এবং ক্যামেরার সামনে স্থাপন করা হয়েছে।
- PointLight এবং DirectionalLight: 3D সিলিন্ডারটির উপর আলো প্রয়োগ করা হয়েছে, যেখানে একটি পয়েন্ট আলো এবং একটি দিকনির্দেশক আলো দেওয়া হয়েছে।
সারাংশ:
- Camera এবং Lighting JavaFX 3D গ্রাফিক্সের দুটি অত্যন্ত গুরুত্বপূর্ণ উপাদান। Camera ব্যবহার করে দৃশ্যের ভিউ এবং প্রেক্ষাপট নিয়ন্ত্রণ করা যায়, এবং Lighting ব্যবহার করে দৃশ্যে আলোর অবস্থান, ধরণ এবং প্রভাব নিয়ন্ত্রণ করা যায়।
- Lighting আপনাকে আপনার 3D গ্রাফিক্সকে আরও বাস্তবসম্মত এবং দৃশ্যমান করতে সহায়তা করে, এবং Camera ব্যবহার করে আপনি দৃশ্যের বিভিন্ন দিক বা কোণ থেকে দেখতে পারেন।
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