Primitive
Drawing
Materi
•Sistem Koordinat 2 Dimensi
•Menggambar Titik
•Menggambar Garis
•Menggambar Polyline
•Menggambar Polygon
•
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Sistem Koordinat
y (640,480)
Drawing Windows
(0,480)
x
(0,0) (640,0)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
ontoh Sistem Koordinat Dalam OpenG
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
640
(100,100)
480
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
ontoh Sistem Koordinat Dalam OpenG
gluOrtho2D(-320.,320.,-240.,240.);
640
240
(100,100)
480
-320 320
-240
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Menggambar Titik
Untuk menggambar titik di
glVertex2i(x,y) posisi (x,y) dimana x dan y
didefinisikan sebagai bilangan
bulat (integer)
Untuk menggambar titik di
glVertex2f(x,y) posisi (x,y) dimana x dan y
didefinisikan sebagai bilangan
glVertex2d(x,y) pecahan (float/double)
Menggunakan library glBegin(GL_POINTS)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Menggambar Titik
glBegin(GL_POINTS);
glVertex2i(100,50);
glVertex2i(100,130);
glVertex2i(150,130);
glEnd();
Drawing by Achmad Basuki
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Fungsi Untuk Menggambar Titik
void drawDot(int x, int y) Fungsi ini
{ digunakan bila
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd(); didefinisikan
} sebagai integer
void drawDot(float x, float y) Fungs
{ digunakan bila
glBegin(GL_POINTS);
glVertex2f(x,y); x dan
glEnd(); didefinisikan
} sebagai float
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Menggambar Titik
drawDot(100,50);
drawDot(100,130);
drawDot(150,130);
Drawing by Achmad Basuki
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Mengubah Ukuran Titik
drawDot(100,50);
drawDot(100,130);
glPointSize(4);
drawDot(150,130);
Drawing by Achmad Basuki
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Menggambar Garis
Untuk membuat garis diperlukan library
GL_LINES dengan menyatakan titik awal
dan titik akhir dari garis.
glBegin(GL_LINES);
glVertex2f(100,100);
(200,150)
glVertex2f(200,150);
glEnd();
(100,100)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Fungsi Untuk Menggambar Garis
void drawLine(int x1,int y1,int x2,int y2)
{
glBegin(GL_LINES);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glEnd();
}
void drawLine(float x1,float y1,float x2,float y2)
{
glBegin(GL_LINES);
glVertex2f(x1,y1);
glVertex2f(x2,y2);
glEnd();
}
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Menggambar Garis
drawLine(100,100,200,150);
(200,150)
(100,100)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Menggambar Polyline
Polyline adalah sekumpulan garis yang
terhubung satu dengan yang lainnya hingga
membentuk sebuah obyek gambar.
glBegin(GL_LINE_STRIP);
glVertex2f(x1,y1);
glVertex2f(x2,y2);
glVertex2f(x3,y3);
……………………………………………
glVertex2f(xn,yn);
glEnd();
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Menggambar Polyline
glBegin(GL_LINE_STRIP);
glVertex2f(100,100);
glVertex2f(200,150);
glVertex2f(300,50);
glEnd();
(200,150)
(100,100) (300,50)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Menggambar Polygon
Polygon adalah sekumpulan garis yang
terhubung satu dengan yang lainnya dan
berbentuk kurva tertutup hingga
membentuk sebuah obyek gambar.
glBegin(GL_LINE_LOOP);
glVertex2f(x1,y1);
glVertex2f(x2,y2);
glVertex2f(x3,y3);
……………………………………………
glVertex2f(xn,yn);
glEnd();
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Menggambar Polygo
Begin(GL_LINE_LOOP);
glVertex2f(100,100);
glVertex2f(200,150);
glVertex2f(300,50);
End();
My first drawing
(200,150)
(100,100) (300,50)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Mengubah Warna
glColor3f(red,green,blue);
red, green, blue nilainya antara 0 sampai dengan 1,
letaknya sebelum obyek digambar
glColor3f(0.,0.,0.);//black
glColor3f(0.,0.,1.);//blue
glColor3f(0.,1.,0.);//green
glColor3f(0.,1.,1.);//cyan
glColor3f(1.,0.,0.);//red
glColor3f(1.,0.,1.);//magenta
glColor3f(1.,1.,0.);//yellow
glColor3f(1.,1.,1.);//white
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Mengubah Warna
glColor3f(0,0,0);
drawDot(100,50);
glColor3f(1,0,0);
drawDot(100,130);
glColor3f(0,0,1); Drawing by Achmad Basuki
drawDot(150,130);
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Gambar
Membuat Televisi Rusak
• Buatlah latar belakang windows menjadi hitam dengan
mengubaha fungsi glClearColor menjadi glClearColor
(0.0,0.0,0.0,0.0); pada main()
• Isikan program berikut pada userdraw()
float x,y;
for(int i=0;i<1000;i++){
x=640*(float)rand()/RAND_MAX-320;
y=480*(float)rand()/RAND_MAX-240;
drawDot(x,y);
}
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Selamat Mencoba
Membuat Gambar Dengan
Grafika Komputer
Achmad Basuki
Nana Ramadijanti
Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision – Politeknik Elektronika Negeri Surabaya (PENS-ITS)