Perbincangan pengguna:Gk0401
Selamat datang ke Wikipedia Bahasa Melayu! |
---|
Salam sejahtera Gk0401! Terima kasih kerana mendaftar di Wikipedia Bahasa Melayu! Berikut merupakan beberapa pautan yang dapat anda layari jika masih baru di Wikipedia:
Lihat juga tutorial dan meja bantuan Wikipedia. Untuk menandatangani pesanan anda pada laman perbualan, seperti laman ini, letakkan ~~~~ (empat kali tanda gelombang) atau klik butang pada laman penyuntingan. |
Lawati b:Wikibooks:Rak_bahasa_pengaturcaraan. ...Aurora... (b) 16:03, 19 Oktober 2011 (UTC)
Lab 2[sunting sumber]
#include <stdlib.h> #include <GL/glut.h> //OpenGL utility library static GLfloat spin = 0.0;
void init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); //menentukan warna skrin,(0.0, 0.0, 0.0, 0.0)adalah warna hitam glShadeModel (GL_FLAT); }
// fungsi prototypes void display(void) { // glClear-tetapkan nilai "clear buffer" glClear(GL_COLOR_BUFFER_BIT); //GL_COLOR_BUFFER_BIT- menunjukan buffer yang membolehkan color writing glPushMatrix(); glRotatef(spin, 0.0, 0.0, 1.0); //membuat putaran biasa,(0.0, 0.0, 1.0)boleh ubah jika ingin //membuat putaran yang lebih unik. glColor3f(0.0, 1.0, 0.0); // menentukan warna objek glRectf(-25.0, -25.0, 25.0, 25.0); glPopMatrix(); glutSwapBuffers(); }
// fungsi prototypes void spinDisplay(void) { // menetapkan putaran spin = spin + 2.0; // anticlockwise if (spin > 360) spin = spin - 360.0; glutPostRedisplay(); // menpaparkan objek bergerak }
// fungsi prototypes void reshape(int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); //Mewujudkan kawasan penglihatan untuk menutup tetingkap seluruh glMatrixMode(GL_PROJECTION); //mengubah unjuran matriks glLoadIdentity(); //menetapkan matriks projek semula glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0); //membolehkan peta abstrak dari directly coordination ke window coordination glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }
// fungsi prototypes void mouse(int button, int state, int x, int y) { switch (button) { //menggunakan switch fungsi untuk set tetikus case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN) glutIdleFunc(spinDisplay); // objek bergerak jikan takan kiri tetikus break; case GLUT_MIDDLE_BUTTON: if (state == GLUT_DOWN) glutIdleFunc(NULL); // tiada perubahan jika tekan kanan break; default: break; } }
/* * menpaparkan double buffer. * menggunakan mouse membuat fungsi panggilan balik */
int main(int argc, char** argv) { glutInit(&argc, argv); //memulakan glut glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); //nyatakan paparan mod kepada RGB dan double buffering glutInitWindowSize (500, 500); //menentukan size skrin glutInitWindowPosition (100, 100); //menentukan kedudukan window/skrin glutCreateWindow("spin"); init (); glutDisplayFunc(display); //fungsi paparan glutReshapeFunc(reshape); glutMouseFunc(mouse); //membuat objek bergerak mengunakan tetikus glutMainLoop(); return 0; }