Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

JavaFXطريقة رسم شكل مغلق

الكلاس Polygon يستخدم لبناء شكل مغلق يتكون من مجموعة نقاط متصلة ببعضها لذلك يمكنك الإستفادة منه عند الحاجة لرسم شكل خاص مثل مثلث, شكل هندسي معين, خريطة بلد معين إلخ..
الفكرة هنا أنك تنطلق من نقطة معينة, بعدها كل نقطة تضيفها على الشكل يتم ربطها بالنقطة التي قبلها, و في النهاية يتم ربط آخر نقطة تم إضافتها بشكل تلقائي مع أول نقطة تم وضعها حتى يتم إغلاق الشكل.


المثال التالي يعلمك طريقة رسم مثلث, إعطاؤه لون و إضافته في النافذة.

مثال

Main.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
// يمثل الشكل المغلق - في حالتنا نقصد المثلث - الذي نريد إضافته في النافذة Polygon هنا قمنا بإنشاء كائن من الكلاس
Polygon polygon = new Polygon();
// في النافذة و التي ستمثل الشكل النهائي عندما يتم وصلها polygon هنا قمنا بتمرير مصفوفة أرقام تمثل مكان كل نقطة سنضعها للكائن
// للنقطة y للنقطة. القيمة الثاني تمثل قيمة الـ x كل سطر في هذه المصفوفة يمثل نقطة واحدة في الشكل الذي نريد رسمه, القيمة الأولى تمثل قيمة الـ
polygon.getPoints().addAll(
100.0, 200.0, // هذه نقطة البداية التي وضعناها في الأسفل ناحية اليسار
200.0, 50.0, // هذه النقطة الثانية التي وضعناه في الأعلى و في وسط النافذة
300.0, 200.0 // هذه النقطة الأخيرة التي وضعناها في الأسفل ناحية اليسار
);
// إلى اللون الأزرق و حددنا أن لون حدوده هو الأسود polygon هنا قمنا بتغيير لون الكائن
polygon.setFill(Color.CADETBLUE);
polygon.setStroke(Color.BLACK);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root في الكائن polygon هنا قمنا بإضافة الكائن
root.getChildren().add(polygon);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX Polygon");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // يمثل الشكل المغلق - في حالتنا نقصد المثلث - الذي نريد إضافته في النافذة Polygon هنا قمنا بإنشاء كائن من الكلاس Polygon polygon = new Polygon(); // في النافذة و التي ستمثل الشكل النهائي عندما يتم وصلها polygon هنا قمنا بتمرير مصفوفة أرقام تمثل مكان كل نقطة سنضعها للكائن // للنقطة y للنقطة. القيمة الثاني تمثل قيمة الـ x كل سطر في هذه المصفوفة يمثل نقطة واحدة في الشكل الذي نريد رسمه, القيمة الأولى تمثل قيمة الـ polygon.getPoints().addAll( 100.0, 200.0, // هذه نقطة البداية التي وضعناها في الأسفل ناحية اليسار 200.0, 50.0, // هذه النقطة الثانية التي وضعناه في الأعلى و في وسط النافذة 300.0, 200.0 // هذه النقطة الأخيرة التي وضعناها في الأسفل ناحية اليسار ); // إلى اللون الأزرق و حددنا أن لون حدوده هو الأسود polygon هنا قمنا بتغيير لون الكائن polygon.setFill(Color.CADETBLUE); polygon.setStroke(Color.BLACK); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن polygon هنا قمنا بإضافة الكائن root.getChildren().add(polygon); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX Polygon"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }

ستظهر لك النافذة التالية عند التشغيل.

مثال حول الكلاس Polygon في javafx