Vincenzoflaminio
18-04-2011, 16:04
Salve ragazzi , ho bisogno del vostro aiuto.
Devo scrivere un programma che disegni una stella a 5 punte. So disegnare quadrati , triangoli e poligoni con le apposite funzioni (GL_TRIANGLE_FAN) , GL_POLYGON) ecc.. ma non so come si fa una stella. Inoltre :
Utilizzando le callback per la tastiera, la stella deve:
– ruotare su sé stessa,
– cambiare dimensioni,
– spostarsi all’interno della finestra.
Se utilizzo la function:
GLvoid keyboard( GLubyte key, GLint x, GLint y )
{
switch (key) {
case '>':
/* … cambia dimensioni …*/
break;
glutPostRedisplay();
case ' ':
/* … ruota su te stessa …*/
glutPostRedisplay();
break;
case 's':
/* … spostati nel quadro …*/
glutPostRedisplay();
break;
Per spostare nel riquadro la stella (supponiamo ke sia una linea xke non so come si fa una stella) potrei utilizzare una cosa del genere che ha effetto ad ogni qual volta premo il tasto grazie alla glutPostRedisplay() sopra :
void disegno( void )
{
int i;
float x, y;
glClear( GL_COLOR_BUFFER_BIT );
glBegin( GL_LINE_LOOP );
for (i=0; i<N ; i++)
{
x=(float)rand()/RAND_MAX;
y=(float)rand()/RAND_MAX;
glVertex2f(x , y);
}
glEnd();
glFlush();
}
Restano ruotare e cambiare dimensioni che non so fare...
Devo scrivere un programma che disegni una stella a 5 punte. So disegnare quadrati , triangoli e poligoni con le apposite funzioni (GL_TRIANGLE_FAN) , GL_POLYGON) ecc.. ma non so come si fa una stella. Inoltre :
Utilizzando le callback per la tastiera, la stella deve:
– ruotare su sé stessa,
– cambiare dimensioni,
– spostarsi all’interno della finestra.
Se utilizzo la function:
GLvoid keyboard( GLubyte key, GLint x, GLint y )
{
switch (key) {
case '>':
/* … cambia dimensioni …*/
break;
glutPostRedisplay();
case ' ':
/* … ruota su te stessa …*/
glutPostRedisplay();
break;
case 's':
/* … spostati nel quadro …*/
glutPostRedisplay();
break;
Per spostare nel riquadro la stella (supponiamo ke sia una linea xke non so come si fa una stella) potrei utilizzare una cosa del genere che ha effetto ad ogni qual volta premo il tasto grazie alla glutPostRedisplay() sopra :
void disegno( void )
{
int i;
float x, y;
glClear( GL_COLOR_BUFFER_BIT );
glBegin( GL_LINE_LOOP );
for (i=0; i<N ; i++)
{
x=(float)rand()/RAND_MAX;
y=(float)rand()/RAND_MAX;
glVertex2f(x , y);
}
glEnd();
glFlush();
}
Restano ruotare e cambiare dimensioni che non so fare...