السلام عليكم ورحمة الله وبركاته،
أقدم لكم هذا المشروع الذي يعرض خبرتي العملية في مجال **الرسوميات الحاسوبية (Computer Graphics)** باستخدام مكتبة OpenGL ولغة C++. يهدف المشروع إلى تطبيق المفاهيم الأساسية في الرسوميات الحاسوبية مثل رسم الأشكال الهندسية وتنفيذ التحويلات الثنائية والثلاثية الأبعاد.
- آلية التنفيذ والعمل المنجز:
-- إعداد بيئة العمل وبرمجة الرسوميات:
بدأت المشروع باستخدام مكتبة **OpenGL** مع مكتبة **GLUT** لإنشاء نافذة رسومية تتيح عرض العناصر الهندسية ومعالجتها. تم إعداد بيئة الرسم باستخدام الدوال الأساسية مثل:
* تهيئة نافذة العرض
* تحديد نظام الإحداثيات
* إدارة الـ Rendering Loop
- رسم الأشكال الهندسية الأساسية:
قمت بتنفيذ عدة برامج لرسم أشكال هندسية باستخدام OpenGL مثل:
* رسم نقاط متعددة باستخدام `GL_POINTS`
* رسم خطوط مستقيمة باستخدام `GL_LINES`
* رسم مثلثات باستخدام `GL_TRIANGLES`
* إنشاء أشكال مركبة مثل النجمة والأسهم والأشكال الهندسية المختلفة
تم تحديد إحداثيات كل شكل باستخدام الدالة `glVertex` وتحديد الألوان باستخدام `glColor`.
- تنفيذ التحويلات الثنائية الأبعاد (2D Transformations):
كجزء من المشروع، قمت بتطبيق التحويلات الأساسية على الأشكال ثنائية الأبعاد مثل:
* Translation (نقل الشكل من موقع لآخر)
* Rotation (تدوير الشكل حول محور)
* Scaling (تكبير أو تصغير الشكل)
* Reflection (انعكاس الشكل)
* Shearing (تشويه الشكل)
تم تنفيذ هذه العمليات باستخدام الدوال الرسومية مثل `glTranslate`, `glRotate`, و `glScale`.
-تنفيذ التحويلات ثلاثية الأبعاد (3D Transformations):
قمت أيضًا بتطبيق نفس المفاهيم على مجسمات ثلاثية الأبعاد مثل **الهرم (Pyramid)**، حيث تم تنفيذ:
* Translation ثلاثي الأبعاد
* Rotation ثلاثي الأبعاد
* Scaling ثلاثي الأبعاد
* Reflection
* Shearing
مما يوضح كيفية التحكم في المجسمات داخل الفضاء ثلاثي الأبعاد.
-تنظيم الكود والتطبيق العملي:
تم تقسيم البرامج إلى ملفات منفصلة لكل نوع من العمليات، بحيث يوضح كل برنامج مفهومًا محددًا من مفاهيم الرسوميات الحاسوبية.
- النتائج:
نتج عن المشروع مجموعة من التطبيقات الرسومية التي توضح كيفية استخدام OpenGL لرسم الأشكال الهندسية وتنفيذ التحويلات المختلفة عليها. يبرز المشروع فهمي لأساسيات **Computer Graphics** وكيفية التعامل مع الإحداثيات والتحويلات في البيئات الرسومية.
- المهارات والأدوات المستخدمة:
* Computer Graphics Programming
* OpenGL
* GLUT Library
* C++ Programming
* 2D Transformations
* 3D Transformations
* Geometry Rendering