Laporan Grafika Komputer Pengenalan GLU

(1)

LAPORAN PRAKTIKUM MODUL 1

GRAFIKA KOMPUTER

PENGENALAN GLUT

Disusun Oleh:

Ananda Putri Syaviri (130533608243)

PTI OFF B

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO

PROGRAM STUDI S1 PENDIDIKAN TEKNIKINFORMATIKA

Januari-2015


(2)

PENGENALAN GLUT

A. KOMPETENSI DASAR

 Memahami GLUT.

 Memahami dasar pemrograman GLUT.

 Memahami dasar menampilkan windows GLUT. B. PETUNJUK

C. DASAR TEORI

1. GLUT (OpenGL Utility Toolkit)

Dikembangkan oleh Mark Kilgard. GLUT merupakan pengembangan dari OpenGL dimana memiliki keunggulan sebagai berikut:

- Mudah, portable window manager, menggunakan callback functions untuk menambahkan interaksi dari user.

- Didesain untuk aplikasi dengan level kecil hingga menengah. - Distribusi library bebas tetapi tidak open source.

2. Pemrograman berbasis event

GLUT pada dasarnya dibangun untuk menciptakan aplikasi grafis menggunakan pemrograman yang bersifat prosedural. Di dalamnya terdapat fungsi main loop yang diatur oleh GLUT dan looping yang terjadi dalam aplikasi bertujuan untuk penanganan fungsi-fungsi callback sebagai input dari user seperti fungsi redraw, mouse, keyboard, joystick, dll.

3. Instalasi GLUT pada windows dan aplikasi pengembangan Visual Studio  Awali setiap aktivitas dengan do’a, semoga berkah dan mendapat kemudahan.  Pahami Tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar.  Kerjakan tugas-tugas dengan baik, sabar, dan jujur.


(3)

GLUT tidak secara otomatis dapat diaplikasikan karena membutuhkan beberapa file tambahan antara lain glut.h, glut32.lib, glut32.dll yang harus disimpan pada lokasi tertentu sesuai dengan aplikasi pengembangan yaitu Visual Studio.

- SET UP PROJECT BARU

1. Buatlah project baru dengan visual studio dengan nama prak0.

2. Buka windows explorer pada direktori project prak0 dan buatlah direktori baru di dalamnya dengan nama include dan tempatkan file glut.h di dalamnya.


(4)

3. Kembali ke folder project dan copy-paste file glut32.lib dan glut32.dll ke folder project prak0.


(5)

5. Lakukan konfigurasi pada properties projek prak0.

Note : setiap modul file cpp baru yang dibuat harus selalu mensetting seperti di atas.


(6)

D. LATIHAN:

1. Buat file dengan nama cg-0.cpp dan tulislah program di bawah ini. #include<stdlib.h>

#include<glut.h> void renderScene(void) { }

void main(int argc, char **argv) { glutInit(&argc, argv);

glutCreateWindow("Pemrograman Grafis GLUT"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

- Program diatas menggunakan header stdlib dan glut. Header Glut berfungsi agar fungsi glut dapat diterjemahkan dan program dapat berjalan dengan baik. Program diatas menggunakan fungsi glutCreateWindow maksudnya adalah memberi judul pada windows dengan nama yang diisi pada parameter. glutInit merupakan fungsi yang mengizinkan sebuah aplikasi untuk mendapatkan argument command line(pada cmd) dan system inisialisasi. glutDispalyFunc berfungsi sebagai fungsi  File glut.h diletakkan pada C:\Program Files\Microsoft Visual Studio

10.0\VC\include

 File glut32.lib diletakkan pada C:\Program Files\Microsoft Visual Studio 10.0\VC\lib


(7)

pemanggilan display. glutMainLoop berfungsi sebagai fungsi untuk melakukan perulangan event.

E. PRAKTIKUM Syntax program :

#include<stdlib.h> #include<glut.h> void renderScene(void) {

}

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

- Program diatas menggunakan header stdlib dan glut. Header Glut berfungsi agar fungsi glut dapat diterjemahkan dan program dapat berjalan dengan baik. Program diatas menggunakan fungsi glutCreateWindow maksudnya adalah memberi judul pada windows dengan nama yang diisi pada parameter. glutInit merupakan fungsi yang mengizinkan sebuah aplikasi untuk mendapatkan argument command line(pada cmd) dan system inisialisasi. glutDispalyFunc


(8)

berfungsi sebagai fungsi pemanggilan display. glutMainLoop berfungsi sebagai fungsi untuk melakukan perulangan event. glutInitDisplayMode berfungsi sebagai fungsi permintaan pemunculan properties untuk setting window yaitu : RGB colour, single buffering dan properties logically ORed together. glutInitWindowPosition(100,100) artinya, membuat windows dengan posisi diletakkan pada titik kiri atas jendela pada layar computer. glutInitWindowSize(320,320) artinya membuat windows dengan ukuran 320,320.

 Point:

1. Pada fungsi main terdapat statement glutDisplayFunc(renderScene); hilangkan atau jadikan pernyataan tersebut menjadi comment. Apa yang terjadi? Mengapa? Syntax :

#include<stdlib.h> #include<glut.h> void renderScene(void) { }

void main(int argc, char **argv) { glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutMainLoop();

}


(9)

Penjelasan :

- Jika glutDisplayFunc(renderscene) dihilangkan maka akan meyebabkan tampilan display menjadi eror dalam arti muncul tetapi hanya sekilas , kemudian program langsung berhenti. Hal ini terjadi karena fungsi glutDisplayFunc yang sangat penting dalam pemrograman glut yaitu sebagai pemanggilan display, jika tidak ada fungsi ini maka program tidak dapat tampil sebagaimana mestinya.

2. Cantumkan kembali fungsi glutDisplayFunc(renderScene); Ubah-ubahlah parameter pada fungsi glutInitWindowPosition(), Bagaimana sistem koordinat yang diterapkan bagi window aplikasi? (gambarkan sistem koordinatnya)

Syntax :

#include<stdlib.h> #include<glut.h> void renderScene(void) { }

void main(int argc, char **argv) { glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(90,90);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }


(10)

Penjelasan :

- Setelah mencantumkan kembali fungsi glutDisplayFunc maka program data tampil sebagaimana mestinya. Kemudian program diatas mengubah posisi windows menjadi 90,90 (posisi akan berubah sesuai dengan ukuran lcd computer yang digunakan) dengan cara mengubah parameter pada fungsi glutInitWindowPosition.

- Titik titik pada kuadran II merupakan letak windows program yang ditampilkan.

3. Pada program dan tambahkan program di bawah ini ke dalam fungsi renderScene.

Gambarkan sistem koordinat dan titik-titik koordinatnya yang diterapkan untuk menghasilkan segitiga tersebut !

Syntax :

#include<stdlib.h> #include<glut.h> void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);


(11)

glVertex3f(-0.5,-0.5,0.0);//a

glVertex3f(0.5,0.0,0.0);//b

glVertex3f(0.0,0.5,0.0);//c

glEnd(); glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(90,90);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

- Menggunakan fungsi glutClear(GL_COLOR_BUFFER_BIT) yang artinya mendefinisikan warna dari windows yang dibuat.Menggunakan fungsi glVertex3f yang artinya Vertex adalah nama fungsi kemudian 3f adalah dimensi yang akan dibentuk dalam parameter koordinat x,y dan z. fungsi glBegin(GL_TRIANGLE) artinya adalah fungsi untuk membuat objek dengan bentuk segitiga dan setelah itu diikuti dengan fungsi glVertex3f dengan parameter titik koordinat yang membentuk sebuah segitiga. Kemudian program diatas mengganti judul windows yang sebelumnya menjadi “Glut : Harits Ar Rasyid” dengan cara hanya mengubah parameter yang


(12)

terdapat pada fungsi glutCreateWindow. Dan juga pada program diatas mengubah posisi window menjad 90,90 (posisi akan berubah sesuai dengan ukuran lcd computer yang digunakan.

4. Buatlah agar segitiga menjadi segitiga siku-siku dan terletak pada posisi kiri atas, kanan atas, kiri bawah, kanan bawah, dan tepat di tengah, dengan mengubah parameter pada fungsi glVertex3f(a, b, c). Sajikan screenshot eksekusi program!

Syntax :

#include<stdlib.h> #include<glut.h> void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);

glVertex3f(1.0,1.0,0.0);//a

glVertex3f(1.0,0.5,0.0);//b

glVertex3f(0.5,1.0,0.0);//c

glVertex3f(-1.0,1.0,0.0);//a

glVertex3f(-1.0,0.5,0.0);//b

glVertex3f(-0.5,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a


(13)

glVertex3f(-0.5,-1.0,0.0);//c

glVertex3f(1.0,-1.0,0.0);//a

glVertex3f(1.0,-0.5,0.0);//b

glVertex3f(0.5,-1.0,0.0);//c

glVertex3f(-0.5,-0.5,0.0);//a

glVertex3f(-0.5,0.5,0.0);//b

glVertex3f(0.5,-0.5,0.0);//c

glEnd(); glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

- Program diatas menampilkan 5 objek segitiga siku- siku. Program diatas menggunakan 15 fungsi glVertex untuk 5 objek dengan masing-masing objek terdiri dari 3 titik ( 3 fungsi glVertex) sehingga untuk satu objek dibutuhkan 3 fungsi glVertex untuk dapat menggambarkan objeknya pada windows. Program diatas dibuat dengan ukuran size 320,320 dan posisi windows dengan ukuran 100,100.


(14)

glVertex3f(1.0,1.0,0.0);//a

glVertex3f(1.0,0.5,0.0);//b

glVertex3f(0.5,1.0,0.0);//c fungsi ini digunakan untuk membuat objek segitiga siku-siku bagian kanan atas

glVertex3f(-1.0,1.0,0.0);//a

glVertex3f(-1.0,0.5,0.0);//b

glVertex3f(-0.5,1.0,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian kiri atas

glVertex3f(-1.0,-1.0,0.0);//a

glVertex3f(-1.0,-0.5,0.0);//b

glVertex3f(-0.5,-1.0,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian kiri bawah

glVertex3f(1.0,-1.0,0.0);//a

glVertex3f(1.0,-0.5,0.0);//b

glVertex3f(0.5,-1.0,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian kanan bawah

glVertex3f(-0.5,-0.5,0.0);//a

glVertex3f(-0.5,0.5,0.0);//b

glVertex3f(0.5,-0.5,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian tengah

5. Dari program (d) ubahlah dimensi window aplikasi menjadi 640 x 640 (w x h). Sajikan screenshotnya. Bandingkan dengan ukuran window yang sebelumnya dan beri kesimpulan.

Syntax :

#include<stdlib.h> #include<glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(1.0,1.0,0.0);//a glVertex3f(1.0,0.5,0.0);//b glVertex3f(0.5,1.0,0.0);//c glVertex3f(-1.0,1.0,0.0);//a glVertex3f(-1.0,0.5,0.0);//b glVertex3f(-0.5,1.0,0.0);//c glVertex3f(-1.0,-1.0,0.0);//a glVertex3f(-1.0,-0.5,0.0);//b glVertex3f(-0.5,-1.0,0.0);//c glVertex3f(1.0,-1.0,0.0);//a glVertex3f(1.0,-0.5,0.0);//b glVertex3f(0.5,-1.0,0.0);//c


(15)

glVertex3f(0.0,0.0,0.0);//a

glVertex3f(0.0,0.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glEnd(); glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(640,640);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

- Program diatas merupakan modifikasi dari program point 4. Yaitu memperbesar size windows menjadi 640, 640 sehingga ukurannya menjadi lebih besar. Jauh berbeda dengan hasil dari point 4 perbandingannya 2kali lipat dari point 4. Sehingga hasil menjadi tampak lebih jelas.


(16)

6. Ubahlah program menjadi seperti di bawah ini. (tambahan tampak pada tanda). Ubahlah nilai nilai parameter pada glVertex3f(a, b, c); dari bernilai 10 dan -10 menjadi nilai maksimal 50 dan -50. Sajikan screeshot-nya dan buatlah kesimpulan yang berhubungan dengan fungsi

gluOrtho2D(left,right,bottom,top). Syntax :

// syntax awal

#include<stdlib.h> #include<glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-0.5,0.0,0.0);//a glVertex3f(0.5.0,0.0,0.0);//b glVertex3f(0.0,0.5,0.0);//c glEnd(); glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene);

glutMainLoop(); }

// setelah modifikasi mengubah nilai parameter glVertex3f(a,b,c) menjadi 50 dan -50

#include<stdlib.h> #include<glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-50.0,50.0,0.0);//a glVertex3f(-50.0,0.0,0.0);//b glVertex3f(0.0,0.0,0.0);//c glEnd(); glFlush(); }

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


(17)

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot : // awal

// setelah modifikasi

Penjelasan :

- Program awal sebelum modifikasi menggunakan fungsi pembuatan objek segitiga dengan koordinat

glVertex3f(-0.5,0.0,0.0);//a

glVertex3f(0.5.0,0.0,0.0);//b


(18)

letak objek ini berada di tengah antara kordinat 1 dan 2.

Sedangkan pada program setelah modifikasi menggunakan fungsi pembuatan objek segitiga dengan koordinat

glVertex3f(-50.0,50.0,0.0);//a

glVertex3f(-50.0,0.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

otomatis letak dan besarnya pun berbeda, letaknya menjadi pinggir atas tentu dengan lebar koordinat yang jauh lebih besar. Keduanya menggunakan fungsi gluOrtho2D(-50.0,50.0,-50.0,50.0);

Yang fungsinya untuk mengatur volume tampilan pada windows.

Fungsi ini berfungsi untuk mendefinisikan besarnya system koordinat dengan range sumbu x(left, right) dan sumbu y (bottom, top).

F. TUGAS ASISTENSI

Buatlah sebuah aplikasi yang menampilkan segitiga siku-siku, segitiga sembarang, sama kaki, dan sama sisi dengan koordinat yang berbeda. Dan window aplikasi berukuran : panjang = 3 digit NIM

lebar = 3 digit NIM

judul window = Nama lengkap Syntax :

#include<stdlib.h> #include<glut.h> void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);

glVertex3f(1.0,0.5,0.0);//a // segitiga siku-siku

glVertex3f(0.5,0.5,0.0);//b

glVertex3f(1.0,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a // segitiga sembarang

glVertex3f(-0.5,0.0,0.0);//b

glVertex3f(-1.0,0.5,0.0);//c

glVertex3f(-0.5,-1.0,0.0);//a //segitiga sama kaki

glVertex3f(0.5,-1.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glVertex3f(-0.5,0.0,0.0); // segitiga sama sisi


(19)

glVertex3f(0.0,0.5,0.0); glEnd();

glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(243,243);

glutCreateWindow("Ananda Putri Syaviri"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot:

Penjelasan :

- Program diatas menampilkan 3 buah objek segitiga dengan bentuk dan titik koordinat yang berbeda pula. Menggunakan ukuran windows 243,243 (3 digit nim terakhir sesuia dengan perintah). Sehingga pasti hasil tugas asistensi per anak berbeda. Menggunakan judul window ‘Ananda Putri Syaviri’ dengan ukuran posisi windows 100,100.

glVertex3f(1.0,0.5,0.0);//a // segitiga siku-siku

glVertex3f(0.5,0.5,0.0);//b

glVertex3f(1.0,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a // segitiga sembarang

glVertex3f(-0.5,0.0,0.0);//b


(20)

glVertex3f(-0.5,-1.0,0.0);//a //segitiga sama kaki

glVertex3f(0.5,-1.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glVertex3f(-0.5,0.0,0.0); // segitiga sama sisi

glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0);

System dan titik koordinat. G. KESIMPULAN

- Header glut.h adalah header yang digunakan untuk pemrograman grafis menggunakan OpenGL-Glut.

- Fungsi glutInitWindowPosition digunakan untuk membuat windows dengan letak sesuai parameter yang diinginkan pada jendela windows.

- Fungsi glutInitWindowSize digunakan untuk membuat windows dengan ukuran sesuai dengan parameter yang dituliskan.


(21)

- Fungsi gluOrtho2D(left,right,bottom,top) yang nantinya diisi dengan parameter titik koordinat berfungsi mendefinisikan besarnya system koordinat dengan range sumbu x dan y.

- Fungsi untuk pemanggilan program (display ) adalah glutDisplayFunc(renderScene).

- Fungsi untuk perulangan display agar program tidak berhenti adalah glutMainLoop - glutBegin(GL_TRIANGLE) merupakan fungsi untuk pembuatan objek dengan isi

parameter yang ditentukan , tidak hanya segitiga, line, polygon dan lain-lain juga dapat dibentuk.

- Untuk membentuk objek dapat menggunakan fungsi glVertex3f. H. DAFTAR PUSTAKA

Modul 1 Praktikum Grafika Komputer. Prodi S1 Pendidikan Teknik Informatika . Universitas Negeri Malang2015


(1)

6. Ubahlah program menjadi seperti di bawah ini. (tambahan tampak pada tanda). Ubahlah nilai nilai parameter pada glVertex3f(a, b, c); dari bernilai 10 dan -10 menjadi nilai maksimal 50 dan -50. Sajikan screeshot-nya dan buatlah kesimpulan yang berhubungan dengan fungsi

gluOrtho2D(left,right,bottom,top). Syntax :

// syntax awal

#include <stdlib.h>

#include <glut.h>

void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-0.5,0.0,0.0);//a glVertex3f(0.5.0,0.0,0.0);//b glVertex3f(0.0,0.5,0.0);//c glEnd(); glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene);

glutMainLoop(); }

// setelah modifikasi mengubah nilai parameter glVertex3f(a,b,c) menjadi 50 dan -50

#include <stdlib.h>

#include <glut.h>

void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-50.0,50.0,0.0);//a glVertex3f(-50.0,0.0,0.0);//b glVertex3f(0.0,0.0,0.0);//c glEnd(); glFlush(); }

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


(2)

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot : // awal

// setelah modifikasi

Penjelasan :

- Program awal sebelum modifikasi menggunakan fungsi pembuatan objek segitiga dengan koordinat

glVertex3f(-0.5,0.0,0.0);//a glVertex3f(0.5.0,0.0,0.0);//b glVertex3f(0.0,0.5,0.0);//c


(3)

letak objek ini berada di tengah antara kordinat 1 dan 2.

Sedangkan pada program setelah modifikasi menggunakan fungsi pembuatan objek segitiga dengan koordinat

glVertex3f(-50.0,50.0,0.0);//a glVertex3f(-50.0,0.0,0.0);//b glVertex3f(0.0,0.0,0.0);//c

otomatis letak dan besarnya pun berbeda, letaknya menjadi pinggir atas tentu dengan lebar koordinat yang jauh lebih besar. Keduanya menggunakan fungsi gluOrtho2D(-50.0,50.0,-50.0,50.0);

Yang fungsinya untuk mengatur volume tampilan pada windows.

Fungsi ini berfungsi untuk mendefinisikan besarnya system koordinat dengan range sumbu x(left, right) dan sumbu y (bottom, top).

F. TUGAS ASISTENSI

Buatlah sebuah aplikasi yang menampilkan segitiga siku-siku, segitiga sembarang, sama kaki, dan sama sisi dengan koordinat yang berbeda. Dan window aplikasi berukuran :

panjang = 3 digit NIM lebar = 3 digit NIM

judul window = Nama lengkap

Syntax :

#include <stdlib.h>

#include <glut.h>

void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);

glVertex3f(1.0,0.5,0.0);//a // segitiga siku-siku glVertex3f(0.5,0.5,0.0);//b

glVertex3f(1.0,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a // segitiga sembarang glVertex3f(-0.5,0.0,0.0);//b

glVertex3f(-1.0,0.5,0.0);//c

glVertex3f(-0.5,-1.0,0.0);//a //segitiga sama kaki glVertex3f(0.5,-1.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glVertex3f(-0.5,0.0,0.0); // segitiga sama sisi glVertex3f(0.5,0.0,0.0);


(4)

glVertex3f(0.0,0.5,0.0); glEnd();

glFlush(); }

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

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(243,243);

glutCreateWindow("Ananda Putri Syaviri"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot:

Penjelasan :

- Program diatas menampilkan 3 buah objek segitiga dengan bentuk dan titik koordinat yang berbeda pula. Menggunakan ukuran windows 243,243 (3 digit nim terakhir sesuia dengan perintah). Sehingga pasti hasil tugas asistensi per anak berbeda. Menggunakan judul window ‘Ananda Putri Syaviri’ dengan ukuran posisi windows 100,100.

glVertex3f(1.0,0.5,0.0);//a // segitiga siku-siku glVertex3f(0.5,0.5,0.0);//b

glVertex3f(1.0,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a // segitiga sembarang glVertex3f(-0.5,0.0,0.0);//b


(5)

glVertex3f(-0.5,-1.0,0.0);//a //segitiga sama kaki glVertex3f(0.5,-1.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glVertex3f(-0.5,0.0,0.0); // segitiga sama sisi glVertex3f(0.5,0.0,0.0);

glVertex3f(0.0,0.5,0.0);

System dan titik koordinat.

G. KESIMPULAN

- Header glut.h adalah header yang digunakan untuk pemrograman grafis menggunakan OpenGL-Glut.

- Fungsi glutInitWindowPosition digunakan untuk membuat windows dengan letak sesuai parameter yang diinginkan pada jendela windows.

- Fungsi glutInitWindowSize digunakan untuk membuat windows dengan ukuran sesuai dengan parameter yang dituliskan.


(6)

- Fungsi gluOrtho2D(left,right,bottom,top) yang nantinya diisi dengan parameter titik koordinat berfungsi mendefinisikan besarnya system koordinat dengan range sumbu x dan y.

- Fungsi untuk pemanggilan program (display ) adalah glutDisplayFunc(renderScene).

- Fungsi untuk perulangan display agar program tidak berhenti adalah glutMainLoop

- glutBegin(GL_TRIANGLE) merupakan fungsi untuk pembuatan objek dengan isi parameter yang ditentukan , tidak hanya segitiga, line, polygon dan lain-lain juga dapat dibentuk.

- Untuk membentuk objek dapat menggunakan fungsi glVertex3f.

H. DAFTAR PUSTAKA

Modul 1 Praktikum Grafika Komputer. Prodi S1 Pendidikan Teknik Informatika . Universitas Negeri Malang 2015