كيف يمكنني استخدام glutbitmapsttring () في C ++ لرسم النص إلى الشاشة؟

StackOverflow https://stackoverflow.com/questions/544079

  •  23-08-2019
  •  | 
  •  

سؤال

أحاول رسم نص إلى الشاشة باستخدام خطأ في 2D.

أريد استخدام glutbitmpapsttring ()، هل يمكن لشخص ما أن يرني لي مثالا بسيطا على ما عليك القيام به لإعداد هذه الطريقة واستخدام هذه الطريقة بشكل صحيح في C ++ حتى أتمكن من رسم سلسلة تعسفية في موقف (x، y)؟

glutBitmapString(void *font, const unsigned char *string); 

أنا أستخدم Linux، وأنا أعلم أنني بحاجة إلى إنشاء كائن خط، على الرغم من أنني لست متأكدا من كيفية ويمكنني تزويده بالسلسلة كجزء الثاني. ومع ذلك، كيف يمكنني أيضا تحديد موقف X / Y؟

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

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

المحلول

يجب عليك استخدام glRasterPos لتعيين وضع النقطية قبل الاتصال glutBitmapString(). وبعد لاحظ أن كل مكالمة إلى glutBitmapString() تقدم الموقف النقطي، لذلك ستطبع العديد من المكالمات المتتالية من الأوتار واحدة تلو الأخرى. يمكنك أيضا تعيين لون النص باستخدام glColor(). وبعد مجموعة الخطوط المتاحة مدرجة هنا.

// Draw blue text at screen coordinates (100, 120), where (0, 0) is the top-left of the
// screen in an 18-point Helvetica font
glRasterPos2i(100, 120);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "text to render");

نصائح أخرى

إضافة إلى إجابة آدم،

glColor4f(0.0f, 0.0f, 1.0f, 1.0f);  //RGBA values of text color
glRasterPos2i(100, 120);            //Top left corner of text
const unsigned char* t = reinterpret_cast<const unsigned char *>("text to render");
// Since 2nd argument of glutBitmapString must be const unsigned char*
glutBitmapString(GLUT_BITMAP_HELVETICA_18,t);

الدفع https://www.opengl.org/resources/libraries/glut/spec3/node76.html. لمزيد من خيارات الخط

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