Anda di halaman 1dari 15

MODUL 3

OBJECT 2 DIMENSI

1. Latihan
1.1 Latihan Praktikum Persegi Panjang
1.1.1 Source Code

#include <Windows.h>
#include <glut.h>

void Balok(int x,int y,int w,int h){


glBegin(GL_QUADS);
glVertex2i(x,y);
glVertex2i(w+x,y);
glVertex2i(w+x,y-h);
glVertex2i(x,y-h);
glEnd();
}

void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.,1.,0.);
Balok(-300,200,200,100);
glColor3f(0.,1.,1.);
Balok(0,200,250,150);
glColor3f(1.,0.,1.);
Balok(-100,0,150,50);
glFlush();
}

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


glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-320.,320.,-240.,240.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
1.1.2 Output

1.1.3 Analisa
Program diatas disusun bertujuan untuk membuat 3 Balok yang
mempunyai perbedaan letak ,ukuran dan warna. Didalamnya terdapat fungsi
Balok yang mempunyai 4 parameter yaitu x , y , w , h. Masing- masing
parameter digunakan untuk menentukan letak koordinat x,y dan juga untuk
menentukan ukuran Tinggi Lebarnya. Menggunakan fungsi OpenGL
segiempat untuk membentuk balok yang mempunyai blok warna didalam
objeknya. Setelah ditentukan rumus vertex nya, fungsi ini kemudian akan
di panggil pada fungsi kedua, yaitu fungsi renderScene. Didalam fungsi
renderScene, fungsi Balok dipanggil sebanyak 3 kali dengan pengisian 4
parameter yang berbeda untuk membentuk balok yang berbeda – beda pula.
Sebelum pemanggilan fungsi balok, ditentukan juga pewarnaan baloknya.
Untuk penampilan objeknya, fungsi renderScene dipanggil kedalam fungsi
main yang didalam fungsi main tersebut terdapat penentuan ukuran
windows, posisi dan koordinat sistem yang digunakan untuk menampilkan
objek pada program yang telah disusun.
1.2 Latihan Praktikum Trapesium Siku-siku
1.2.1 Source Code

#include <Windows.h>
#include <glut.h>

void Trapesium(int x,int y,int w,int h){


glBegin(GL_QUADS);
glVertex2i(x,y);
glVertex2i(w+x,y);
glVertex2i((w/2)+x,y+h);
glVertex2i(x,y+h);
glEnd();
}

void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.,1.,0.);
Trapesium(-300,100,200,100);
glColor3f(0.,1.,1.);
Trapesium(0,100,150,100);
glColor3f(1.,0.,1.);
Trapesium(-100,0,150,50);
glFlush();
}
int main(int argc,char**argv){
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-320.,320.,-240.,240.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
1.2.2 Output

1.2.3 Analisa
Program diatas disusun bertujuan untuk membuat 3 Trapesium Siku-
siku yang mempunyai perbedaan letak , ukuran dan warna. Program ini
Mempunyai banyak kemiripan dengan latihan sebelumnya. Perbedaan yang
ada adalah penggunaan rumus vertex yang sebagian diubah untuk
membentuk sebuah trapesium siku-siku. Pada fungsi Trapesium, pada
rumus vertex ke 3 dan ke 4 rumusnya diubah untuk menjadikan yang
sebelumnya adalah objek balok menjadi trapesium dengan membagi dua
parameter w dan mengubah parameter h menjadi pengurangan sehingga
terbentuklah objek trapesium siku-siku.
1.3 Latihan Praktikum Trapesium Sama Kaki
1.3.1 Source Code

#include <Windows.h>
#include <glut.h>

void Trapesium(int x,int y,int w,int h){


glBegin(GL_QUADS);
glVertex2i(x,y);
glVertex2i(w+x,y);
glVertex2i((w/1.5)+x,y+h);
glVertex2i(x/1.5,y+h);
glEnd();
}

void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.,1.,0.);
Trapesium(200,-100,-200,100);
glColor3f(0.,1.,1.);
Trapesium(-250,0,300,150);
glColor3f(1.,0.,1.);
Trapesium(-200,-150,200,100);
glFlush();
}

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


glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-320.,320.,-280.,280.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
1.3.2 Output

1.3.3 Analisa
Program diatas disusun bertujuan untuk membuat 3 Trapesium sama
kaki yang mempunyai perbedaan letak , ukuran dan warna. Program ini
Mempunyai banyak kemiripan dengan latihan sebelumnya. Perbedaan yang
ada adalah penggunaan rumus vertex yang sebagian diubah untuk
membentuk sebuah trapesium sama kaki. Pada fungsi Trapesium, pada
rumus vertex ke 3 dan ke 4 rumus vertex parameter w dan x dibagi dengan
1.5 akan membentuk objek yang sebelumnya adalah balok menjadi
trapesium sama kaki.
1.4 Latihan Praktikum Jajar Genjang
1.4.1 Source Code

#include <Windows.h>
#include <glut.h>

void JajarGenjang(int x,int y,int w,int h){


glBegin(GL_QUADS);
glVertex2i(x,y);
glVertex2i(w+x,y);
glVertex2i((w/2)+x,y-h);
glVertex2i(x*2,y-h);
glEnd();
}

void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.,1.,0.);
JajarGenjang(-150,250,300,100);
glColor3f(0.,1.,1.);
JajarGenjang(-250,100,350,100);
glColor3f(1.,0.,1.);
JajarGenjang(-100,-50,150,50);
glFlush();
}

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


glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-640.,640.,-320.,320.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
1.4.2 Output

1.4.3 Analisa

Program diatas disusun bertujuan untuk membuat 3 Jajar genjang yang


mempunyai perbedaan letak , ukuran dan warna. Program ini Mempunyai
banyak kemiripan dengan latihan sebelumnya. Perbedaan yang ada adalah
penggunaan rumus vertex yang sebagian diubah untuk membentuk sebuah
jajar genjang. Pada fungsi Trapesium, pada rumus struktur vertex ke 3 dan
ke 4 rumus diubah dengan membagi dua parameter w , dan menggandakan
parameter x sebanyak dua kali lalu mengubah parameter h menjadi
pengurangan sehingga terbentuklah objek Jajar genjang.
2. Tugas Rumah
2.1 Tugas Rumah 1
2.3.1 Source Code

#include <Windows.h>
#include <glut.h>

void Ketupat(int x,int y,int w,int z){


glBegin(GL_QUADS);
glVertex2i(x,y);
glVertex2i(x+w,y+z);
glVertex2i(x,y+(z*2));
glVertex2i(x-w,y+z);
glEnd();
}
void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.,1.,0.);
Ketupat(0,300,150,-150);
glColor3f(0.,1.,1.);
Ketupat(0,0,100,-100);
glColor3f(1.,0.,1.);
Ketupat(0,-200,50,-50);
glFlush();
}
int main(int argc,char**argv){
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-640.,640.,-480.,480.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
2.3.2 Output

2.3.3 Analisa
Program diatas disusun bertujuan untuk membuat 3 Ketupat yang
mempunyai perbedaan letak ,ukuran dan warna. Didalamnya terdapat
fungsi Ketupat yang mempunyai 4 parameter yaitu x , y , w , z. Masing-
masing parameter digunakan untuk menentukan letak koordinat x,y dan
juga untuk menentukan ukuran objek 2D nya. Menggunakan fungsi
OpenGL segiempat untuk membentuk ketupat yang mempunyai blok warna
didalam objeknya. Setelah ditentukan rumus vertex nya, fungsi ini
kemudian akan di panggil pada fungsi kedua, yaitu fungsi renderScene.
Didalam fungsi renderScene, fungsi Balok dipanggil sebanyak 3 kali
dengan pengisian 4 parameter yang berbeda untuk membentuk objek yang
berbeda – beda pula. Sebelum pemanggilan fungsi ketupat, ditentukan juga
pewarnaan objeknya. Untuk penampilan objeknya, fungsi renderScene
dipanggil kedalam fungsi main yang didalam fungsi main tersebut terdapat
penentuan ukuran windows, posisi dan koordinat sistem yang digunakan
untuk menampilkan objek pada program yang telah disusun.
2.2 Tugas Rumah 2
2.2.1 Source Code

#include <Windows.h>
#include <glut.h>

void Layangan(int x,int y,int w,int z){


glBegin(GL_QUADS);
glVertex2i(x,y);
glVertex2i(x+w,y+z);
glVertex2i(x,y+(z*3));
glVertex2i(x-w,y+z);
glEnd();
}
void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.,1.,0.);
Layangan(0,300,150,-150);
glColor3f(0.,1.,1.);
Layangan(0,-150,100,-100);
glColor3f(1.,0.,1.);
Layangan(0,-450,50,-50);
glFlush();
}
int main(int argc,char**argv){
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-720.,720.,-640.,640.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
2.2.2 Output

2.2.3 Analisa
Program diatas disusun bertujuan untuk membuat 3 Objek Layang -
layang yang mempunyai perbedaan letak ,ukuran dan warna. Program ini
Mempunyai banyak kesamaan dengan Tugas praktikum sebelumnya .
Perbedaan yang terdapat di program ini adalah koordinat titik bawah yang
membentuk belah ketupat direndahkan sehingga akan membentuk seperti
layang-layang. Hal ini dilakukan dengan mengubah rumus struktur vertex
ke 3 dari fungsi Layangan dengan menggandakan koordinat z sebanyak 3
kali Sehingga terbentuk objek layang-layang.
2.3 Tugas Rumah 3

2.3.1 Source Code

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

void Lingkaran(int x, int y, int r)


{
glBegin(GL_POLYGON);
for (int i=0;i<360 ;i++)
{
float sudut=i*(2*3.14/360);
float a=x+r*cos(sudut);
float b=y+r*sin(sudut);
glVertex2f(a,b);
}

glEnd();
glFlush();
}

void renderScene(void){
glClearColor(1.,1.,1.,1.);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.,1.,0.);
Lingkaran(0,300,150);
glColor3f(0.,1.,1.);
Lingkaran(0,-150,100);
glColor3f(1.,0.,1.);
Lingkaran(0,-450,50);
glFlush();
}
int main(int argc,char**argv){
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Praktikum Modul 2");
gluOrtho2D(-720.,720.,-640.,640.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
2.3.2 Output

2.3.4 Analisa
Program diatas disusun bertujuan untuk membuat 3 Objek lingkaran
yang mempunyai perbedaan letak ,ukuran dan warna. Didalam fungsi
Lingkaran terdapat perulangan yang didalam perulangan tersebut tersusun
rumus yang akan membentuk 2 koordinat jari-jari yang memanjang dan
memendek yang setelah melalui 360 kali perulangan akan membentuk
sebuah objek lingkaran. Fungsi Lingkaran kemudian akan di panggil pada
fungsi kedua, yaitu fungsi renderScene. Didalam fungsi renderScene,
fungsi lingkaran dipanggil sebanyak 3 kali dengan koordinat dan warna
yang berbeda-beda. Fungsi renderScene dipanggil kedalam fungsi main
yang didalam untuk menampilkan objek dengan ukuran windows, posisi
dan koordinat sistem yang telah ditentukan
3. Kesimpulan
 Header glut.h berisi library untuk menjalankan fungsi OpenGL
(glVertex,glColor3f dll.).
 glClear digunakan untuk menghapus buffer untuk nilai yang telah ditetapkan
 glVertex digunakan untuk menentukan koordinat objek yang akan dibentuk
 glColor3f digunakan untuk memberikan warna pada objek yang dibentuk
 Fungsi untuk membentuk objek primitif yaitu GL_POINTS ( titik ), GL_LINES( garis
),GL_LINE_STRIP (poliline) ,GL_LINE_LOOP(poligon), membentuk objek dengan
menghubungkan koordinat tetapi tidak dengan blok warna (objek tidak terisi dengan
warna)
 Fungsi untuk membentuk objek primitif yaitu GL_TRIANGLES ( segitiga ),
GL_QUADS( segiempat ),GL_POLYGON (poligon), membentuk objek dengan
menghubungkan koordinat dengan blok warna (objek terisi dengan warna)

4. Daftar Rujukan

 Modul 2 Praktikum Grafika Komputer. Prodi S1 Pendidikan Teknik


Informatika . Universitas Negeri Malang 2015

Anda mungkin juga menyukai