Professional Documents
Culture Documents
14-01-Trần Thu Hà
14-01-Trần Thu Hà
14-01-Trần Thu Hà
#include <glut.h>
#include<math.h>
void drawSquare() {
glBegin(GL_QUADS);
glVertex2f(-0.5, -0.5);
glVertex2f(0.5, -0.5);
glVertex2f(0.5, 0.5);
glVertex2f(-0.5, 0.5);
glEnd();
}
void drawTriangle() {
glBegin(GL_TRIANGLES);
glVertex2f(0.0, 0.5);
glVertex2f(-0.5, -0.5);
glVertex2f(0.5, -0.5);
glEnd();
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
// Vẽ các hình
glColor3f(1.0, 0.0, 1.0); // Đặt màu tím cho hình vuông
glTranslatef(-0.5, 0.0, 0.0);
drawSquare();
glColor3f(1.0, 1.0, 0.0); // Đặt màu vàng cho hình tam giác
glTranslatef(1.0, 0.0, 0.0);
drawTriangle();
glutSwapBuffers();
}
void initialize() {
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
gluOrtho2D(-2.0, 2.0, -2.0, 2.0);
}
initialize();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Bài 2:
#include <glut.h>
#include<math.h>
void display() {
GLfloat step = 3.14 / 5;
register int i;
GLfloat angle, r;
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glBegin(GL_POLYGON);
glColor3f(0.0, 0.0, 1.0);
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
r = 2;
}
else {
r = 8;
}
angle = i * step;
glVertex3f(r * cos(angle), r * sin(angle), 0.0);
}
/*
glColor3f(1.0, 0.5, 0.0);
glBegin(GL_POLYGON);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(0.25, 0.25, 0.0);
glVertex3f(0.25, 0, 0.0);
glVertex3f(0.75, 0, 0.0);
glVertex3f(0.75, 0.25, 0.0);
*/
glEnd();
glBegin(GL_LINE_LOOP);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glColor3f(0.0, 1.0, 0.0);
glLineWidth(3.0);
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
r = 5;
}
else {
r = 15;
}
angle = i * step;
glVertex3f(r * cos(angle), r * sin(angle), 0.0);
}
glEnd();
glFlush();
}
void init(void) {
glClearColor(0.0, 0.0, 0.0, 0.0);
glOrtho(-15.0, 15.0, -15.0, 15.0, -1.0, 1.0);
}
int main(int argc, char* argv[]) {
//Khởi đầu thư viện glut, có thể không dùng lệnh này nếu chưa cần
glutInit(&argc, argv);
//Tạo cửa sổ, tiêu đề là: Dau tien!
glutInitWindowSize(500, 500);
glutCreateWindow("Dau tien!");
init();
//Đă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();
}
Bài 3:
#include <glut.h>
#include <cmath>
#define PI 3.14159265
void display() {
glBegin(GL_LINES);
for (int i = 0; i <= 360; i += 10) {
float angle = i * PI / 180;
float x = cos(angle);
float y = sin(angle);
glColor3f((float)i / (100/255), (float)i / 180, (float)i / 360);
glVertex2f(0.0f, 0.0f);
glVertex2f(x, y);
}
glEnd();
glFlush();
}