User talk:Ying A135439


 * 1) include  //baris untuk masukkan header file

GLfloat xRotated, yRotated, zRotated; //putaran pada paksi x,y dan z

void Display(void)//menjalankan beberapa tugas atau ia mungkin untuk memaparkan sesuatu {	glClear(GL_COLOR_BUFFER_BIT); // Padam 'frame buffer' glLoadIdentity;   // sediakan pandangan transformasi glTranslatef(0.0,0.0,-4.0); //bergerak ke hadapan 4 unit

glRotatef(xRotated,1.0,0.0,0.0); // putaran pada paksi-x pada koordinat 1.0 glRotatef(yRotated,0.0,1.0,0.0); // putaran pada paksi-y pada koordinat 1.0 glRotatef(zRotated,0.0,0.0,1.0); // putaran pada paksi-z pada koordinat 1.0 glScalef(2.0,1.0,1.0);   // skala transformasi pada koordinat 2.0 pada paksi-x,1.0 pada paksi-y,1.0 pada paksi-z glutWireCube(1.0);      // merupakan fungsi terbina dalam perpustakaan glut untuk melukis kiub glFlush;			//selesai terjemahan glutSwapBuffers;   // 'swap buffers' dipanggil kerana kita menggunakan 'double buffering' }

void Reshape(int x, int y) { if (y == 0 || x == 0) return; //jika y=0 atau x=0 maka kembali glMatrixMode(GL_PROJECTION);  //Tetapkan matriks unjuran baru glLoadIdentity; //menggantikan matriks dengan matriks identiti

//Sudut pandangan: 40 darjah //Jarak satah keratan berhampiran: 0.5 //Jarak satah keratan berjauhan: 20.0 gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0); glMatrixMode(GL_MODELVIEW);  //menentukan matriks yang mana ialah matriks semasa

glViewport(0,0,x,y); //Gunakan seluruh tetingkap untuk melukis }

void Idle(void) {	xRotated += 0.3; //putaran di sekitar paksi-x

yRotated += 0.1; //putaran di sekitar paksi-y

zRotated += -0.4; //putaran di sekitar paksi-z

Display; }

int main (int argc, char **argv) {	glutInit(&argc, argv); //memulakan perpustakaan GLUT

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); //untuk animasi,kita perlu menggunakan 'double buffering'

glutInitWindowSize(300,300);  // saiz tetingkap

glutCreateWindow("Cube example");  //mencipta tetingkap dengan konteks melukis dan segala-galanya yang kita perlukan

glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); //memilih mod 'rasterization'(mengambil imej yang diterangkan dalam format grafik vektor dan menukar ke imej raster (pixel atau dots)) poligon

xRotated = yRotated = zRotated = 0.0;

glClearColor(0.0,0.0,0.0,0.0); //menentukan nilai-nilai yang jelas bagi 'color buffers'

glutDisplayFunc(Display); //menggunakan fungsi paparan untuk melukis

glutReshapeFunc(Reshape); //menetapkan panggilan balik 'reshape' bagi tetingkap semasa

glutIdleFunc(Idle); //menetapkan panggilan balik secara 'idle global'

glutMainLoop; //memanggil 'main loop'

return 0; }