LAPORAN PRAKTIKUM 2.docx

37
LAPORAN PRAKTIKUM 2 GRAFIKA KOMPUTER “ PRIMITIVE OBJECT “ Oleh: Kelompok 7 Khafidurrohman Agustianto (100533402595) Khusnul Qotimah ( 100533402568 ) Muhammad Qomarulloh (100533404328) S1 PTI 2010 / Off C S1 PENDIDIKAN TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO

description

grafika komputer

Transcript of LAPORAN PRAKTIKUM 2.docx

Page 1: LAPORAN PRAKTIKUM 2.docx

LAPORAN PRAKTIKUM 2GRAFIKA KOMPUTER

“ PRIMITIVE OBJECT “

Oleh:Kelompok 7

Khafidurrohman Agustianto (100533402595)Khusnul Qotimah ( 100533402568 )

Muhammad Qomarulloh (100533404328)

S1 PTI 2010 / Off C

S1 PENDIDIKAN TEKNIK INFORMATIKAJURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIKUNIVERSITAS NEGERI MALANG

September, 2012

Page 2: LAPORAN PRAKTIKUM 2.docx

PRIMITIVE OBJECT

A. KOMPETENSI DASAR1. Memahami jenis-jenis primitive objects.2. Memahami dan dapat membuat objek primitif.

B. ALOKASI WAKTU 4 js (4x50 menit)

C. DASAR TEORIPrimitif Grafik memudahkan untuk merender (menggambar pada layar monitor) sebagaimana penggunaan persamaan geometrik sederhana.Contoh primitif grafik dasar adalah :- Titik- Garis, Segiempat- Kurva, Lingkaran, ellipse, kurva bezier, kurva lainnya- Fill area- TextObjek kompleks dapat dibuat dengan kombinasi dari primitif ini. Adapun contoh grafik primitif yang lain adalah :- Poligaris, yaitu urutan garis lurus yang saling terhubung.- Teks, adalah bentuk bahasa tulisan dengan simbol-simbol tertentu. Teks merupakan kumpulan lebih dari dua karakter.- Citra raster, adalah gambar yang dibuat dengan piksel yang membedakan bayangan dan warna. Citra raster disimpan dalam komputer sebagai larik bernilai numerik. Larik tersebut dikenal sebagai piksel map atau bitmap. Ada tiga cara untuk menghasilkan citra grafik yaitu Citra didisain dengan tangan, Citra yang didapat dari perhitungan dan Citra yang discan. Pemaparan citra raster dinyatakan oleh piksel dengan video displays (Cathod-ray Tube CRT), flat panel dispalys (LCD), hardcopy (printer laser, dot matrix printers, ink-jet printers). Contoh proses pemaparan permukaan adalah citra yang ditangkap lalu disimpan di frame buffer, kemudian digunakan untuk mewarnai sebuah titik pada permukaan pemapar. Selanjutnya proses scan di CRT. Frame buffer adalah matriks 2 dimensi yang mewakili piksel pada pemapar. Ukuran matriks harus cukup untuk menyimpan kedalam warna pemapar untuk semua piksel. Sebagai contoh pemapar (monitor) berresolusi 1280 x 1024 mempunya kedalaman warna 24 bit (~16 juta warna) membutuhkan ruang simpan sekitar 4 Mb.o Piksel dan Bitmap, Jumlah bit yang digunakan untuk mewakili warna/bayangan dari masin-masing piksel (picture element = pixel). 4 bit/piksel = 24 = 16 level abu-abu

1. Input Primitif Grafik Dan PirantinyaSebagaimana banyak piranti dan cara untuk pemaparan output grafika komputer, demikian pula untuk piranti inputnya, yaitu :- Keyboards- Tombol- Mouse

Page 3: LAPORAN PRAKTIKUM 2.docx

- Graphics tablets- Joysticks dan trackballs- Knobs- Space balls dan data gloves

Masing-masing input ini mempunyai cara masing-masing untuk mengirimkan input ke komputer. Input ini diinterpretasikan oleh aplikasi grafika komputer dan dipresentasikan ke pengguna melalui layar monitor. Data yang diinputkan disebut primitif input.Beberapa primitif input diantaranya sebagai berikut :- Titik- Strings (keyboards, suara)- Pilihan (tombol, layar sentuh)- Valuators (analogue dial)- Locator (mouse)- Ambil (pemilihan sebagian citra, mouse, lightpen)

2. Pemrograman Grafika KomputerAda tiga komponen untuk kerangka kerja aplikasi grafika komputer, yaitu :- Model aplikasi- Program aplikasi- Sistem grafik

Sekarang telah banyak beredar di pasaran aplikasi pengembang cepat (Rapid Development Applications / RAD) seperti Delphi, Borland C++, Visual C++ dan Visual Basic. RAD ini memudahkan dalam pembuatan antarmuka, form, tombol, dan lain-lain sehingga dapat membantu percepatan dalam pembuatan program aplikasi grafik karena kode yang kompleks untuk pembuatan antarmuka, form, tombol, dan lain-lain sudah tidak perlu dibuat lagi. RAD juga langsung memudahkan pemrograman Windows.

3. TransformasiMenurut Suyoto (2003), transformasi adalah memindahkan objek tanpa merusak bentuk. Contoh transforamsi adalah transisi, penskalaan, putaran/rotasi, balikan, shearing dan gabungan.

Tujuan transformasi adalah- Merubah atau menyesuaikan komposisi pemandangan- Memudahkan membuat objek yang simetris- Melihat objek dari sudut pandang yang berbeda- Memindahkan satu atau beberapa objek dari satu tempat ke tempat laein. Ini biasa dipakai untuk animasi computerUntuk dapat menggunakan transformasi dengan baik maka diperlukan pengetahuan operasi matrisk dan vectorOperasi matriks:- Penambahan dan pengurangan- Perkalian- Determianan

Page 4: LAPORAN PRAKTIKUM 2.docx

- Transpos- Kebalikan (inverse)Operasi vektor- Penambahan dan pengurangan- Perkalian titik (dot product)- Perkalian silang (cross product)

4. OpenGLOpenGL adalah suatu spefikasi grafik yang low-level yang  menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi (application programming interface (API) yang tidak tergantung pada piranti dan platform yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan sistem operasi lainnya. OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun   OpenGL di-package secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu, package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan bahasa pemrograman yang akan digunakan.Selain OpenGL ada juga tools/library grafik yang dapat dipergunakan yaitu DirectX. Namun tools ini hanya dapat dipergunakan pada Microsoft Windows. Tabel 2.1 menunjukkan perbandingan antara OpenGL dengan DirectX. Perbandingan ini didasarkan pada buku “OpenGL Game Programming”, namun ada beberapa feature yang mungkin sudah ditambahkan pada DirectX versi terbaru5. Sistem Koordinat OpenGL

6. Fungsi gluOrtho2D(left,right,bottom,top) gluOrtho2D(-320,320,-240,240)

Page 5: LAPORAN PRAKTIKUM 2.docx

7. Fungsi dasar menggambar titik glVertex?()a. glVertex2i(x,y) Menggambar titik pada koordinat x dan y, dengan nilai satuan

berupa integer. Contoh glVertex2i(10,10);b. glVertex2f(x,y) Menggambar titik pada koordinat x dan y, dengan nilai satuan

berupa float. Contoh glVertex2f(10.0,10.0);c. glVertex2d(x,y) Menggambar titik pada koordinat x dan y, dengan nilai satuan

berupa double. Contoh glVertex2d(10.0,10.0);8. Objek primitif

a. Titik GL_POINTSb. Garis GL_LINESc. Poliline GL_LINE_STRIPd. Poligon (no fill) GL_LINE_LOOP

D. AKTIFITAS KELAS PRAKTIKUM

1. Berikut adalah script dasar untuk kegiatan praktikum selanjutnya

glutInitWindowPosition(100,100);glutInitWindowSize(320,240);

dangluOrtho2D(-320.,320.,-240.,240.);

2. Buatlah project baru pada Visual Studio dengan nama prak1-Points. Dan tambahkan fungsi callback untuk glutDisplayFunc(drawDot); . Tampilkan hasilnya berupa screenshot. Jelaskan Proses Rendering.#include <stdlib.h>#include <glut.h>

void drawDot(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POINTS);glVertex2i(-200, -100);glVertex2i(200, 100);

Page 6: LAPORAN PRAKTIKUM 2.docx

glVertex2i(250, 150);glEnd();glFlush();}void main(int argc, char **argv){glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);glutInitWindowSize(320,240);gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawDot);glutMainLoop();

Output :

Proses rendering :

Page 7: LAPORAN PRAKTIKUM 2.docx

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

3. Buatlah project baru pada Visual Studio dengan nama prak1-PointsSize. Dan tambahkan fungsi glPointSize(int size); untuk mengubah ukuran objek Points. Pindah-pindahkan glPointSize pada a,b, dan c. Sajikan Screen shot hasil a,b,c dan simpulkan.

a.#include <stdlib.h>#include <glut.h>glPointSize(20);void drawDot(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POINTS);glVertex2i(18,200);glVertex2i(100,100);glVertex2i(200,200);glEnd();glFlush();}void main(int argc, char **argv){glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);glutInitWindowSize(400,400);gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawDot);glutMainLoop();}

Out put :

Page 8: LAPORAN PRAKTIKUM 2.docx

b.#include <stdlib.h>#include <glut.h>void drawDot(void){glPointSize(20);glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POINTS);glVertex2i(18,200);glVertex2i(100,100);glVertex2i(200,200);glEnd();glFlush();}void main(int argc, char **argv){glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);glutInitWindowSize(400,400);gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawDot);glutMainLoop();}

Out put :

c.#include <stdlib.h>#include <glut.h>void drawDot(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POINTS);glVertex2i(18,200);glPointSize(20);glVertex2i(100,100);glVertex2i(200,200);glEnd();glFlush();

Page 9: LAPORAN PRAKTIKUM 2.docx

}void main(int argc, char **argv){glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);glutInitWindowSize(400,400);gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawDot);glutMainLoop();}

Output :

Kesimpulan :

4. Buatlah project baru pada Visual Studio dengan nama prak1-Lines. Dan tambahkan fungsi callback untuk glutDisplayFunc(drawLine); . Tampilkan hasilnya berupa screenshot. Dan Jelaskan Proses Rendering untuk vertexnya. #include <stdlib.h>#include <glut.h>

void drawLine(void){glLineWidth(20);glClear(GL_COLOR_BUFFER_BIT );glBegin(GL_LINES);glVertex2d(18,200);glVertex2d(100,100);glLineWidth(20);glVertex2d(200,200);glLineWidth(20);glEnd();glFlush();}void main(int argc, char **argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);

Page 10: LAPORAN PRAKTIKUM 2.docx

glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutMainLoop();}

Output :

Proses rendering :

Page 11: LAPORAN PRAKTIKUM 2.docx

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

5. Buatlah project baru pada Visual Studio dengan nama prak1-LineWidth. Dan tambahkan fungsi glLineWidth(int size); untuk mengubah ukuran objek Points. Pindah-pindahkan glLineWidth pada a,b, dan c. Sajikan Screen shot hasil a,b,c dan simpulkan.a.#include <stdlib.h>#include <glut.h>void drawLine(void){glLineWidth(20);glClear(GL_COLOR_BUFFER_BIT );glBegin(GL_LINES);glVertex2d(18,200);glVertex2d(100,100);glVertex2d(200,200);glEnd();glFlush();}void main(int argc, char **argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawLine);glutMainLoop();

output :

Page 12: LAPORAN PRAKTIKUM 2.docx

b.

#include <stdlib.h>#include <glut.h>void drawLine(void){glClear(GL_COLOR_BUFFER_BIT );glBegin(GL_LINES);glVertex2d(18,200);glVertex2d(100,100);glLineWidth(20);glVertex2d(200,200);glEnd();glFlush();}void main(int argc, char **argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawLine);glutMainLoop();

output :

Page 13: LAPORAN PRAKTIKUM 2.docx

c.

#include <stdlib.h>#include <glut.h>void drawLine(void){glClear(GL_COLOR_BUFFER_BIT );glBegin(GL_LINES);glVertex2d(18,200);glVertex2d(100,100);glVertex2d(200,200);glLineWidth(20);glEnd();glFlush();}void main(int argc, char **argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawLine);glutMainLoop();

output :

Page 14: LAPORAN PRAKTIKUM 2.docx

Kesimpulan :

6. Buatlah project baru pada Visual Studio dengan nama prak1-LineStrip. Buatlah agar hasil yang ditampilkan membentuk bangun simetris terbuka. Sajikan screenshotnya. Dan Jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>void drawPoliline(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_LINE_STRIP);glVertex2d(18,200);glVertex2d(100,100);glVertex2d(200,200);glVertex2d(200,200);glEnd();glFlush();void main(int argc, char **argv){

glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawPoliline);glutMainLoop();

}

Output :

Page 15: LAPORAN PRAKTIKUM 2.docx

Proses rendering :

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

Page 16: LAPORAN PRAKTIKUM 2.docx

7. Buatlah project baru pada Visual Studio dengan nama prak1-Poligon. Buatlah agar hasil yang ditampilkan membentuk bangun simetris. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>void drawSimetris(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_LINE_LOOP);glVertex2d(18,200);glVertex2d(100,100);glVertex2d(200,200);glVertex2d(200,200);glVertex2d(200,200);glEnd();glFlush();}void main(int argc, char **argv){

glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);

glutDisplayFunc(drawSimetris);glutMainLoop();

}

Output :

Proses rendering :

Page 17: LAPORAN PRAKTIKUM 2.docx

8. Buatlah project baru pada Visual Studio dengan nama prak1-Triangle. Buatlah agar hasil yang ditampilkan membentuk 2 segitiga yang terpisah. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>void drawSegiTiga(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLES);glVertex2d(18,200);glVertex2d(100,100);glVertex2d(200,200);glVertex2d(100,50);glVertex2d(50,200);glVertex2d(-50,-50);glEnd();glFlush();}void main(int argc, char **argv){

glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawSegiTiga);

Page 18: LAPORAN PRAKTIKUM 2.docx

glutMainLoop();}

Output :

Proses rendering :

Page 19: LAPORAN PRAKTIKUM 2.docx

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

9. Buatlah project baru pada Visual Studio dengan nama prak1-TriangleStrip. Buatlah agar hasil yang ditampilkan membentuk Bangun Bebas. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>void drawBangunBebas(void){]glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLE_STRIP);glVertex2d(100,200);glVertex2d(200,100);glVertex2d(250,250);glVertex2d(50,50);glVertex2d(50,50);glVertex2d(-50,-50);glEnd();glFlush();}void main(int argc, char **argv){

glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawBangunBebas);glutMainLoop();

}

Output :

Page 20: LAPORAN PRAKTIKUM 2.docx

Proses rendering :

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

10. Buatlah project baru pada Visual Studio dengan nama prak1-TriangleFan. Buatlah agar hasil yang ditampilkan membentuk Bangun Bebas. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

Page 21: LAPORAN PRAKTIKUM 2.docx

#include <stdlib.h>#include <glut.h>void drawTriangleFan(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLE_FAN);glVertex2d(100,200);glVertex2d(200,100);glVertex2d(250,250);glVertex2d(50,50);glVertex2d(50,50);glVertex2d(-50,-50);glEnd();glFlush();}void main(int argc, char **argv){

glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawTriangleFan);glutMainLoop();

}

Output :

Proses rendering :

Page 22: LAPORAN PRAKTIKUM 2.docx

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

11. Buatlah project baru pada Visual Studio dengan nama prak1-Quads. Buatlah agar hasil yang ditampilkan membentuk 2 Bangun Segi Empat Terpisah. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>

void drawLine(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_QUADS);glVertex2d(100, 100);glVertex2d(150, 100);glVertex2d(150, 150);glVertex2d(100, 150);glVertex2d(190, 100);glVertex2d(240, 100);glVertex2d(240, 150);glVertex2d(190, 150);glEnd();glFlush();}void main(int argc, char **argv){

glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);

Page 23: LAPORAN PRAKTIKUM 2.docx

glutInitWindowSize(320,240);gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawLine);glutMainLoop();

}

Output :

Proses rendering :

Page 24: LAPORAN PRAKTIKUM 2.docx

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

12. Buatlah project baru pada Visual Studio dengan nama prak1-QuadStrip. Buatlah agar hasil yang ditampilkan membentuk Bangun Bebas. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>

void drawLine(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_QUAD_STRIP);glVertex2d(200, 50);glVertex2d(200, 100);glVertex2d(175, 200);glVertex2d(175, 150);glVertex2d(-50, 100);glVertex2d(75, -100);glEnd();glFlush();}void main(int argc, char **argv){

glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);glutInitWindowSize(320,240);

Page 25: LAPORAN PRAKTIKUM 2.docx

gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawLine);glutMainLoop();

}

Output :

Proses rendering :

Page 26: LAPORAN PRAKTIKUM 2.docx

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

13. Buatlah project baru pada Visual Studio dengan nama prak1-Poligon. Buatlah agar hasil yang ditampilkan membentuk Bangun Bebas. Sajikan screenshotnya. Dan jelaskan proses rendering vertexnya.

#include <stdlib.h>#include <glut.h>

void drawLine(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2d(50, 100);glVertex2d(150, 50);glVertex2d(250, 100);glVertex2d(220, 150);glVertex2d(250, 200);glVertex2d(150, 150);glVertex2d(50, 200);glVertex2d(0, 150);

glEnd();glFlush();}void main(int argc, char **argv){

glutCreateWindow("Pemrograman Grafis GLUT");glutInitWindowPosition(100, 100);glutInitWindowSize(320,240);gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawLine);glutMainLoop();

}

Output :

Page 27: LAPORAN PRAKTIKUM 2.docx

Proses Rendering :

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

Page 28: LAPORAN PRAKTIKUM 2.docx

E. TUGAS PRAKTIKUM

Membuat huruf dari grafika komputer.

h kelompok 7

Script :

#include <stdlib.h>#include <glut.h>#include <math.h>

void drawH(){

glClear(GL_COLOR_BUFFER_BIT);double x,y;int i,j;i = x = y = j = 0;glBegin(GL_POLYGON);while (x<20)

{x=i;y=sqrt(400-(x)*(x));glVertex2d(x,y);i++;

}while (y<10)

{y=j;x=sqrt(100-(y*y));glVertex2d(x,y);j++;

}glEnd();i = x = y = j = 0;glBegin(GL_POLYGON);while (x<20)

{x=i;y=sqrt(400-(x)*(x));glVertex2d(-x,y);i++;

}while (y<20)

{y=j;x=sqrt(100-(y*y));glVertex2d(-x,y);j++;

}glEnd();glBegin(GL_QUADS);glVertex2f(20,0);glVertex2f(10,0);

Page 29: LAPORAN PRAKTIKUM 2.docx

glVertex2f(10,-60);glVertex2f(20,-60);glVertex2f(-20,80);glVertex2f(-10,80);glVertex2f(-10,-60);glVertex2f(-20,-60);glEnd();glFlush();

}void main(int argc, char **argv){

glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(50,50);glutInitWindowSize(800,800);glutCreateWindow("Pemograman Grafis GLUT : Khafid");gluOrtho2D(-320.,320.,-240.,240.);glutDisplayFunc(drawH);glutMainLoop();

}

Output :

Page 30: LAPORAN PRAKTIKUM 2.docx

Rendering :

......................................................................................................................................................

......................................................................................................................................................

.....................................................................................................................................................

F. KESIMPULAN

1. Primitif Grafik adalahPrimitif objek terdiri atas :- Titik : Yaitu Vertex, dimana vertex merupakan acuan dasar- Garis : Yaitu Line/Edge- Bangun 2D (Face)

2. Primitif Objekprimitive objek yang dipergunakan didalam pembuatan suatu objek :- GL_POINTS- GL_LINES- GL_LINE_LOOP- GL_LINE_STRIP- GL_TRIANGLES_STRIP- GL_TRIANGLE_FAN- GL_QUADS- GL_QUADS_STRIP- GL_POLYGON

Page 31: LAPORAN PRAKTIKUM 2.docx

G. DAFTAR PUSTAKA

Modul 2.pdf

Anonim. 2011. Primitif Grafika. (Online) ( http://materiquliah.wordpress.com/ 2008 / 11 / 15 / primitif-grafika/elib.unikom.ac.id/download.php?id=108172 ), diakses tanggal 19 September 2012)

AlIdrus, Shofiyah. Open GL.(Online) (http://blog.um.ac.id/OpenGL), diakses pada tanggal 20 september 2012)