1
S1 Pend. Teknik Informatika 2014 OFF B
2
S1 Pend. Teknik Informatika 2014 OFF B
3
S1 Pend. Teknik Informatika 2014 OFF B
Output
Penjelasan
Program ini merupakan sebuah program yang digunakan untuk membuat sebuah
inisialisasi nama. Pada program ini terdapat fungsi glBegin(GL_POLYGON) yang digunakan
untuk membuat objek geometri. Dengan fungsi polygon, titik antarkoordinat yang telah dibuat
akan terhubung satu sama lain. Titik koordinat harus dibuat secara berurutan dari ujung
dimulainya hingga bertemu di titik ujung awal kembali. Dalam hal pewarnaan, penentuan
warna yang akan digunakan diletakkan pada masing-masing titik. Apabila setiap titik dalam
sebuah objek memiliki warna yang berbeda, maka hasilnya akan menjadi gradasi warna
seperti yang terlihat pada output program di atas.
4
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS 2 (LINGKARAN BERGRADASI)
Kode Program
5
S1 Pend. Teknik Informatika 2014 OFF B
Output
Penjelasan
Program ini menggunakan rumus untuk menempatkan glVertex agar membentuk sebuah
lingkaran. Pada program ini juga menggunakan glBegin(GL_POLYGON) dalam membuat
objek geometri, di mana fungsi ini akan menghubungkan antarkoordinat-koordinat yang ada.
Setelah menghubungkan antarkoordinat, progam ini juga menggunakan perulangan for(int
i=0;i<360 ;i++) untuk melakukan perulangan terhadap warna dengan putaran penuh, yaitu
360. Sehingga kedua warna akan tampil berselang-seling.
6
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS 3 (BINTANG BERWARNA)
Kode Program
#include <stdlib.h>
#include <glut.h>
void drawPoliline() //fungsi gambar bintang
{
glClear(GL_COLOR_BUFFER_BIT); //menghapus layar
glBegin(GL_TRIANGLES); //awal penggambaran objek segitiga
//SEGITIGA ATAS
glColor3f(1.0,0.0,0.0); //RED
glVertex2d(-2,0);
glVertex2d(0,6);
glVertex2d(2,0);
//SEGITIGA KANAN SAMPING
glColor3f(0.0,0.55,0.55); //DARK CYAN
glVertex2d(2,0);
glVertex2d(6,0);
glVertex2d(3,-4);
//SEGITIGA KIRI SAMPING
glColor3f(0.0,0.0,1.0); //BLUE
glVertex2d(-2,0);
glVertex2d(-6,0);
glVertex2d(-3,-4);
//SEGITIGA KANAN BAWAH
glColor3f(1.0,1.0,0.0); //YELLOW
glVertex2d(3,-4);
glVertex2d(4,-10);
glVertex2d(0,-7);
//SEGITIGA KIRI BAWAH
glColor3f(0.0,1.0,0.0); //GREEN
glVertex2d(-3,-4);
glVertex2d(-4,-10);
glVertex2d(-0,-7);
glEnd(); //akhir penggambaran objek segitiga
void main(int argc, char **argv) //fungsi utama yang dijalankan program
{
glutInit(&argc, argv); //inisialisasi GLUT
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); //mengatur mode tampilan
buffer tunggal dengan model pewarnaan RGBA (Red, Green, Blue, Alpha)
glutInitWindowPosition(100,50); //mengatur posisi window saat dijalankan
glutInitWindowSize(640,480); //mengatur ukuran window
glutCreateWindow("COLORFUL STAR"); //judul yang akan tampil pada title bar window
gluOrtho2D(-25.,25.,-25.,25.); //mengatur proyeksi hasil eksekusi dan mendefinisikan
besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas
glutDisplayFunc(drawPoliline); //memanggil fungsi drawPoliline untuk ditampilkan
glutMainLoop(); //mengulang fungsi
}
7
S1 Pend. Teknik Informatika 2014 OFF B
Output
Penjelasan
Program ini merupakan program untuk menampilkan bintang berwarna-warni. Objek
bintang di dalam program ini terdiri dari 5 segitiga dan 1 segilima dengan rincian sebagai
berikut:
Segitiga Atas MERAH
Segitiga Kanan Samping TOSCA
Segitiga Kanan Bawah YELLOW
Segitiga Kiri Bawah HIJAU
Segitiga Kiri Samping BIRU
Segilima PUTIH
Untuk objek segitiga menggunakan fungsi glBegin(GL_TRIANGLES), sedangkan untuk
objek segilima menggunakan fungsi glBegin(GL_POLYGON).
8
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS 4 (ROBOT)
Kode Program
#include <stdlib.h>
#include <glut.h>
glColor3f(0,0,0); //BLACK
glVertex2d(2,22);
glVertex2d(4,22);
glVertex2d(4,21);
glVertex2d(2,21);
glColor3f(0,0,0); //BLACK
glVertex2d(-2,22);
glVertex2d(-4,22);
glVertex2d(-4,21);
glVertex2d(-2,21);
glColor3f(0,0,0); //BLACK
glVertex2d(4,21);
glVertex2d(5,21);
glVertex2d(5,20);
glVertex2d(4,20);
glColor3f(0,0,0); //BLACK
glVertex2d(-4,21);
glVertex2d(-5,21);
glVertex2d(-5,20);
glVertex2d(-4,20);
glColor3f(0,0,0); //BLACK
glVertex2d(5,20);
glVertex2d(6,20);
glVertex2d(6,19);
glVertex2d(5,19);
glColor3f(0,0,0); //BLACK
glVertex2d(-5,20);
glVertex2d(-6,20);
glVertex2d(-6,19);
glVertex2d(-5,19);
glColor3f(0,0,0); //BLACK
glVertex2d(-3,20);
glVertex2d(3,20);
glVertex2d(3,19);
glVertex2d(-3,19);
9
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(-2,22);
glVertex2d(-1,22);
glVertex2d(-1,21);
glVertex2d(-2,21);
glColor3f(1,1,1); //WHITE
glVertex2d(-1,22);
glVertex2d(1,22);
glVertex2d(1,21);
glVertex2d(-1,21);
glColor3f(1,1,1); //WHITE
glVertex2d(-2,21);
glVertex2d(2,21);
glVertex2d(2,20);
glVertex2d(-2,20);
//KEPALA
glColor3f(0,0,0); //BLACK
glVertex2d(-6,19);
glVertex2d(6,19);
glVertex2d(6,17);
glVertex2d(-6,17);
//Tepi Kiri
glColor3f(0,0,0); //BLACK
glVertex2d(-6,17);
glVertex2d(-3,17);
glVertex2d(-3,16);
glVertex2d(-6,16);
glColor3f(0,0,0); //BLACK
10
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(-6,16);
glVertex2d(-5,16);
glVertex2d(-5,12);
glVertex2d(-6,12);
glColor3f(0,0,0); //BLACK
glVertex2d(-7,15);
glVertex2d(-6,15);
glVertex2d(-6,13);
glVertex2d(-7,13);
glColor3f(0,0,0); //BLACK
glVertex2d(-5,14);
glVertex2d(-4,14);
glVertex2d(-4,13);
glVertex2d(-5,13);
glColor3f(0,0,0); //BLACK
glVertex2d(-5,12);
glVertex2d(-4,12);
glVertex2d(-4,11);
glVertex2d(-5,11);
glColor3f(0,0,0); //BLACK
glVertex2d(-4,11);
glVertex2d(-3,11);
glVertex2d(-3,9);
glVertex2d(-4,9);
glColor3f(0,0,0); //BLACK
glVertex2d(-3,10);
glVertex2d(-2,10);
glVertex2d(-2,8);
glVertex2d(-3,8);
//Mata Kiri
glColor3f(0,0,0); //BLACK
glVertex2d(-2,16);
glVertex2d(-1,16);
glVertex2d(-1,14);
glVertex2d(-2,14);
//Mata Kanan
glColor3f(0,0,0); //BLACK
glVertex2d(2,16);
glVertex2d(1,16);
glVertex2d(1,14);
glVertex2d(2,14);
//Wajah
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-3,17);
glVertex2d(3,17);
glVertex2d(3,16);
glVertex2d(-3,16);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-5,16);
glVertex2d(-2,16);
glVertex2d(-2,14);
glVertex2d(-5,14);
11
S1 Pend. Teknik Informatika 2014 OFF B
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-1,16);
glVertex2d(1,16);
glVertex2d(1,14);
glVertex2d(-1,14);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(5,16);
glVertex2d(2,16);
glVertex2d(2,14);
glVertex2d(5,14);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-2,13);
glVertex2d(2,13);
glVertex2d(2,12);
glVertex2d(-2,12);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-4,14);
glVertex2d(4,14);
glVertex2d(4,13);
glVertex2d(-4,13);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-5,13);
glVertex2d(-3,13);
glVertex2d(-3,12);
glVertex2d(-5,12);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-4,12);
glVertex2d(-3,12);
glVertex2d(-3,11);
glVertex2d(-4,11);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-3,11);
glVertex2d(-2,11);
glVertex2d(-2,10);
glVertex2d(-3,10);
glColor3f(0,0,0); //BLACK
glVertex2d(-3,13);
glVertex2d(-2,13);
glVertex2d(-2,11);
glVertex2d(-3,11);
glColor3f(0,0,0); //BLACK
glVertex2d(-2,12);
glVertex2d(0,12);
glVertex2d(0,10);
glVertex2d(-2,10);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(5,13);
glVertex2d(3,13);
glVertex2d(3,12);
glVertex2d(5,12);
glColor3f(1,0.675,0.122); //ORANGE
12
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(4,12);
glVertex2d(3,12);
glVertex2d(3,11);
glVertex2d(4,11);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(3,11);
glVertex2d(2,11);
glVertex2d(2,10);
glVertex2d(3,10);
glColor3f(0,0,0); //BLACK
glVertex2d(3,13);
glVertex2d(2,13);
glVertex2d(2,11);
glVertex2d(3,11);
glColor3f(0,0,0); //BLACK
glVertex2d(2,12);
glVertex2d(0,12);
glVertex2d(0,10);
glVertex2d(2,10);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(-2,10);
glVertex2d(0,10);
glVertex2d(0,8);
glVertex2d(-2,8);
glColor3f(1,0.675,0.122); //ORANGE
glVertex2d(0,10);
glVertex2d(2,10);
glVertex2d(2,9);
glVertex2d(0,9);
glColor3f(0,0,0); //BLACK
glVertex2d(0,9);
glVertex2d(2,9);
glVertex2d(2,8);
glVertex2d(0,8);
//Tepi Kanan
glColor3f(0,0,0); //BLACK
glVertex2d(6,17);
glVertex2d(3,17);
glVertex2d(3,16);
glVertex2d(6,16);
glColor3f(0,0,0); //BLACK
glVertex2d(6,16);
glVertex2d(5,16);
glVertex2d(5,12);
glVertex2d(6,12);
glColor3f(0,0,0); //BLACK
glVertex2d(7,15);
glVertex2d(6,15);
glVertex2d(6,13);
glVertex2d(7,13);
glColor3f(0,0,0); //BLACK
glVertex2d(5,14);
13
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(4,14);
glVertex2d(4,13);
glVertex2d(5,13);
glColor3f(0,0,0); //BLACK
glVertex2d(5,12);
glVertex2d(4,12);
glVertex2d(4,11);
glVertex2d(5,11);
glColor3f(0,0,0); //BLACK
glVertex2d(4,11);
glVertex2d(3,11);
glVertex2d(3,9);
glVertex2d(4,9);
glColor3f(0,0,0); //BLACK
glVertex2d(3,10);
glVertex2d(2,10);
glVertex2d(2,8);
glVertex2d(3,8);
//TANGAN KIRI
glColor3f(0,0,0); //BLACK
glVertex2d(-5,8);
glVertex2d(0,8);
glVertex2d(0,7);
glVertex2d(-5,7);
glColor3f(0,0,0); //BLACK
glVertex2d(-6,7);
glVertex2d(-5,7);
glVertex2d(-5,6);
glVertex2d(-6,6);
glColor3f(0,0,0); //BLACK
glVertex2d(-1,7);
glVertex2d(2,7);
glVertex2d(2,6);
glVertex2d(-1,6);
glColor3f(0,0,0); //BLACK
glVertex2d(-3,6);
glVertex2d(0,6);
glVertex2d(0,5);
glVertex2d(-3,5);
glColor3f(0,0,0); //BLACK
glVertex2d(-4,5);
glVertex2d(-3,5);
glVertex2d(-3,4);
glVertex2d(-4,4);
glColor3f(0,0,0); //BLACK
glVertex2d(-7,6);
glVertex2d(-6,6);
glVertex2d(-6,4);
glVertex2d(-7,4);
glColor3f(0,0,0); //BLACK
glVertex2d(-6,4);
glVertex2d(-2,4);
14
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(-2,3);
glVertex2d(-6,3);
glColor3f(1,1,1); //WHITE
glVertex2d(-3,5);
glVertex2d(-2,5);
glVertex2d(-2,4);
glVertex2d(-3,4);
//TANGAN KANAN
glColor3f(1,1,1); //WHITE
glVertex2d(0,8);
glVertex2d(2,8);
glVertex2d(2,7);
glVertex2d(0,7);
glColor3f(0,0,0); //BLACK
glVertex2d(2,8);
glVertex2d(5,8);
glVertex2d(5,7);
glVertex2d(2,7);
glColor3f(0,0,0); //BLACK
glVertex2d(5,7);
glVertex2d(6,7);
glVertex2d(6,6);
glVertex2d(5,6);
glColor3f(0,0,0); //BLACK
glVertex2d(6,6);
glVertex2d(7,6);
glVertex2d(7,4);
glVertex2d(6,4);
glColor3f(0,0,0); //BLACK
glVertex2d(5,4);
glVertex2d(6,4);
glVertex2d(6,-2);
glVertex2d(5,-2);
glColor3f(0,0,0); //BLACK
glVertex2d(0,3);
glVertex2d(5,3);
glVertex2d(5,2);
15
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(0,2);
glColor3f(0,0,0); //BLACK
glVertex2d(-1,4);
glVertex2d(0,4);
glVertex2d(0,3);
glVertex2d(-1,3);
glColor3f(0,0,0); //BLACK
glVertex2d(-2,5);
glVertex2d(-1,5);
glVertex2d(-1,4);
glVertex2d(-2,4);
//BADAN
glColor3f(0,0,0); //BLACK
glVertex2d(-5,3);
glVertex2d(-4,3);
glVertex2d(-4,-2);
glVertex2d(-5,-2);
glColor3f(0,0,0); //BLACK
glVertex2d(-6,-2);
glVertex2d(-5,-2);
glVertex2d(-5,-5);
glVertex2d(-6,-5);
glColor3f(0,0,0); //BLACK
glVertex2d(-5,-3);
glVertex2d(-1,-3);
glVertex2d(-1,-4);
glVertex2d(-5,-4);
glColor3f(0,0,0); //BLACK
glVertex2d(-1,-2);
glVertex2d(0,-2);
glVertex2d(0,-3);
glVertex2d(-1,-3);
16
S1 Pend. Teknik Informatika 2014 OFF B
glColor3f(0,0,0); //BLACK
glVertex2d(0,-1);
glVertex2d(1,-1);
glVertex2d(1,-2);
glVertex2d(0,-2);
glColor3f(0,0,0); //BLACK
glVertex2d(1,-2);
glVertex2d(2,-2);
glVertex2d(2,-3);
glVertex2d(1,-3);
glColor3f(0,0,0); //BLACK
glVertex2d(2,-3);
glVertex2d(7,-3);
glVertex2d(7,-4);
glVertex2d(2,-4);
glColor3f(0,0,0); //BLACK
glVertex2d(6,-2);
glVertex2d(7,-2);
glVertex2d(7,-3);
glVertex2d(6,-3);
glColor3f(1,1,1); //WHITE
glVertex2d(-4,3);
glVertex2d(-2,3);
glVertex2d(-2,1);
glVertex2d(-4,1);
glColor3f(1,1,1); //WHITE
glVertex2d(2,2);
glVertex2d(4,2);
glVertex2d(4,1);
glVertex2d(2,1);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(-5,-2);
glVertex2d(-4,-2);
glVertex2d(-4,-3);
glVertex2d(-5,-3);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(-4,1);
glVertex2d(-2,1);
glVertex2d(-2,-3);
glVertex2d(-4,-3);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(-2,4);
glVertex2d(-1,4);
glVertex2d(-1,-3);
glVertex2d(-2,-3);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(-1,3);
glVertex2d(0,3);
glVertex2d(0,-2);
glVertex2d(-1,-2);
glColor3f(0,0.561,0.863); //BIRU
17
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(0,2);
glVertex2d(2,2);
glVertex2d(2,-1);
glVertex2d(0,-1);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(2,1);
glVertex2d(4,1);
glVertex2d(4,-1);
glVertex2d(2,-1);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(4,2);
glVertex2d(5,2);
glVertex2d(5,-1);
glVertex2d(4,-1);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(1,-1);
glVertex2d(5,-1);
glVertex2d(5,-2);
glVertex2d(1,-2);
glColor3f(0,0.561,0.863); //BIRU
glVertex2d(2,-2);
glVertex2d(6,-2);
glVertex2d(6,-3);
glVertex2d(2,-3);
//SEPATU KIRI
glColor3f(0,0,0); //BLACK
glVertex2d(-7,-5);
glVertex2d(-6,-5);
glVertex2d(-6,-7);
glVertex2d(-7,-7);
glColor3f(0,0,0); //BLACK
glVertex2d(-6,-6);
glVertex2d(-1,-6);
glVertex2d(-1,-7);
glVertex2d(-6,-7);
glColor3f(0,0,0); //BLACK
glVertex2d(-2,-4);
glVertex2d(-1,-4);
glVertex2d(-1,-6);
glVertex2d(-2,-6);
//SEPATU KANAN
glColor3f(0,0,0); //BLACK
18
S1 Pend. Teknik Informatika 2014 OFF B
glVertex2d(3,-4);
glVertex2d(4,-4);
glVertex2d(4,-7);
glVertex2d(3,-7);
glColor3f(0,0,0); //BLACK
glVertex2d(4,-6);
glVertex2d(9,-6);
glVertex2d(9,-7);
glVertex2d(4,-7);
glColor3f(0,0,0); //BLACK
glVertex2d(8,-5);
glVertex2d(9,-5);
glVertex2d(9,-6);
glVertex2d(8,-6);
glColor3f(0,0,0); //BLACK
glVertex2d(7,-4);
glVertex2d(8,-4);
glVertex2d(8,-5);
glVertex2d(7,-5);
void main(int argc, char **argv) //fungsi utama yang akan dijalankan
{
glutInit(&argc, argv); //inisialisasi GLUT
19
S1 Pend. Teknik Informatika 2014 OFF B
Output
Penjelasan
Di dalam program ini lebih menekankan penggunaan glBegin(GL_QUADS) dalam
membentuk objek. Fungsi QUADS merupakan fungsi yang digunakan untuk menggambar
objek segiempat (memiliki 4 titik). Objek di atas dibagi menjadi 5 bagian, yaitu topi, kepala,
tangan (kanan dan kiri), badan, dan sepatu. Dalam hal pewarnaan, objek di atas menggunakan
6 warna, antara lain:
Hitam : glColor3f(0,0,0);
Putih : glColor3f(1,1,1);
Hijau Tua : glColor3f(0,0.6,0.2);
Biru : glColor3f(0,0.561,0.863);
Orange : glColor3f(1,0.675,0.122);
Coklat : glColor3f(0.478, 0.1098, 0.028);
20
S1 Pend. Teknik Informatika 2014 OFF B