TEXTO_GLUT

12
COMPUTACIÓN GRÁFICA TEXTOENOPENGL Integrantes: Montes Hirata Daniel Yoshiro Olvera Oliva Yosimar

description

Como emplear la libreria OpenGl

Transcript of TEXTO_GLUT

Page 1: TEXTO_GLUT

COMPUTACIÓN GRÁFICA

TEXTOENOPENGL

Integrantes:Montes Hirata Daniel Yoshiro

Olvera Oliva Yosimar

Page 2: TEXTO_GLUT

¿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.

Page 3: TEXTO_GLUT

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.

Page 4: TEXTO_GLUT

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.

Page 5: TEXTO_GLUT

• 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);

Page 6: TEXTO_GLUT

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()

Page 7: TEXTO_GLUT

Sintaxis

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

Page 8: TEXTO_GLUT

• 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

Page 9: TEXTO_GLUT

• 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);}}

Page 10: TEXTO_GLUT

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

Page 11: TEXTO_GLUT

• 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

Page 12: TEXTO_GLUT

• 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;• }• }