Professional Documents
Culture Documents
OpenGL
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ
ΕΚΠΑΙΔΕΥΤΗΣ
ΙΩΑΝΝΙΔΟΥ ΕΙΡΗΝΗ
ΑΣΚΗΣΗ 1
Α. Ποια είναι η απαραίτητη βιβλιοθήκη που πρέπει να συμπεριληφθεί στον παρακάτω κώδικα; Να
συμπληρωθεί πάνω στον κώδικα.
B. Ποιο είναι το αποτέλεσμα μετά το compile & run του παρακάτω κώδικα;
//
glutInit(&argc,argv);
glutInitWindowPosition(50,50);
//
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutCreateWindow("Welcome to OpenGL");
//
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0,50,0,50);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
B. Ποια είναι η λειτουργία των εντολών που επισημαίνονται με κόκκινο χρώμα; Σημειώστε την απάντηση
σας στα αντίστοιχα «//».
Γ. Τροποποιείστε τον παραπάνω κώδικα ώστε το αποτέλεσμα σας να φαίνεται όπως το παρακάτω σχήμα:
ΑΣΚΗΣΗ 2
Α. Ποιο θα το αποτέλεσμα του παρακάτω κώδικα μετά το compile & run;
#include <GL/glut.h>
void display()
{
glClearColor(1,1,1,0);
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glColor3ub(0,0,255);
glVertex2i(0,0);
glColor3ub(0,0,255);
glVertex2i(10,0);
glVertex2i(5,10);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitWindowPosition(0,50);
glutInitWindowSize(440,380);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("Welcome to OpenGL");
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10,20,-10,20);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Β. Ποιος είναι ο ρόλος των εντολών που έχουν επισημανθεί με κόκκινο χρώμα;
Γ. Τροποποιείστε τον κώδικα ώστε να εμφανίσετε το αποτέλεσμα της παρακάτω εικόνας:
Β. Τροποποιείστε τον κώδικα σας έτσι ώστε το σχήμα να μετακινηθεί όπως φαίνεται παρακάτω:
Γ. Προσθέστε στον κώδικα σας την παρακάτω συνάρτηση και εξηγήστε ποια η λειτουργία της:
Συνάρτηση:
void keyboard(unsigned char key,int x, int y)
{
if (key=='w')
{
//ΜΕΤΑΚΙΝΗΣΗ ΚΟΥΤΙΟΥ
glutPostRedisplay();
}
}
E. Τροποποιείστε τον κώδικα ώστε η μετακίνηση να γίνεται και με το πάτημα του κουμπιού κεφαλαίου
«W» αντί μόνο μικρού.
Ζ. Προσθέστε έλεγχο για είσοδο του πλήκτρου .Τροποποιείστε τον κώδικα σας έτσι ώστε με το πάτημα του
πλήκτρου προς τα πάνω ( ) το σχήμα να μετακινείται κατά 5 προς τα επάνω, ενώ με το πάτημα του