User:Sween69

//A134703(TR)

#include  //fail header OpenGL

static GLfloat rotat=3.0; static GLint rotatq=0.5;

//mewujudkan method void init(void); void display(void); void reshape(int w, int h); void spindisplay(void); void mouse(int button, int state, int x, int y);

int main(int argc, char **argv) //fungsi utama { glutInit(&argc,argv); //glutInit ialah fungsi pertama yang perlu dipanggil, ia initialize GLUT perpustakaan glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE); //menetapkan mod paparan awal glutInitWindowSize(300,300); //menetapkan saiz window. glutInitWindowPosition(0,0); // menetapkan kedudukan window. glutCreateWindow("Moving squares"); // mewujudkan "moving squares" di atas level window. init; glutDisplayFunc(display); //menpaparkan panggilan balik untuk window semasa glutReshapeFunc(reshape); //membentuk semula panggil balik untuk window semasa glutMouseFunc(mouse); // menetapkan panggil balik tetikus untuk window semasa glutIdleFunc(spindisplay); // menetapkan panggil balik terbiar global. glutMainLoop; // memasuki GLUT ke acara gulung. }

void init(void) { glClearColor(0.0,0.0,0.0,1.0);// menetukan warna-warna (merah, hijau, biru) belakang glShadeModel(GL_SMOOTH); //pilih teduhan rata atau licin (flat or smooth) }

void display(void) { glClear(GL_COLOR_BUFFER_BIT);//membuangkan buffers kepada nilai-nilai yang dipratetap glPushMatrix;//menetapkan di mana untuk memulakan transformasi objek glRotatef(rotat,0.0,0.0,1.0);//darab matriks semasa oleh matriks putaran glColor3f(0.0,0.0,1.0);//menetapkan warna semasa(RGB komponen) glRectf(-250.0,-250.0,-50.0,-50.0);//melukis segi empat tepat glPopMatrix;//menghentikan transformasi objek glutSwapBuffers;//swap buffers ke window semasa jika dua buffered. }

void reshape(int w, int h) {   glViewport(0,0,(GLsizei)w,(GLsizei)h);//menetapkan viewport glMatrixMode(GL_PROJECTION);//menyatakan matriks yang man adalah matriks semasa glLoadIdentity;//menggantikan matriks semasa dengan matriks identiti glOrtho(-250.0,250.0,-250.0,250.0,-1.0,1.0);//mendarabkan matriks semasa dengan matrik orthografic glMatrixMode(GL_MODELVIEW);//menyatakan matriks yang man adalah matriks semasa glLoadIdentity;//menggantikan matriks semasa dengan matriks identiti }

void spindisplay(void) { if(rotatq==1){ rotat+=0.1; if(rotat>360.0) rotat-=360.0; }    glutPostRedisplay;//menandakan window semasa yang perlu untuk redisplayed. }

void mouse(int button, int state, int x, int y) {  switch(button) {case GLUT_LEFT_BUTTON: if(state==GLUT_DOWN) rotatq=1; break; case GLUT_RIGHT_BUTTON: if(state==GLUT_DOWN) rotatq=0; break; default: break; } }