2007/09/29

Reporte Practica 6

Reporte práctica 6

1.- Escriba un programa que lea un archivo de texto plano (.txt) y lo transforme a caracteres
dibujados (stroke) y dibuje dicho texto en pantalla.

-El texto se debe mostrar con un efecto de deslizamiento (scroll) de abajo hacia arriba
(Estilo entrada de Star Wars). Usar el callback glutIdleFunc, glutSwapBuffers y el parámetro
GLUT_DOUBLE. Explique cómo y dónde se usan estas funciones y constante.



Archivos de texto:
texto.txt
archivo.txt

void leeArchivo (void){
FILE *f;
char c;
int i=1, a=0, b=0, d=0;
if (variable.tempo == 3)
f=fopen("texto.txt","r");
else
f=fopen("archivo.txt","r");
c=fgetc(f);
variable.temporal[0] = c;
while (c!=EOF){
c=fgetc(f);
variable.temporal[i] = c;
i++;
}
fclose(f);
variable.temporal[i-1] = '\0';
for (a=0;a<=19;a++)
for (b=0;b<=19;b++){
variable.buffer[a][b]=variable.temporal[d];
d++;
}
}

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

glPushMatrix();
glRotatef(variable.reduce, 1,0,0);
glPushMatrix();
glColor3f( 0.0f, 1.0f, 0.0f);
glScalef ( 0.70f, 0.70f, 0.70f);
variable.tempo = 3;
leeArchivo();
glTranslatef( -1050, variable.transladatexto, 0.0);
glPushMatrix();
for (i=0;i<13;i++){
imprimeCadenaStroke ( 0, 0, 0,variable.buffer[i]);
glScalef ( variable.reduce, variable.reduce, 1.0);
glTranslatef(-2095,120,0);
glScalef ( variable.reduce, variable.reduce, 1.0);
}
glPopMatrix();
glPopMatrix();
glPopMatrix();
break;

2.- Escriba un programa que, dada una cadena de entrada, dibuje en forma desordenada los caracteres en la
ventana y los vaya trasladando y ordenando hasta mostrar la cadena correcta.

No hay comentarios: