Praktikum Grafika Komputer Menggambar Dengan Mode Grafik
Mengenal Modus Menggambar Grafik Modus layar penuh - tergantung resolusi layar - 1024 x 1024 => 1024 pixel ke kanan dan 1024 pixel ke bawah - (100,50) => 100 ke kanan dan 50 ke bawah dengan acuan sudut kiri-atas (0,0).
Modus windows - Besar-kecil dan posisi window relatif terhadap layar monitor dengan acuan sudut kiri-atas - sistem koordinat biasa : x ke arah kanan dan y ke arah bawah.
Modus windows termodifikasi - sama dengan modus window - sumbu y mengarah ke atas
Menggambar Titik Menggunakan modus 3 glBegin(GL_POINTS); glVertex2i(100,50); glVertex2i(100,130); glVertex2i(150,130); glEnd();
glVertex2i(….) gl : awalan fungsi library dari OpenGL Vertex : salah satu perintah dasar dari OpenGL 2 : banyaknya argumen fungsi, 2 argumen x dan y i : type dari argumen, yaitu integer, bisa juga f (float), atau d (double)
Try this… #include <windows.h> #include <gl/Gl.h> #include <gl/glut.h> void myInit(void) { glClearColor(1.0,1.0,1.0,0.0); glColor3f(0.0f, 0.0f, 0.0f); glPointSize(4.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 640.0, 0.0, 480.0); }
void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glVertex2i(100, 50); glVertex2i(100, 130); glVertex2i(150, 130); glEnd(); glFlush(); }
void main(int argc, char void main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(640,480); glutInitWindowPosition(100, 150); glutCreateWindow("my first attempt"); glutDisplayFunc(myDisplay); myInit(); glutMainLoop(); }
Menggambar Garis glBegin(GL_LINES); glVertex2i(40,100); glVertex2i(202,96); glEnd();
Polyline dan Poligon
Polyline: glBegin(GL_LINE_STRIP); glVertex2i(20,10); glVertex2i(50,10); glVertex2i(20,80); glVertex2i(50,80); glEnd();
Polygon : glBegin(GL_LINE_LOOP); glVertex2i(20,10); glVertex2i(50,10); glVertex2i(20,80); glVertex2i(50,80); glEnd();
Menggambar titik dengan mouse Tambahkan 2 fungsi baru sebelum void main void drawDot(int x, int a) { glBegin(GL_POINTS); glColor3f(1,0,0); glVertex2i(x,a); glEnd(); glFlush(); }
void mouse(int button, int state, int x,int y) { if(button==GLUT_LEFT_BUTTON && state==GLUT_DOWN) drawDot(x,480-y); }
Tambahkan di dalam void main glutMouseFunc(mouse);
-THE END-