كيفية تقديم دائرة في OpenGL

مؤلف: Ellen Moore
تاريخ الخلق: 13 كانون الثاني 2021
تاريخ التحديث: 1 ديسمبر 2024
Anonim
Drawing a circle with OpenGL :: OpenGL and GLSL with C++ :: lesson 6
فيديو: Drawing a circle with OpenGL :: OpenGL and GLSL with C++ :: lesson 6

المحتوى

OpenGL ، أو Open Graphics Library ، هي واجهة برمجة تطبيقات رسومية (واجهة برمجة التطبيقات) لكتابة التطبيقات ثنائية وثلاثية الأبعاد بعدة لغات ومنصات برمجة. يمكن استخدامه لتقديم أي شيء من الكائنات البسيطة والبدائية إلى المشاهد ثلاثية الأبعاد المعقدة. يستخدم Open GL على نطاق واسع في التصميم المحوسب والتصور العلمي ومحاكاة الطيران وألعاب الفيديو. حتى إذا لم يكن لدى OpenGl طرق لرسم دائرة مباشرة ، فمن الممكن إنشاء واحدة باستخدام سلسلة من الخطوط. ستحتاج إلى معرفة أساسية لبرنامج OpenGL لرسم الدائرة.


الاتجاهات

لا توجد طريقة مباشرة لإنشاء دائرة في OpenGL ، ولكن لا يزال من الممكن إنشاء واحدة بالسطر الصحيحة من التعليمات البرمجية (Creatas / Creatas / Getty Images)
  1. اصنع برنامجًا أساسيًا باستخدام إطار عرض منفذ OpenGL. إذا لم تكن معتادًا على هذه العملية ، فهناك برنامج تعليمي على صفحة OpenGL.

  2. أضف ملف math.h.header إلى البرنامج بإدخال الكود التالي في بداية البرنامج: #include . سيوفر لك هذا الدالتين cos () و sin () (الجيب وجيب التمام) اللازمين لحساب الدائرة.

  3. ابدأ طريقة الدائرة بإضافة الكود التالي قبل عرض وظيفة رد الاتصال:

    دائرة باطلة (GLint x، GLint y، GLint ray، int num_lines) {}

    سيتم استخدام المتغيرين "x" و "y" لتحديد مركز الدائرة في نافذتك ، في حين أن "الشعاع" يحدد نصف قطر الدائرة. العدد الصحيح "num_lines" هو عدد الخطوط المستخدمة لإنشاء الدائرة. كلما زاد هذا العدد ، كلما كانت الدائرة أكثر سلاسة.


  4. أضف رمز التكوين التالي داخل المفاتيح:

    تعويم زاوية GO int num_lines GO glColor3f (0.0 ، 0.0 ، 0.0) GO.

    سيحتوي "الزاوية" المتغيرة على زاوية الأسطر المستخدمة لإنشاء الدائرة. تعيّن استدعاء دالة glColor3f () لون الخطوط إلى الأسود ، حيث تتطابق سلسلة الثلاثة صفر مع شدة الأحمر والأخضر والأزرق على مقياس من 0 إلى 1.

  5. أضف التعليمات البرمجية التالية أدناه الدالة glColor3f () من الخطوة 4:

    glBegin (GL_LINE_LOOP) GO

    هذا يخبر OpenGL أن أي خطوط لاحقة تنطوي على خطوط رسم. على وجه التحديد ، سوف يرسم "GL_LINE_LOOP" ، وهو عبارة عن سلسلة من الخطوط المتصلة.

  6. أدخل الكود التالي من حلقة إلى بعد استدعاء glBegin ():

    من أجل (int i = 0 ؛ i <num_lines ؛ i ++) {angle = i * 2 * M_PI / num_lines؛ glVertex2f (x + (cos (angle) * radius) و + (بدون (angle) * radius)) ؛ }

    هذا التعادل يفعل ثلاثة أشياء. أولاً ، يتكرر وفقًا لقيمة "num_lines" ، حيث يكون num_lines عددًا صحيحًا ، يرسم خطًا في كل تكرار وينتج عنه دائرة تتكون من num_lines من الخطوط المستقيمة. ثانياً ، قم بحساب زاوية الأسطر بالنسبة إلى مركز الدائرة بالراديان. "M_P" هو ثابت معرف في math.h الذي يمثل pi. أخيرًا ، تحسب استدعاء glVertex2f () إحداثيات نقاط النهاية للصفوف.


  7. بعد الحلقة إلى ، أدخل سطر الكود التالي:

    glEnd () GO

    سيعلم هذا برنامج OpenGL أنك قد انتهيت من رسم الخطوط.

  8. لرسم الدائرة في مشهد ، قم بإضافة مكالمة من طريقة drawCircle () إلى وظيفة رد الاتصال الخاصة بالبرنامج ، والتي يجب إعدادها في الخطوة 1. حدد قيم x و y و radius و a_line ، حيث يمثل x و y نقطة في المشهد الخاص به ، نصف القطر هو نصف قطر الدائرة ، و num_lines هو عدد الخطوط التي تشكل الدائرة. مرة أخرى ، إذا لم تكن معتادًا على برنامج OpenGL وعرض رد الاتصال ، فراجع البرنامج التعليمي لبرنامج OpenGL.

  9. ترجمة وتشغيل البرنامج الخاص بك. إذا أدخلت الوظائف بشكل صحيح ، فيجب أن تترجم دون أخطاء. إذا حددت قيم x و y و radius ، فستشاهد دائرة سوداء معروضة على خلفية بيضاء.

ما تحتاجه

  • كمبيوتر مع دعم OpenGL
  • محرر نصوص وأدوات مترجم لغة C أو بيئة تطوير C