Professional Documents
Culture Documents
BTDHMT
BTDHMT
#include <glut.h>
#include<math.h>
#include<stdlib.h>
int pressedkey;
void SpecialkeyDown(int key, int x, int y){
pressedkey = key;
if (key == GLUT_KEY_END) {
exit(-1);
}
else {
glutPostRedisplay();
}
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
if (pressedkey == GLUT_KEY_LEFT){
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glColor3f(0.0f, 1.0f, 0.0f); //nếu không có lệnh này sẽ lấy màu mặc định
}
}
glBegin(GL_POLYGON);
glVertex2i(25, 25);
glVertex2i(75, 25);
glVertex2i(75, 75);
glVertex2i(25, 75);
glEnd();
glFlush();
}
glutInitWindowSize(250, 250);
glutCreateWindow("Dau tien!");
//Đăng ký hàm hiển thị là display
glutDisplayFunc(display);
//Thực hiện hàm hiển thị là display, lặp vòng chờ sự kiện
glutMainLoop();
}
Câu 2:
#include <glut.h>
#include<math.h>
#include<stdlib.h>
glutInitWindowSize(500, 500);
glutCreateWindow("Dau tien!");
//Đăng ký hàm hiển thị là display
glutDisplayFunc(display);
glutIdleFunc(idle);
gluOrtho2D(-1000.0, 1000.0, -1000.0, 1000.0);
//Thực hiện hàm hiển thị là display, lặp vòng chờ sự kiện
glutMainLoop();
void idle() {
//x0 += 1; x1 += 1; //ok
glutPostRedisplay();
}
void d1() {
glBegin(GL_TRIANGLES);
glVertex2i(x0, -200);
glVertex2i(x1, -200);
glVertex2i(x0, 200);
glEnd();
glFlush();
x0 += 1; x1 += 1;
void d2() {
glBegin(GL_TRIANGLES);
glVertex2i(x2, -200);
glVertex2i(x3, -200);
glVertex2i(x2, 200);
glEnd();
glFlush();
x2 -= 1; x3 -= 1;
void display() {
glClear(GL_COLOR_BUFFER_BIT);
d1();
d2();
glutInitWindowSize(500, 500);
glutCreateWindow("Dau tien!");
//Đăng ký hàm hiển thị là display
glutDisplayFunc(display);
glutIdleFunc(idle);
gluOrtho2D(-1000.0, 1000.0, -1000.0, 1000.0);
//Thực hiện hàm hiển thị là display, lặp vòng chờ sự kiện
glutMainLoop();