سؤال

أنا أكتب بسيطة OpenGL التطبيق الذي يستخدم GLUT.لا أرغب في إنشاء كود عرض الخط الخاص بي، وبدلاً من ذلك أريد استخدام الخطوط النقطية البسيطة التي تأتي معها GLUT.ما هي الخطوات لجعلهم يعملون؟

هل كانت مفيدة؟

المحلول

من السهل إجراء عرض نص بسيط في OpenGL باستخدام خطوط GLUT النقطية.هذه خطوط بسيطة ثنائية الأبعاد وهي لا مناسبة للعرض داخل البيئة ثلاثية الأبعاد الخاصة بك.ومع ذلك، فهي مثالية للنص الذي يجب أن يتم تراكبه على نافذة العرض.

فيما يلي الخطوات النموذجية لعرض الاقتباس المفضل لإريك كارتمان الملون باللون الأخضر على نافذة GLUT:

سنقوم بتعيين موضع البيانات النقطية في إحداثيات الشاشة.لذلك، قم بإعداد مصفوفات الإسقاط وعرض النماذج للعرض ثنائي الأبعاد:

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0.0, WIN_WIDTH, 0.0, WIN_HEIGHT);

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

ضبط لون الخط.(اضبط هذا الآن، وليس لاحقًا.)

glColor3f(0.0, 1.0, 0.0); // Green

قم بتعيين موقع النافذة حيث يجب عرض النص.ويتم ذلك عن طريق تحديد موضع البيانات النقطية في إحداثيات الشاشة.الزاوية اليسرى السفلية من النافذة هي (0، 0).

glRasterPos2i(10, 10);

قم بتعيين الخط وعرض أحرف السلسلة باستخدام glutBitmapCharacter.

string s = "Respect mah authoritah!";
void * font = GLUT_BITMAP_9_BY_15;
for (string::iterator i = s.begin(); i != s.end(); ++i)
{
    char c = *i;
    glutBitmapCharacter(font, c);
}

استعادة المصفوفات مرة أخرى.

glMatrixMode(GL_MODELVIEW);
glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top