minhlap Admin - Quản trị viên
Tổng số bài gửi : 129 Points : 374 Reputation : 5 Join date : 22/07/2009 Age : 34 Đến từ : TP Hồ Chí Minh
| Tiêu đề: dong ho chuan bai cua Thay Sat Dec 12, 2009 6:56 pm | |
| #include #include #include #include "glut.h"
#define pi 3.141592653589 // ------------------------------------- // CAC HAM XU SU KIEN // ------------------------------------- // khoi tao thong so void OnInit(); // ham su kien ve void OnDraw(); // ham su kien nhan phim void OnKey(unsigned char key,int x, int y); void hinhvuong(int x, int y); void hinhtron(int x, int y, int r); void giay (int x, int y, int x1, int y1 ); void phut(int x, int y, int x1, int y1); void gio(int x, int y , int x1,int y1);
void onsize(int w, int h); void VeDongHo(int hh,int mm,int ss); // ------------------------------------- // KHAI BAO CAC HAM VA BIEN // -------------------------------------
int main(int argc, char* argv[]) { // ------------------------------------- // KHOI TAO CUA SO OPENGL // ------------------------------------- // khoi tao tham so cua so glutInit(&argc, argv); // che do hien thi: double buffer va he mau RGB glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); // do rong, cao cua cua so glutInitWindowSize(480, 480); // vi tri bat dau cua so glutInitWindowPosition(0, 0); // tao cua so glutCreateWindow("Bai Mau!"); // ------------------------------------- // CAC THAO TAC XU LY // -------------------------------------
// ------------------------------------- // DANG KY SU KIEN // ------------------------------------- // dang ky su kien ve glutDisplayFunc(OnDraw); glutReshapeFunc(onsize); // dang ky su kien nhan phim glutKeyboardFunc(OnKey); glutIdleFunc(OnDraw);
// ------------------------------------- // VONG LAP SU KIEN // ------------------------------------- glutMainLoop();
return 0; }
void OnInit() { // thiet lap mau xoa glClearColor(1.0,1.0,1.0,1.0); }// OnInit
void hinhvuong(int x, int y) { glColor3ub(255,0,255); glBegin(GL_POLYGON); glVertex2i(x,y); glVertex2i(x,-y); glVertex2i(-x, -y); glVertex2i(-x, y); glEnd(); }
void hinhtron(int x, int y, int r) { float xi, yi; int n= 1000; float da= 2*pi/n; glBegin(GL_LINE_LOOP); for(int i=0;i { xi = x + r*cos(i*da); yi = y + r*sin(i*da); glVertex2f(xi,yi); } glEnd(); }
void OnDraw() { // xoa man hinh glClear(GL_COLOR_BUFFER_BIT);
// cac thao tac ve glPushMatrix();
glColor3ub(255,0,0);
time_t now = time(NULL);
tm *pTime = localtime(&now);
glTranslatef(200,200,0); glScalef(50,50,0); VeDongHo(pTime->tm_hour,pTime->tm_min,pTime->tm_sec);
glPopMatrix();
// ket xuat ra man hinh glFlush(); // chuyen tien canh sang hau canh va nguoc lai (double buffer) glutSwapBuffers(); }// Display
void OnKey(unsigned char key,int x, int y) { switch(key) { case 3: // (Ctrl+C) case 27: // (ESC) exit(0); break; }// switch key }// OnKey void onsize(int w, int h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0,w,0,h);
} void gio(int x, int y , int x1, int y1) { glColor3ub(250,0,0);
glBegin(GL_LINES); glVertex2i(x,y); glVertex2i(x1,y1); glEnd(); } void phut(int x, int y, int x1, int y1) {
glColor3ub(250,0,0); glBegin(GL_LINES); glVertex2i(x,y); glVertex2i(x1, y1); glEnd(); }
void giay (int x, int y, int x1, int y1 ) { glColor3ub(250,0,0); glBegin(GL_LINES); glVertex2i(x,y); glVertex2i(x1, y1); glEnd(); }
void VeDongHo(int hh,int mm,int ss) { glPushMatrix();
glColor3f(1,1,1); hinhtron(0,0,1);
for(int i=0;i<12;i++) { glBegin(GL_LINES); glVertex2f(0,1); glVertex2f(0,0.9); glEnd(); glRotatef(30,0,0,1); }
glPushMatrix(); glColor3ub(255,0,0); glRotatef(-hh*(360/12.0),0,0,1); glBegin(GL_LINES); glVertex2f(0,0); glVertex2f(0,0.4); glEnd(); glPopMatrix();
glPushMatrix(); glColor3ub(255,255,0); glRotatef(-mm*(360/60.0),0,0,1); glBegin(GL_LINES); glVertex2f(0,0); glVertex2f(0,0.6); glEnd(); glPopMatrix();
glPushMatrix(); glColor3ub(255,0,255); glRotatef(-ss*(360/60.0),0,0,1); glBegin(GL_LINES); glVertex2f(0,0); glVertex2f(0,0.; glEnd(); glPopMatrix(); glPopMatrix(); }// VeDongHo | |
|