Perbincangan pengguna:Renx
Selamat datang ke Wikipedia Bahasa Melayu! |
---|
Salam sejahtera Renx! 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. |
...Aurora... (b) 09:12, 24 Oktober 2011 (UTC)
-
Sari kata 1
-
Sari kata 2
LAB2-ASSIGNMENT(A134688)TAN DAI WANG[sunting sumber]
#include <stdlib.h>
#include <GL/glut.h>
static GLfloat spin = 0.0;
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(spin, 0.0, 0.0, 1.0);
// Define checker board bitmap
glClear(GL_COLOR_BUFFER_BIT);
GLubyte wb[2] = {0x00, 0xff};
GLubyte check[512];
int i, j;
for (i=0;i<64;i++)
for (j=0;j<8;j++)
check[i*8+j] = wb[(i/8+j)%2];
// Display checker board bitmap
glColor3f(1.0, 0.0, 0.0);
glRasterPos3f(-26.7, 15.0, 0.0);
glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
glColor3f(0.0, 1.0, 0.0);
glRasterPos3f(15.0, 15.0, 0.0);
glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
glColor3f(0.0, 0.0, 1.0);
glRasterPos3f(15.0, -26.7, 0.0);
glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
glColor3f(0.0, 1.0, 1.0);
glRasterPos3f(-26.7, -26.7, 0.0);
glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
// Draw font bitmap
glColor3f(0.3, 1.0, 0.0);
glRasterPos3f(-10.0, 35.0, 0.0);
// glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_24, "Testing\n");
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'F');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'O');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'R');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'E');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'V');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'E');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'R');
//word LOVE
glColor3f(1.0, 2.0,0.0);
glBegin(GL_LINES);
glVertex2f(2.5,15.0);
glVertex2f(-2.5,15.0);
glVertex2f(-2.5,15.0);
glVertex2f(-2.5,25.0);
glEnd();
glColor3f(1.0, 0.0,2.0);
glBegin(GL_LINE_LOOP);
glVertex2f(-20,-5);
glVertex2f(-15,-5);
glVertex2f(-15,5);
glVertex2f(-20,5);
glEnd();
glColor3f(1.0, 0.0,0.0);
glBegin(GL_LINES);
glVertex2f(2.5,-15.0);
glVertex2f(0.0,-25.0);
glVertex2f(0.0,-25.0);
glVertex2f(-2.5,-15.0);
glEnd();
glColor3f(0.0, 2.0,3.0);
glBegin(GL_LINES);
glVertex2f(15.0,5.0);
glVertex2f(20.0,5.0);
glVertex2f(15.0,0.0);
glVertex2f(18.0,0.0);
glVertex2f(15.0,-5.0);
glVertex2f(20.0,-5.0);
glVertex2f(15.0,5.0);
glVertex2f(15.0,-5.0);
glEnd();
//End word
glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 0.8f);
glVertex3f (-10.0, -10.0, 0.0);
glColor3f(0.0f, 0.9f, 0.0f);
glVertex3f (10.0, -10.0, 0.0);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f (10.0, 10.0, 0.0);
glColor3f(0.0f, 0.65f, 0.65f);
glVertex3f (-10.0, 10.0, 0.0);
glEnd();
glBegin(GL_QUADS);
//Trapezoid
glColor3f(0.5f, 0.0f, 0.8f);
glVertex3f(-7.0f, -5.0f, 0.0f);
glColor3f(0.0f, -9.0f, 0.0f);
glVertex3f(7.0f, -5.0f, 0.0f);
glColor3f(10.0f, 0.0f, 0.0f);
glVertex3f(4.0f, 5.0f, 0.0f);
glColor3f(0.0f, 6.50f, 6.50f);
glVertex3f(-4.0f, 5.0f, 0.0f);
glEnd();
glColor3f(0.0, 0.9, 0.4);
glRectf(10.0, 10.0, 15.0, 15.0);
glColor3f(0.0, 0.9, 0.3);
glRectf(-10.0, 10.0, -15.0, 15.0);
glColor3f(0.0, 0.9, 0.2);
glRectf(-10.0, -10.0, -15.0,-15.0);
glColor3f(0.0, 0.9, 0.1);
glRectf(10.0, -10.0, 15.0,-15.0);
glPopMatrix();
glutSwapBuffers();
}
void spinDisplay(void)
{
spin = spin + 2.0;
if (spin > 360.0)
spin = spin - 360.0;
glutPostRedisplay();
}
void reshape(int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
glutIdleFunc(spinDisplay);
break;
case GLUT_MIDDLE_BUTTON:
if (state == GLUT_DOWN)
glutIdleFunc(NULL);
break;
default:
break;
}
}
/*
* Request double buffer display mode.
* Register mouse input callback functions
*/
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}
<source lang="c">
- include <stdlib.h>
stdlib.h ialah satu header fail yang standard.
- include <GL/glut.h>
glut.h ialah antara muka bagi GLUT (OpenGL Utility Toolkit)
static GLfloat spin = 0.0;
void init(void)
fungsi Init tidak akan kembali apa-apa ke fungsi yang lain dan ia tidak akan menjangkakanparameter apa-apa untuk dilaksanakan
{
glClearColor (0.0, 0.0, 0.0, 0.0);
fungsi ini menentukan merah, hijau, biru, dan nilai-nilai alfa yang digunakan oleh glClear untuk mengosongkan penampan warna. Nilai-nilai yang dinyatakan oleh glClearColor diapit kepada julat 01.
glShadeModel (GL_FLAT);
}
void display(void) untuk kita menjalankan beberapa tugas atau memaparkan sesuatu { glClear(GL_COLOR_BUFFER_BIT); fungsi ini membersihkan semua pixels glPushMatrix(); fungsi ini menolak susunan matrik semasa glRotatef(spin, 0.0, 0.0, 1.0); darab matriks semasa oleh matriks putaran
// Define checker board bitmap glClear(GL_COLOR_BUFFER_BIT); padam frame buffer membersihkan penampan kepada nilai-nilai yang dipratetep(menunjukkan penampan yang kini boleh bagi penulisan color GLubyte wb[2] = {0x00, 0xff}; GLubyte check[512]; int i, j; declare i and j as an int for (i=0;i<64;i++) for (j=0;j<8;j++) check[i*8+j] = wb[(i/8+j)%2];
// Display checker board bitmap glColor3f(1.0, 0.0, 0.0); menetapkan color semasa glRasterPos3f(-26.7, 15.0, 0.0); menetapkan kedudukan raster untuk operasi pixel glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check); melukis satu bitmap(GLSizei width,GLSizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap) lebar-lebar pixel tinggi-tingi pixel xorig- Lokasi x bagi asalan dalam imej bitmap. Asalan itu diukur dari sudut bawah kiri bagi bitmap,dengan arah kanan dan atas sebagai paksi positif yorig- Lokasi y bagi asalan dalam imej bitmap. Asalan itu diukur dari sudut bawah kiri bagi bitmap,dengan arah kanan dan atas sebagai paksi positif xmove- x offset ditambah dengan kedudukan raster semasa setelah bitmap dilukis ymove- y offset ditambah dengan kedudukan raster semasa setelah bitmap dilukis bitmap- alamat bagi bitmap imej
glColor3f(0.0, 1.0, 0.0); glRasterPos3f(15.0, 15.0, 0.0); glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
glColor3f(0.0, 0.0, 1.0); glRasterPos3f(15.0, -26.7, 0.0); glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
glColor3f(0.0, 1.0, 1.0); glRasterPos3f(-26.7, -26.7, 0.0); glBitmap(64, 64, 0.0, 0.0, 0.0, 0.0, check);
// Draw font bitmap
glColor3f(0.3, 1.0, 0.0);
glRasterPos3f(-10.0, 35.0, 0.0);
// glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_24, "Testing\n");
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'F');
menuliskan watak bitmap (satu 24-point proporsyen jarak Times New Roman font)
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'O');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'R');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'E');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'V');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'E');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'R');
//word LOVE glColor3f(1.0, 2.0,0.0); glBegin(GL_LINES); membatasi primitif verteks atau satu kumpulan seperti primitif(memperlakukan setiap pasangan verteks sebagai segmen garis bebas) glVertex2f(2.5,15.0); menetapkan satu verteks (x-koordinate, y-koordinate) glVertex2f(-2.5,15.0); glVertex2f(-2.5,15.0); glVertex2f(-2.5,25.0); glEnd();
glColor3f(1.0, 0.0,2.0); glBegin(GL_LINE_LOOP); melukis satu kumpulan segmen garisan yang disambung dari verteks pertama hingga yang terakhir,kemudian kembali kepada yang pertama glVertex2f(-20,-5); glVertex2f(-15,-5); glVertex2f(-15,5); glVertex2f(-20,5); glEnd();
glColor3f(1.0, 0.0,0.0); glBegin(GL_LINES); glVertex2f(2.5,-15.0); glVertex2f(0.0,-25.0); glVertex2f(0.0,-25.0); glVertex2f(-2.5,-15.0); glEnd();
glColor3f(0.0, 2.0,3.0); glBegin(GL_LINES); glVertex2f(15.0,5.0); glVertex2f(20.0,5.0); glVertex2f(15.0,0.0); glVertex2f(18.0,0.0); glVertex2f(15.0,-5.0); glVertex2f(20.0,-5.0); glVertex2f(15.0,5.0); glVertex2f(15.0,-5.0); glEnd();
glBegin(GL_POLYGON);
melukis poligon ungu (segi empat tepat) dengan sudut pada (-10, -10 , 0) and (10, 10, 0)
glColor3f(0.5f, 0.0f, 0.8f);
glVertex3f (-10.0, -10.0, 0.0);
glColor3f(0.0f, 0.9f, 0.0f);
glVertex3f (10.0, -10.0, 0.0);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f (10.0, 10.0, 0.0);
glColor3f(0.0f, 0.65f, 0.65f);
glVertex3f (-10.0, 10.0, 0.0);
glEnd();
fungsi ini akhirkan senarai verteks
glBegin(GL_QUADS);
melukis kuadrilateral biru dengan sudut pada (-7.5, -5.0, 0.0) and (4.0, 5.0, 0.0)
glColor3f(0.5f, 0.0f, 0.8f);
glVertex3f(-7.0f, -5.0f, 0.0f);
glColor3f(0.0f, -9.0f, 0.0f);
glVertex3f(7.0f, -5.0f, 0.0f);
glColor3f(10.0f, 0.0f, 0.0f);
glVertex3f(4.0f, 5.0f, 0.0f);
glColor3f(0.0f, 6.50f, 6.50f);
glVertex3f(-4.0f, 5.0f, 0.0f);
glEnd();
glColor3f(0.0, 0.9, 0.4); glRectf(10.0, 10.0, 15.0, 15.0); fungsi ini melakar segi empat tepat (x1, y1, x2, y2) X1-koordinat x bagi vertexs segi empat tepat Y1-koordinat y bagi verteks segi empat tepat x2-koordinat x bertentangan dengan verteks segi empat tepat y2-koordinat y bertentengan dengan verteks segi empat tepat glColor3f(0.0, 0.9, 0.3); glRectf(-10.0, 10.0, -15.0, 15.0);
glColor3f(0.0, 0.9, 0.2); glRectf(-10.0, -10.0, -15.0,-15.0);
glColor3f(0.0, 0.9, 0.1); glRectf(10.0, -10.0, 15.0,-15.0);
glPopMatrix(); fungsi ini timbul susunan matrik semasa glutSwapBuffers(); menukar penimbal bagi tingkap semasa jika ditimbal berganda }
void spinDisplay(void) { spin = spin + 2.0; if (spin > 360.0) spin = spin - 360.0; glutPostRedisplay(); menetapkan satu bendera supaya berada pada lelaran mainloop yang berikutnya } void reshape(int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); menetapkan viewport(x , y, width, height) glMatrixMode(GL_PROJECTION); menentukan matrix semasa(mengaplikasikan operasi matriks seterusnya kepada susunan matriks unjuran) glLoadIdentity(); menggantikan matriks semasa dengan matriks identiti glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0); mendarad matriks semasa oleh matriks ortografi(left, right, bottom, top, zNear, zFar) left & right –keratan satah menegak bottom & top –keratan satah mendatar glMatrixMode(GL_MODELVIEW); (mengaplikasikan operasi matriks seterusnya kepada susunan matriks modelview) glLoadIdentity(); } void mouse(int button, int state, int x, int y) { switch (button) { case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN) glutIdleFunc(spinDisplay); menetapkan panggilbalik idle global break; case GLUT_MIDDLE_BUTTON: if (state == GLUT_DOWN) glutIdleFunc(NULL); break; default: break; } } /*
- Request double buffer display mode.
- Register mouse input callback functions
- /
int main(int argc, char** argv) { glutInit(&argc, argv); fungsi ini initialize pustaka GLUT oleh itu ia mesti dipanggil sebelum fungsi GLUT yang lain glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); fungsi ini menetapkan mode paparan yang awal GLUT_DOUBLE adalah untuk memilih tingkap yang ditimbal berganda GLUT_RGBA menyatakan color paparan sebagai merah, hijau dan biru glutInitWindowSize (500, 500); fungsi ini menentukan ketinggian awal dan lebar bagi tingkap yang dicipta glutInitWindowPosition (0, 0); fungsi ini menetapkan tingkap yang dicipta akan diletakkan pada sudut atas kiri skrin glutCreateWindow (“Rotation”); fungsi ini akan menwujudkan satu tingkap yang bernama ROTATION init (); glutDisplayFunc(display); Setiap kali tingkap perlu dilakar semula, sistem akan memanggil display glutReshapeFunc(reshape); apabila size tingkap berubah, sistem akan memanggil reshape glutMouseFunc(mouse); menetapkan panggil balik tetikus untuk tingkap semasa glutMainLoop(); Fungsi ini menyebabkan program untuk memasuki gelung acara-pemprosesan return 0; }