TEXTO_GLUT

Post on 25-Dec-2015

221 views 4 download

description

Como emplear la libreria OpenGl

Transcript of TEXTO_GLUT

COMPUTACIÓN GRÁFICA

TEXTOENOPENGL

Integrantes:Montes Hirata Daniel Yoshiro

Olvera Oliva Yosimar

¿Cómo¿Cómo sese dibujadibuja textotexto concon GLUT? GLUT?

• El manejo de fuentes de texto esEl manejo de fuentes de texto es una de lasuna de las partes débilespartes débiles de OpenGL. de OpenGL. Su Su implementaciónimplementación eses complicada ya que la complicada ya que la biblioteca GLbiblioteca GL sósólo proporciona funcionesproporciona funciones muy muy primitivas pprimitivas para trazado detrazado de bitmaps que bitmaps que obligan obligan a da disponer deuna librería propia deuna librería propia de bitmaps caracteres.bitmaps caracteres.

Funciones

• GLUT resuelve un poco el dilema de usar texto enOpenGL. glutBitmapCharacter que traza un único carácter en la posición especificada por glRasterPos drawString() y drawStringBig() que facilitan el texto en OpenGL al trazar cadenas de caracteres.

Bitmap font

• Qué es una Bitmap font.?Una Bitmap Font, o fuente Bitmap es unafuente como las del Word ( "Times NewRoman", ... ), es decir, un juego decaracteres en que cada carácter solo es untrazo de un color. Esto en cuanto aWindows.

• glutBitmapCharacter(*font vacío, carácter interno);

Traza un único carácter en la posición especificada.Es decir,glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, s[i]); //tipo de letra y texto a mostrarglutStrokeCharacter(*font vacío, carácter interno);

Bitmap font

• Una fuente de mapa de bits es básicamente• un tipo de letra en 2D• - No espesor• - no se pueden rotar• - Solo se trasladan• glutBitmapCharacter()

Sintaxis

• void glutBitmapCharacter(void *font,int character)Parameters:font - el nombre de la fuente a utilizarcharacter - una letra, símbolo, elnúmero, etc

• Llamada a la función glutBitmapCharacter con salida aun único carácter en la posición actual:glutBitmapCharacter(GLUT_HELVETICA_18,'3');La posición se puede establecer con la funciónglRasterPosvoid glRasterPos2f(float x, float y);void glRasterPos3f(float x, float y, float z); voidglRasterPos2f(float x, float y);Parámetros:x, y, z - coordenadas locales para que aparezca el texto

• La siguiente función hace una cadena a partir de laposición especificada de tramavoid renderBitmapString( float x, float y, float z,void *font, char *string) {char *c;glRasterPos3f(x, y,z);for (c=string; *c != '\0'; c++) {glutBitmapCharacter(font, *c);}}

Función que devuelve el ancho de un carácter.int glutBitmapWidth(void *font, int character);Parametros:font – una de las Fuentes predefinidas en GLUTcharacter – el carácter del cual deseamos saber

el ancho

• Las opciones disponibles para la fuente son:• GLUT_BITMAP_8_BY_13• GLUT_BITMAP_9_BY_15• GLUT_BITMAP_TIMES_ROMAN_10• GLUT_BITMAP_TIMES_ROMAN_24• GLUT_BITMAP_HELVETICA_10• GLUT_BITMAP_HELVETICA_12• GLUT_BITMAP_HELVETICA_18

• Escribe una cadena con una cierta cantidad• de píxeles entre cada carácter• void renderSpacedBitmapString( float x, float• y, int spacing, void *font, char *string) {• char *c; int x1=x;• for (c=string; *c != '\0'; c++) {• glRasterPos2f(x1,y);• glutBitmapCharacter(font, *c);• x1 = x1 + glutBitmapWidth(font,*c) +• spacing;• }• }