GRAFIKA KOMPUTER
“Program 3D”
Disusun Oleh :
UNIVERSITAS PAKUAN
BOGOR
2019
KATA PENGANTAR
Penyusun
i
Daftar Isi
Contents
KATA PENGANTAR ........................................................................................................ i
3.2 Pembahasan............................................................................................................. 14
ii
BAB I
PENDAHULUAN
1
BAB II
Dasar Teori
Untuk dx<dy
2
2.1.2 Algoritma Menggambar Polygon
Polygon adalah bentuk yang disusun dari serangkaian garis. Polygon
memiliki titik sudut (vertex) dan garis penyusun (edge).
Sebuah polygon selalu mempunyai properti dasar :
jumlah vertex
koordinat vertex
data lokasi tiap vertex
Polyon memilik operasi-operasi sebagai berikut :
– Menginisialisasi polygon
inisialisasi terhadap polygon perlu dilakukan untuk mengatur agar field vertnum
berisi 0.
– Menyisipkan vertex
menyimpan informasi tentang vertex dan menyesuaikan informasi tentang jumlah
vertex dengan menambahkan satu ke vertnum.
– Menggambar polygon
3
mengunjungi vertex satu per satu dan menggambar edge dengan koordinat
(vertexi.x, vertexi.y) – (vertex i+1.x – vertex i+1.y) dari vertex nomor satu sampai
vertnum – 1. Khusus untuk edge terakhir mempunyai koordinat (vertexvertnum.x
, vertexvertnum.y) – (vertex1.x – vertex1.y).
– Mewarnai polygon
Mengisi area yang dibatasi oleh edge polygon dengan warna tertentu.
Berikut ini adalah algoritma menggambar Polygon :
index = 1
selama index < jumlah_vertex lakukan
vertex1 = ambil vertex ke[index]
jika index = jumlah_vertex maka
vertex2 = ambil vertex ke[1]
tetapi jika tidak maka
vertex2 = ambil vertex ke[index+1]
x1 = vertex1.x
y1 = vertex1.y
x2 = vertex2.x
y2 = vertex2.y
gambar garis dari (x1,y1) ke (x2,y2)
index = index +1
akhir selama index ≥ jumlah_vertex
#include<gl/glut.h>
glClear(GL_COLOR_BUFFER_BIT);
glLineWidth(5.0f);//ketebelan objek
4
glRotatef(xRotated,0.0,0.0,0.0);//menentukan bentuk rotasi
glRotatef(yRotated,0.0,1.0,0.0);
glRotatef(zRotated,0.0,0.0,0.0);
glColor3f(0.245f,0.245f,0.245f);
glEnd(); //menutup
glColor3f(0.245f,0.245f,0.245f);
glEnd();
glFlush();
glBegin(GL_POLYGON); // polygon kotak hitam besar samping atas /// terisi penuh
warnanya karna titik awal akan mencari titik akhir untuk dihubungi
glColor3f(0.245f,0.245f,0.245f);
5
glVertex3f(-0.50, 0.60, -0.10);
glEnd();
glFlush();
glColor3f(0.245f,0.245f,0.245f);
glEnd();
glFlush();
glColor3f(0.245f,0.245f,0.245f);
glEnd();
glFlush();
/////////////////////////////////////////////////////////////////////////////////////////
6
glBegin(GL_LINE_LOOP); // 1 logo sublime text 3
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
7
glBegin(GL_LINE_LOOP); // 4 logo sublime text 3
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
8
glBegin(GL_LINE_LOOP); // 7 logo sublime text 3
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
9
glBegin(GL_LINE_LOOP); // 10 logo sublime text 3
glColor3f(1.0f,0.50f,0.00f);
glEnd();
glFlush();
glBegin(GL_POINTS);
glColor3f(0.0f,0.0f,0.0f);
glVertex3f(0.0,-0.05,0.0);
glEnd();
glFlush();
if(y==0||x==0)return;
10
glLoadIdentity();//memanggil matriks identity jadikan status matriks(proyeksi)
gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0);//perbesar objek
void Idle(void)
yRotated +=0.05;
zRotated +=0.0;
int main (int argc, char **argv){//argc(argument for count)=tipe int, fungsi
menunjukan banyak parameter dlm eksekusi program
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(840,680);
glutCreateWindow("Grafkom");
glClearColor(0.0,1.0,1.0,1.0);
glutIdleFunc(Idle);
glutMainLoop();
return 0;
11
2.3 Output
12
13
BAB III
Hasil dan Pembahasan
3.1 Hasil
3.2 Pembahasan
Dalam pembuatan program 3D ini, kami menggunakan kordinat sumbu x
dan y untuk 2D dan sumbu z untuk 3D. Kami juga menggunakan algoritma-
algoritma dalam grafika komputer untuk memudahkan pembuatan object-object
yang dibuat. Algoritma yang kami pakai adalah algoritma garis bresenham untuk
menggambar garis dan algoritma menggambar polygon untuk menggambar
polygon. Setelah object terbuat maka kami menambahkan efek transformasi 3D
berupa translasi dan rotasi dengan glTranslatef dan glRotatef.
14
DAFTAR PUSTAKA
15