2007/09/24

Previo Practica 6

1.- ¿Cómo se dibuja texto con GLUT?

Utilizando la función glutbitmapCharacter podemos pintar texto bidimencional en un ambiente tridimencionar que no podemos rotar o escalar, no tiene grosor y siempre estara orientado hacia el observador, esto presenta ciertas desventajas pero por otro lado no nos tenemos que preocupar por reorientar el texto cuando hacemos alguna transformación.

Utilizando la función glutStrokeCharacter podemos pintar texto que puede ser rotado, escalado o transladado.

¿Cambia el dibujo de texto en FreeGLUT y OpenGLUT? ¿Por qué?
Si, cambia pues OpenGLUT hereda un pequeño número de fuentes estándar de FreeGLUT y GLUT.

2.- Cómo funcionan y cuántos son los parametros de los comandos:

glutBitmapCharacter();
void glutBitmapCharacter(void *font, int character)

Parametros:

font - El nombre del font a usar
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
character - ASCII a imprimir (va entre comillas simples por ser un entero)

glutStrokeCharacter();
void glutStrokeCharacter(void *font, int character)

Parametros:

font - El nombre del font a usar
GLUT_STROKE_ROMAN
GLUT_STROKE_MONO_ROMAN
character - ASCII a imprimir (va entre comillas simples por ser un entero)

¿En que se diferencian?
stroke puede rotar, escalar o transladar el texto y bitmap no.

3.- Escriba un programa que dibuje su nombre y numero de cuenta en la pantalla.

imprimeCadenaBitmap (-95,0,0,"Alberto Bobadilla");
glColor3f( 0.0f, 1.0f, 0.0f);
glScalef( 0.15f, 0.15f, 0.15f);
imprimeCadenaStroke (0,0,0,"99036568");

void imprimeCadenaBitmap(float x, float y, float z, char *string) {
char *c;
glRasterPos3f( x, y, z);
for (c=string; *c != '\0'; c++) {
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, *c);
}
}
void imprimeCadenaStroke(float x, float y, float z, char *string) {
char *c;
glRasterPos3f( x, y, z);
for (c=string; *c != '\0'; c++) {
glutStrokeCharacter(GLUT_STROKE_MONO_ROMAN, *c);
}
}

No hay comentarios: