SlideShare a Scribd company logo
1 of 59
BAB I
PENDAHULUAN
1. 1 Latar Belakang
Perkembangan grafika komputer menuntut para pengembang
sistem aplikasi grafika komputer untuk dapat mengembangkan suatu
informasi yang dilengkapi dengan visualisasi dan animasi, agar dapat lebih
mudah dipahami oleh pihak yang menggunakan sistem tersebut. Grafika
komputer telah menunjukkan kemajuan yang pesat dalam pengembangan
berbagai aplikasi untuk menghasilkan gambar. Grafika komputer digunakan
untuk menunjang berbagai bidang dengan teknologi grafika berbasis
komputer. Penggunaan grafika komputer telah lama digunakan dalam
beberapa macam aplikasi, diantaranya pendidikan, kedokteran, fisika,
matematika, multimedia, dan lain-lain. Pada saat ini grafika komputer sudah
digunakan pada bidang sains, engineering, kedokteran, bisnis, industri,
pemerintahan, seni, hiburan, iklan, pendidikan, dan lain-lain. Oleh karena
itu, sudah semakin banyak pula bahasa pemrograman yang dilengkapi
dengan tools/library pembuatan grafik Salah satu tools/library pembuatan
aplikasi grafik adalah OpenGL (Open Graphics Library). OpenGL(Open
Graphics Library) 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. Dan makalah yang disampaikan
kali ini khusus membahas mengenai perancangan bangun 3 dimensi
menggunakan Visual Basic 6.0
1. Batasan Masalah
Batasan masalah pada perancangan bangun 3 Dimensi ini adalah :
1. Penggambaran objek 3D didalam komputer.
2. Penerapan konsep transformasi menggunakan fungsi-fungsi dari
OpenGL.
3. Pemrograman menggunakan bahasa Visual Basic 6.0
2. Tujuan
1. Menyelesaikan Ujian Akhir Semester mata kuliah Grafika Komputer
semester 6.
2. Mahasiswa mampu menggampar objek 3 Dimensi menggunakan
bahasa pemrograman Visual Basic dan OpenGL
3. Mahasiswa mampu mengimplementasikan fungsi transformasi 3D.
3. Sistematika Penulisan
Agar makalah dipahami dengan baik oleh pembaca, maka penyusun
membuat sistematika penulisan makalah sebagai berikut :
BAB I PENDAHULUAN
Pendahuluan berisikan latar belakang, identifikasi masalah, pembatasan
masalah, Tujuan dibuatnya makalah dan sistematika penulisan makalah.
BAB II LANDASAN TEORI
Landasan teori berisikan teori-teori yang digunakan didalam makalah.
BAB III PEMBAHASAN
Pembuatan program untuk menggambar grafik 3D
BAB IV KESIMPULAN DAN SARAN
Kesimpulan dan saran merupakan bab terakhir yang berisikan tentang
kesimpulan dari pembahasan serta pengajuan usulan atau saran-saran.
BAB II
LANDASAN TEORI
2.1 Definisi Objek 3 Dimensi
Obyek 3-D adalah sekumpulan titik-titik 3-D (x,y,z) yang membentuk luasan-
luasan (face) yang digabungkan menjadi satu kesatuan. Face adalah gabungan
titik-titik yang membentuk luasan tertentu atau sering dinamakan dengan sisi.
Sistem Koordinat 3 Dimensi
Contoh pernyataan Objek : Limas Segiempat
Titik-titik yang membentuk obyek:
Titik 0 (0,150,0)
Titik 1 (100,0,0)
Titik 2 (0,0,100)
Titik 3 (-100,0,0)
Titik 4 (0,0,-100)
2.2 Fungsi OpenGL 3D
1. Membersihkan Windows
Pada komputer, memory untuk menampilkan gambar biasanya diisi
dengan gambar yang berasal dari perintah gambar paling akhir, jadi
perlu dibersihkan dengan warna latar belakang sebelum digambar lagi.
Contoh berikut ini perintah yang digunakan untuk membersihkan layar
latar belakang dengan warna hitam dan buffer apa yang akan
dibersihkan. Dalam hal ini, buffer warna yang akan dibersihkan karena
buffer warna merupakan tempat gambar disimpan.
glClearColor 0, 0, 0, 0
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
2. Spesifikasi Warna
Pada OpenGL mendeskripsikan objek dengan warna objek adalah proses
yang berjalan sendiri-sendiri. Sebelum warna diubah maka semua objek
yang digambar sesudah perintah tersebut akan menggunakan warna
terakhir yang terdapat pada coloring scheme. Untuk warna digunakan
perintah glColor3f. Contoh berikut menunjukkan urutan langkah dalam
proses spesifikasi warna sebelum objek digambar. Warna yang ditampilkan
adalah warna merah.
glColor3f 1, 0, 0
3. Memaksa Proses Menggambar Sampai Selesai
Kebanyakan sistem grafik modern sudah menggunakan sistem graphics
pipeline. Dimana CPU utama memberikan issue perintah menggambar dan
hardware lain yang melakukan transformasi, clipping, shading, texturing
dan lain-lain. Pada arsitektur yang demikian, proses tidak dilakukan pada
satu computer karena setiap komputer mempunyai tugas sendiri. CPU
utama tidak harus menunggu proses pada masing-masing komputer tadi
selesai, tapi bisa dengan memberikan issue perintah gambar yang
berikutnya. Untuk inilah OpenGL menyediakan perintah glFlush yang
memaksa client untuk segera mengirim paket network walaupun belum
penuh. Program sebaiknya ditulis menggunakan perintah ini karena glFlush
tidak memaksa proses gambar untuk selesai tetapi memaksa proses
gambar untuk segera dieksekusi, sehingga dijamin semua perintah gambar
yang sebelumnya akan segera dieksekusi dalam suatu waktu tertentu.
glFlush
4. Menggambar di Bidang Tiga Dimensi
Untuk menggambar grafik jenis apapun pada komputer biasanya dimulai
dengan pixel. Pixel adalah elemen terkecil dari layar monitor yang
mempunyai atribut warna dan posisi. Sedangkan untuk membentuk garis,
poligon, objek dan lain-lain dapat dilakukan melalui urutan pixel yang
berbeda. Menggambar dengan menggunakan OpenGL mempunyai
perbedaan dengan bahasa lain, yaitu tidak perlu memikirkan koordinat
layar secara fisik tetapi hanya perlu menspesifikasikan posisi koordinat
dengan volume penglihatan. OpenGL memikirkan sendiri bagaimana
caranya menggambar titik, garis, dan lainnya yang berada dalam ruang tiga
dimensi ke gambar dua dimensi pada layar komputer.
Area gambar yang dibatasi ini adalah ruang koordinat kartesian yang
mempunyai range dari -100 hingga 100 untuk sumbu x, y dan z. Secara
sederhana bidang ini dapat dianggap sebagai bidang gambar untuk
perintah-perintah OpenGL.
Untuk menggambar titik digunakan suatu perintah OpenGL yaitu : glVertex.
Fungsi ini dapat mempunyai 2 sampai 4 parameter dari berbagai macam
tipe data. Sebagai contoh perintah glVertex di bawah ini akan
menspesifikasikan sebuah titik pada posisi 4 sumbu x, 4 sumbu y dan 0
untuk sumbu z. glVertex3f 4, 4, 0. Setelah diketahui cara untuk
menspesifikasikan sebuah titik di ruang pada OpenGL. Selanjutnya yang
harus ditambahkan adalah informasi tambahan mengenai titik tersebut,
apakah titik tersebut akhir dari sebuah garis, atau merupakan sebuah titik
sudut dari sebuah poligon atau lainnya, karena definisi geometrik dari
sebuah vertex sebenarnya bukanlah hanya sebuah titik pada layar tetapi
lebih merupakan sebuah titik dimana terjadi interseksi antara dua buah
garis atau kurva.
Primitif adalah interpretasi sejumlah set atau deretan titik pada sebuah
bentuk yang digambar pada layar. Pada OpenGL terdapat sepuluh macam
primitif dari mulai menggambar sebuah titik hingga poligon. Untuk itu
digunakan perintah glBegin sebagai cara memberitahu OpenGL untuk
memulai menginterpretasi sederetan titik sebagai salah satu bentuk
primitif. Dan untuk mengakhiri deretan titik ini digunakan perintah glEnd.
Sebagai Contoh sebagai berikut :
glBegin bmPolygon // spesifikasikan titik sebagai primitif
glVertex3f 4, 4, 0 // spesifikasikan posisi titik
glEnd // mengakhiri perintah menggambar titik
5. Fungsi untuk keperluan Transformasi
a. Fungsi Translasi (Translation)
Translasi merupakan bentuk transformasi yang memindahkan posisi
suatu objek, baik pada sumbu x, sumbu y, atau sumbu z. Fungsi yang
digunakan untuk melakukan translasi adalah :
glTranslatef Tx, Ty, Tz
Parameter Tx digunakan untuk menentukan arah dan seberapa jauh
suatu benda akan dipindahkan berdasarkan sumbu x. Parameter Ty
digunakan untuk menentukan arah dan seberapa jauh suatu benda
akan dipindahkan berdasarkan sumbu y. Sedangkan parameter Tz
digunakan untuk menentukan arah dan seberapa jauh suatu benda
akan dipindahkan berdasarkan sumbu z.
Contohnya :
glTranslatef 2, 2, 2
b. Fungsi Rotasi (Rotation)
Rotasi merupakan bentuk transformasi yang digunakan untuk memutar
posisisuatu benda. Fungsi yang digunakan untuk melakukan rotasi ialah
glRotatef(θ, Rx, Ry, Rz)
Parameter yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu
parameter θ untuk besar sudut putaran, parameter Rx untuk putaran
berdasarkan sumbu x, parameter Ry untuk putaran berdasarkan sumbu
y, dan parameter Rz untuk putaran berdasarkan sumbu z. Jika
parameter θ bernilai postif, maka objek akan diputar berlawanan arah
jarum jam. Sedangkan jika parameter θ bernilai negatif, maka objek
akan diputar searah jarum jam. Contohnya :
glRotatef -30, 2, 2, 1
c. Fungsi Skala (Scalling)
Skalasi merupakan bentuk transformasi yang dapat mengubah ukuran
(besar-kecil) suatu objek. Fungsi yang digunakan untuk melakukan
skalasi ialah :
glScalef(Sx, Sy, Sz)
Perubahan ukuran suatu objek diperoleh dengan mengalikan semua
titik atau atau vertex pada objek dengan faktor skala pada masing-
masing sumbu (parameter Sx untuk sumbu x, Sy untuk sumbu y, dan Sz
untuk sumbu z). Contohnya :
glScalef(2, 2, 2)
BAB III
PEMBAHASAN
1. Perancangan Form
Berikut ini adalah properties untuk masing-masing objek pada form di atas :
CommandButton :
(Name) : Command1
Caption : Tampilkan
TextBox :
(Name) : Text1
Caption : Aksi
HscrollBar1 :
(Name) : HScroll1
Min : -360
Max : 360
HscrollBar2 :
(Name) : HScroll2
Min : -360
Max : 360
HscrollBar3 :
(Name) : HScroll3
Min : -360
Max : 360
2. Perancangan Bangun 3D
Bangun 3D yang dibuat akan ditampilkan saat tombol “Tampilkan” ditekan.
Berikut tampilannya :
3.2.1 Script Pada Module
'VARIABEL Buatan
Public Type Titik3D
x As Single
y As Single
z As Single
geser As Double
End Type
Mendaftarkan variabel yang digunakan.
Public Type Sisi
balok_atas(1 To 4) As Titik3D
balok_bawah(1 To 4) As Titik3D
balok_kanan(1 To 4) As Titik3D
balok_kiri(1 To 4) As Titik3D
balok_Depan(1 To 4) As Titik3D
balok_belakang(1 To 4) As Titik3D
prisma_bawah(1 To 4) As Titik3D
prisma_belakang(1 To 4) As Titik3D
prisma_kanan(1 To 4) As Titik3D
prisma_kiri(1 To 4) As Titik3D
prisma_depan(1 To 4) As Titik3D
tanah_bawah(1 To 4) As Titik3D
tanah_atas(1 To 4) As Titik3D
tanah_belakang(1 To 4) As Titik3D
tanah_depan(1 To 4) As Titik3D
tanah_kanan(1 To 4) As Titik3D
tanah_kiri(1 To 4) As Titik3D
pohon_atas(1 To 4) As Titik3D
pohon_bawah(1 To 4) As Titik3D
pohon_kanan(1 To 4) As Titik3D
pohon_kiri(1 To 4) As Titik3D
pohon_Depan(1 To 4) As Titik3D
pohon_belakang(1 To 4) As Titik3D
limas_kanan(1 To 4) As Titik3D
limas_kiri(1 To 4) As Titik3D
limas_Depan(1 To 4) As Titik3D
limas_belakang(1 To 4) As Titik3D
End Type
Mendaftarkan variabel yang digunakan.
Public balok As Sisi, prisma As Sisi, tanah As Sisi, pohon As
Sisi, limas As Sisi
Mendaftarkan variabel yang digunakan.
Sub EnableOpenGL(ghDC As Long)
Dim pfd As PIXELFORMATDESCRIPTOR
Sub EnableOpenGL(ghDC As Long)digunakan untuk mengaktifkan
fungsi OpenGL.
PIXELFORMATDESCRIPTOR merupakan sebuah struktur yang berisi data
pixel format untuk menampilkan data pada layar.
ZeroMemory pfd, Len(pfd)
pfd.nSize = Len(pfd)
pfd.nVersion = 1
pfd.dwFlags = PFD_DRAW_TO_WINDOW Or PFD_SUPPORT_OPENGL Or
PFD_DOUBLEBUFFER
pfd.iPixelType = PFD_TYPE_RGBA
pfd.cColorBits = 24
pfd.cDepthBits = 32
pfd.iLayerType = PFD_MAIN_PLANE
PixFormat = ChoosePixelFormat(ghDC, pfd)
If PixFormat = 0 Then GoTo ee
SetPixelFormat ghDC, PixFormat, pfd
hrc = wglCreateContext(ghDC)
wglMakeCurrent ghDC, hrc
ChoosePixelFormat merupakan suatu fungsi yang digunakan OpenGL
secara otomatis mencari device context terbaik yang dimiliki sekarang ini.
SetPixelFormat merupakan suatu fungsi yang digunakan untuk
mengeset pixel format berdasarkan hasil function ChoosePixelFormat
yang telah dilakukan sebelumnya.
Exit Sub
ee: MsgBox ""
End
End Sub
Digunakan untuk menampilkan pesan/informasi kepada user.
Sub DisableOpenGL()
wglMakeCurrent 0, 0
wglDeleteContext hrc
End Sub
wglMakeCurrent digunakan untuk memanggil rendering context dari
OpenGL.
3.2.2 Script Pada Project
Sub Inisialisasi_Awal()
'========== Inisialisasi ==========
EnableOpenGL Me.hDC
hrc = wglCreateContext(hDC)
wglMakeCurrent hDC, hrc
'Inisilisasi Koordinat Bidang Dimensi-3
xmin = -30: xmax = 30
ymin = -30: ymax = 30
zmin = 30: zmax = -30
glOrtho xmin, xmax, ymin, ymax, zmin, zmax
glClearColor 0.4, 1, 0.3, 0
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
glClear clrColorBufferBit
glMatrixMode GL_PROJECTION
glLoadIdentity
End Sub
wglCreateContext merupakan fungsi OpenGL yang membuat rendering
baru yang sesuai untuk menggambar sesuai dengan referenci hDC, dimana
rendering context tersebut sama seperti pixel format yang telah diinisialisasi.
xmin = -30: xmax = 30 mendefinisikan range koordinat pada sumbu x.
ymin = -30: ymax = 30 mendefinisikan range koordinat pada sumbu y.
zmin = 30: zmax = -30 mendefinisikan range koordinat pada sumbu z.
glClearColor 0.4, 1, 0.3, 0 mendefinisikan warna dari windows
yang dibuat dengan warna (0.4, 1, 0.3) yaitu abu-abu.
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT untuk
membersihkan memori buffer warna atau memori buffer kedalaman dari
keadaan sebelumnya.
glMatrixMode GL_PROJECTION berfungsi untuk memberi nilai masukan
pada matrix dengan model projection.
glLoadIdentity untuk memanggil matriks terakhir yang disimpan.
Sub Bersihkan_Layar()
glClearColor 0.4, 1, 0.3, 0
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
End Sub
Fungsinya telah dijelaskan pada script sebelumnya.
Sub Tampilkan_Gambar()
'Menampilkan Hasil
glFlush
SwapBuffers Me.hDC
End Sub
glFlush dan SwapBuffers Me.hDC adalah perintah yang digunakan
untuk menampilkan gambar di layar.
Untuk menggambar objek :
glVertex3f(x,y,z) : Lokasi titik berada di (x,y,z). Tipe argumennya
adalah float dan 3 dimensi yaitu x, y dan z
glColor3f(R, G, B) : Warna latar muka (pena) Tiga komponen warna
yaitu Red, Green dan Blue
glBegin bmPOINTS : Titik
glBegin bmLINES : Garis
glBegin bmLINE_LOOP : Poligaris tertutup (polygon)
glBegin bmTRIANGLES : Segitiga
glBegin bmQUADS : Segiempat
glBegin bmPOLYGON : Poligon
glEnd : Akhir perintah OpenGL
1. Membuat objek bagian atas pohon
Terbentuk dari bangun Limas yang memiliki 5 sisi.
'titik 1 bagian belakang
limas.limas_belakang(1).x = -8
limas.limas_belakang(1).y = 5
limas.limas_belakang(1).z = 4
'titik 2 bagian belakang
With limas.limas_belakang(2)
.x = -2
.y = 7
.z = 4
End With
'titik 3 bagian belakang
With limas.limas_belakang(3)
.x = -5
.y = 15
.z = -1
End With
Sub Membuat_Titik()
'====limas pohon====
'titik 1 bagian depan
limas.limas_Depan(1).x = -8
limas.limas_Depan(1).y = 5
limas.limas_Depan(1).z = -2
'titik 2 bagian depan
With limas.limas_Depan(2)
.x = -2
.y = 5
.z = -2
End With
'titik 3 bagian depan
With limas.limas_Depan(3)
.x = -5
.y = 15
.z = -1
End With
'titik 4 bagian depan
With prisma.prisma_depan(4)
.x = 0
.y = 8
.z = 2
End With
'titik 1 bagian kanan
limas.limas_kanan(1).x = -2
limas.limas_kanan(1).y = 5
limas.limas_kanan(1).z = -2
'titik 2 bagian kanan
With limas.limas_kanan(2)
.x = -2
.y = 7
.z = 4
End With
'titik 3 bagian kanan
With limas.limas_kanan(3)
.x = -5
.y = 15
.z = -1
End With
'titik 1 bagian kiri
limas.limas_kiri(1).x = -8
limas.limas_kiri(1).y = 5
limas.limas_kiri(1).z = -2
'titik 2 bagian kiri
With limas.limas_kiri(2)
.x = -8
.y = 5
.z = 4
End With
'titik 3 bagian kiri
With limas.limas_kiri(3)
.x = -5
.y = 15
.z = -1
End With
'=====limas pohon===
glColor3f 0, 0.5, 0
glBegin bmPolygon
For ttk = 1 To 3
With limas.limas_Depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 1, 0.8
glBegin bmPolygon
For ttk = 1 To 3
With limas.limas_kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0, 0.6, 0
glBegin bmPolygon
For ttk = 1 To 3
With limas.limas_kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0, 0.5, 0
glBegin bmPolygon
For ttk = 1 To 3
With limas.limas_belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
End Sub
Tampilan :
2. Membuat objek batang pohon
'titik 3 bagian depan
With pohon.pohon_Depan(3)
.x = -4
.y = 5
.z = 0
End With
'titik 4 bagian depan
With pohon.pohon_Depan(4)
.x = -6
.y = 5
.z = 0
End With
'====pohon====
'titik 1 bagian depan
pohon.pohon_Depan(1).x = -6
pohon.pohon_Depan(1).y = 0
pohon.pohon_Depan(1).z = 0
'titik 2 bagian depan
With pohon.pohon_Depan(2)
.x = -4
.y = 0
.z = 0
End With
Terbentuk dari bangun balok, memiliki 6 sisi.
'titik 1 bagian belakang
pohon.pohon_belakang(1).x = -6
pohon.pohon_belakang(1).y = 0
pohon.pohon_belakang(1).z = 2
'titik 2 bagian belakang
With pohon.pohon_belakang(2)
.x = -4
.y = 0
.z = 2
End With
'titik 3 bagian belakang
With pohon.pohon_belakang(3)
.x = -4
.y = 5
.z = 2
End With
'titik 4 bagian belakang
With pohon.pohon_belakang(4)
.x = -6
.y = 5
.z = 2
End With
'titik 1 bagian atas
pohon.pohon_atas(1).x = -6
pohon.pohon_atas(1).y = 5
pohon.pohon_atas(1).z = 0
'titik 2 bagian atas
With pohon.pohon_atas(2)
.x = -4
.y = 5
.z = 0
End With
'titik 3 bagian atas
With pohon.pohon_atas(3)
.x = -4
.y = 5
.z = 2
End With
'titik 1 bagian bawah
pohon.pohon_bawah(1).x = -6
pohon.pohon_bawah(1).y = 0
pohon.pohon_bawah(1).z = 0
'titik 2 bagian bawah
With pohon.pohon_bawah(2)
.x = -4
.y = 0
.z = 0
End With
'titik 3 bagian bawah
With pohon.pohon_bawah(3)
.x = -4
.y = 0
.z = 0
End With
'titik 4 bagian bawah
With pohon.pohon_bawah(4)
.x = -6
.y = 0
.z = 2
End With
'titik 1 bagian kanan
pohon.pohon_kanan(1).x = -4
pohon.pohon_kanan(1).y = 0
pohon.pohon_kanan(1).z = 0
'titik 2 bagian kanan
With pohon.pohon_kanan(2)
.x = -4
.y = 0
.z = 2
End With
'titik 3 bagian kanan
With pohon.pohon_kanan(3)
.x = -4
.y = 5
.z = 2
End With
'titik 4 bagian kanan
With pohon.pohon_kanan(4)
.x = -4
.y = 5
.z = 0
End With
glColor3f 0.5, 0.3, 0
glBegin bmPolygon
or ttk = 1 To 4
With pohon.pohon_kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0.5, 0.3, 0
glBegin bmPolygon
For ttk = 1 To 4
With pohon.pohon_kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0.4, 0.2, 0
glBegin bmPolygon
For ttk = 1 To 4
With pohon.pohon_belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'====pohon===
glColor3f 1, 0.8, 0
glBegin bmPolygon
For ttk = 1 To 4
With pohon.pohon_bawah(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 0, 0.3
glBegin bmPolygon
For ttk = 1 To 4
With pohon.pohon_atas(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0.4, 0.2, 0
glBegin bmPolygon
For ttk = 1 To 4
With pohon.pohon_Depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
Tampilan :
3. Membuat objek atap rumah
Terbentuk dari bangun prisma yang memiliki 5 sisi
'======PRISMA======
'titik 1 bagian depan
prisma.prisma_depan(1).x = 0
prisma.prisma_depan(1).y = 5
prisma.prisma_depan(1).z = -3
'titik 2 bagian depan
With prisma.prisma_depan(2)
.x = 10
.y = 5
.z = -3
End With
'titik 3 bagian depan
With prisma.prisma_depan(3)
.x = 10
.y = 8
.z = 2
End With
'titik 4 bagian depan
With prisma.prisma_depan(4)
.x = 0
.y = 8
.z = 2
End With
'titik 1 bagian belakang
prisma.prisma_belakang(1).x = 0
prisma.prisma_belakang(1).y = 5
prisma.prisma_belakang(1).z = 7
'titik 2 bagian belakgn
With prisma.prisma_belakang(2)
.x = 10
.y = 5
.z = 7
End With
'titik 3 bagian belakng
With prisma.prisma_belakang(3)
.x = 10
.y = 8
.z = 2
End With
'titik 4 bagian belakng
With prisma.prisma_belakang(4)
.x = 0
.y = 8
.z = 2
End With
'titik 1 bagian kanan
prisma.prisma_kanan(1).x = 10
prisma.prisma_kanan(1).y = 5
prisma.prisma_kanan(1).z = -3
'titik 2 bagian kanan
With prisma.prisma_kanan(2)
.x = 10
.y = 5
.z = 7
End With
'titik 3 bagian kanan
With prisma.prisma_kanan(3)
.x = 10
.y = 8
.z = 2
End With
'titik 1 bagian kiri
prisma.prisma_kiri(1).x = 0
prisma.prisma_kiri(1).y = 5
prisma.prisma_kiri(1).z = -3
'titik 2 bagian kiri
With prisma.prisma_kiri(2)
.x = 0
.y = 5
.z = 7
End With
'titik 3 bagian kiri
With prisma.prisma_kiri(3)
.x = 0
.y = 8
.z = 2
End With
'titik 1 bagian bawah
prisma.prisma_bawah(1).x = 0
prisma.prisma_bawah(1).y = 5
prisma.prisma_bawah(1).z = -3
'titik 2 bagian bawah
With prisma.prisma_bawah(2)
.x = 10
.y = 5
.z = -3
End With
'titik 3 bagian bawah
With prisma.prisma_bawah(3)
.x = 10
.y = 5
.z = 7
End With
.z = 7
End With
glColor3f 0, 0.5, 1
glBegin bmTriangles
For ttk = 1 To 3
With prisma.prisma_kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0, 0.1, 0.9
glBegin bmPolygon
For ttk = 1 To 4
With prisma.prisma_belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
'titik 4 bagian bawah
With prisma.prisma_bawah(4)
.x = 0
.y = 5
glColor3f 1, 0.8, 0
glBegin bmPolygon
For ttk = 1 To 4
With prisma.prisma_bawah(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 1, 1
glBegin bmTriangles
For ttk = 1 To 3
With prisma.prisma_kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0, 0.4, 1
glBegin bmPolygon
For ttk = 1 To 4
With prisma.prisma_depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
Tampilan :
4.Membuat objek dinding rumah
Terbentuk dari bangun balok yang memiliki 6 sisi.
'titik 1 bagian belakang
balok.balok_belakang(1).x = 10
balok.balok_belakang(1).y = 0
balok.balok_belakang(1).z = 4
'titik 2 bagian belakang
With balok.balok_belakang(2)
.x = 0
.y = 0
.z = 4
End With
'titik 3 bagian belakang
With balok.balok_belakang(3)
.x = 0
.y = 5
.z = 4
End With
'titik 4 bagian belakang
With balok.balok_belakang(4)
.x = 10
.y = 5
.z = 4
End With
'=======BALOK===========
'titik 1 bagian depan
balok.balok_Depan(1).x = 0
balok.balok_Depan(1).y = 0
balok.balok_Depan(1).z = 0
'titik 2 bagian depan
With balok.balok_Depan(2)
.x = 10
.y = 0
.z = 0
End With
'titik 3 bagian depan
With balok.balok_Depan(3)
.x = 10
.y = 5
.z = 0
End With
'titik 4 bagian depan
With balok.balok_Depan(4)
.x = 0
.y = 5
.z = 0
End With
'titik 1 bagian kanan
balok.balok_kanan(1).x = 10
balok.balok_kanan(1).y = 0
balok.balok_kanan(1).z = 0
'titik 2 bagian kanan
With balok.balok_kanan(2)
.x = 10
.y = 0
.z = 4
End With
'titik 3 bagian kanan
With balok.balok_kanan(3)
.x = 10
.y = 5
.z = 4
End With
'titik 4 bagian kanan
With balok.balok_kanan(4)
.x = 10
.y = 5
.z = 0
End With
'titik 1 bagian kiri
balok.balok_kiri(1).x = 0
balok.balok_kiri(1).y = 0
balok.balok_kiri(1).z = 0
'titik 2 bagian kiri
With balok.balok_kiri(2)
.x = 0
.y = 0
.z = 4
End With
'titik 3 bagian kiri
With balok.balok_kiri(3)
.x = 0
.y = 5
.z = 4
End With
'titik 4 bagian kiri
With balok.balok_kiri(4)
.x = 0
.y = 5
.z = 0
End With
'titik 1 bagian atas
balok.balok_atas(1).x = 0
balok.balok_atas(1).y = 5
balok.balok_atas(1).z = 0
'titik 2 bagian atas
With balok.balok_atas(2)
.x = 10
.y = 5
.z = 0
End With
'titik 3 bagian atas
With balok.balok_atas(3)
.x = 10
.y = 5
.z = 4
End With
'titik 4 bagian atas
With balok.balok_atas(4)
.x = 0
.y = 5
.z = 4
End With
'titik 1 bagian bawah
balok.balok_bawah(1).x = 0
balok.balok_bawah(1).y = 0
balok.balok_bawah(1).z = 0
'titik 2 bagian bawah
With balok.balok_bawah(2)
.x = 10
.y = 0
.z = 0
End With
'titik 3 bagian bawah
With balok.balok_bawah(3)
.x = 10
.y = 0
.z = 4
End With
'=====balok======
glColor3f 1, 0.8, 0
glBegin bmPolygon
For ttk = 1 To 4
With balok.balok_bawah(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 0, 0.3
glBegin bmPolygon
For ttk = 1 To 4
With balok.balok_atas(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 0.8, 0
glBegin bmPolygon
For ttk = 1 To 4
With balok.balok_Depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 1, 0
glBegin bmPolygon
For ttk = 1 To 4
With balok.balok_kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 1, 0
glBegin bmPolygon
For ttk = 1 To 4
With balok.balok_kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 0.8, 0
glBegin bmPolygon
For ttk = 1 To 4
With balok.balok_belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
Tampilan :
5. Membuat objek tanah
Terbentuk dari balok yang memiliki 6 sisi.
'=============balok tanah=====
'titik 1 bagian depan
tanah.tanah_depan(1).x = -8
tanah.tanah_depan(1).y = 0
tanah.tanah_depan(1).z = 0
'titik 2 bagian depan
With tanah.tanah_depan(2)
.x = -8
.y = -2
.z = 0
End With
'titik 3 bagian depan
With tanah.tanah_depan(3)
.x = 18
.y = -2
.z = 0
End With
'titik 4 bagian depan
With tanah.tanah_depan(4)
.x = 18
.y = 0
.z = 0
End With
'titik 1 bagian belakang
tanah.tanah_belakang(1).x = -8
tanah.tanah_belakang(1).y = 0
tanah.tanah_belakang(1).z = 8
'titik 2 bagian belakang
With tanah.tanah_belakang(2)
.x = -8
.y = -2
.z = 8
End With
'titik 3 bagian belakang
With tanah.tanah_belakang(3)
.x = 18
.y = -2
.z = 8
End With
'titik 4 bagian belakang
With tanah.tanah_belakang(4)
.x = 18
.y = 0
.z = 8
End With
'titik 1 bagian atas
tanah.tanah_atas(1).x = -8
tanah.tanah_atas(1).y = 0
tanah.tanah_atas(1).z = 0
'titik 2 bagian atas
With tanah.tanah_atas(2)
.x = 18
.y = 0
.z = 0
End With
glColor3f 1, 0.6, 0
glBegin bmPolygon
For ttk = 1 To 4
With tanah.tanah_kanan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 0.8, 0
glBegin bmPolygon
For ttk = 1 To 4
With tanah.tanah_bawah(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0.2, 0.2, 0.2
glBegin bmPolygon
For ttk = 1 To 4
With tanah.tanah_depan(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0.5, 0, 0
glBegin bmPolygon
For ttk = 1 To 4
With tanah.tanah_belakang(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 0.7, 0, 0
glBegin bmPolygon
For ttk = 1 To 4
With tanah.tanah_kiri(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
glColor3f 1, 0, 0.3
glBegin bmPolygon
For ttk = 1 To 4
With tanah.tanah_atas(ttk)
glVertex3f .x, .y, .z
End With
Next ttk
glEnd
Tampilan :
Jika seluruh scrip diatas kita gabungkan, maka keseluruhan objek berbentuk
rumah akan tampil, sebagai berikut :
1. Membuat Transformasi Objek
1. Rotasi
a. Berdasarkan sumbu-X
Private Sub HScroll1_Change()
Call Bersihkan_Layar
'=====================================
glRotatef HScroll1.Value, 1, 0, 0
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End Sub
Script diatas diletakkan pada HScroll1.
Fungsi ini digunakan digunakan untuk memutar posisi objek
berdasarkan sumbu-X.
glRotatef HScroll1.Value, 1, 0, 0. Maksudnya adalah
besar sudut putaran ditentukan oleh nilai pada HScroll1. Karena
Scroll ini digunakan untuk memutar objek berdasarkan sumbu-X saja,
maka putaran berdasarkan sumbu x bernilai 1, sedangkan
berdasarkan sumbu y dan sumbu z adalah 0.
Tampilan Objek setelah dirotasi berdasarkan sumbu-X :
b. Berdasarkan sumbu-Y
Private Sub HScroll2_Change()
Call Bersihkan_Layar
'=====================================
glRotatef HScroll2.Value, 0, 1, 0
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End Sub
Script diatas diletakkan pada HScroll2.
Fungsi ini digunakan digunakan untuk memutar posisi objek
berdasarkan sumbu-Y.
glRotatef HScroll2.Value, 0, 1, 0. Maksudnya adalah
besar sudut putaran ditentukan oleh nilai pada HScroll2. Karena
Scroll ini digunakan untuk memutar objek berdasarkan sumbu-Y saja,
maka putaran berdasarkan sumbu x dan sumbu z bernilai 0,
sedangkan berdasarkan sumbu y bernilai 1.
Tampilan Objek setelah dirotasi berdasarkan sumbu-Y :
c. Berdasarkan sumbu-Z
Private Sub HScroll3_Change()
Call Bersihkan_Layar
'=====================================
glRotatef HScroll2.Value, 0, 0, 1
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End Sub
Script diatas diletakkan pada HScroll3.
Fungsi ini digunakan digunakan untuk memutar posisi objek
berdasarkan sumbu-Z.
glRotatef HScroll2.Value, 0, 0, 1. Maksudnya adalah
besar sudut putaran ditentukan oleh nilai pada HScroll3. Karena
Scroll ini digunakan untuk memutar objek berdasarkan sumbu-Z saja,
maka putaran berdasarkan sumbu x dan sumbu y bernilai 0,
sedangkan berdasarkan sumbu z bernilai 1.
Tampilan Objek setelah dirotasi berdasarkan sumbu-Z :
2. Translasi
a. Ke arah kiri
Private Sub Text1_KeyPress(KeyAscii As Integer)
'GESER Kiri
If KeyAscii = 120 Then
Call Bersihkan_Layar
'=====================================
glTranslatef 1 / 10, 0, 0
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End If
glTranslatef 1 / 10, 0, 0 Digunakan untuk memindahkan
posisi objek berdasarkan sumub-X ke arah kiri, yJaitu bernilai 1. Nilai
10 menunjukkan seberapa jauh objek dipindahkan pada sumbu-X.
fungsi translasi ini akan berfungsi jika pada objek Text pada form
diberi inputan berupa huruf “z” yang pada KeyAscii nya adalah 120.
Tampilan objek setelah ditranslasi ke kiri :
b. Ke arah kanan
If KeyAscii = 122 Then
Call Bersihkan_Layar
'=====================================
'glRotatef HScroll2.Value, 0, 1, 0
glTranslatef -1 / 10, 0, 0
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End If
glTranslatef -1 / 10, 0, 0 Digunakan untuk memindahkan
posisi objek berdasarkan sumub-X ke arah kanan, yaitu bernilai 1.
Nilai 10 menunjukkan seberapa jauh objek dipindahkan pada sumbu-
X.
fungsi translasi ini akan berfungsi jika pada objek Text pada form
diberi inputan berupa huruf “x” yang pada KeyAscii nya adalah 122.
Tampilan objek setelah ditranslasi ke kanan :
3. Skala
a. Memperbesar
If KeyAscii = 99 Then
Call Bersihkan_Layar
'=====================================
glScalef 1.05, 1.05, 1.05
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End If
glScalef 1.05, 1.05, 1.05 Digunakan untuk mengubah
ukuran objek menjadi lebih besar sebesar 0.05x dari ukuran semula.
fungsi translasi ini akan berfungsi jika pada objek Text pada form
diberi inputan berupa huruf “c” yang pada KeyAscii nya adalah 99.
Tampilan objek setelah skalanya di perbesar :
b. Memperkecil
If KeyAscii = 118 Then
Call Bersihkan_Layar
'=====================================
glScalef 0.95, 0.95, 0.95
Call Tampilkan_Data
'===========================
Call Tampilkan_Gambar
End If
glScalef 0.05, 0.05, 0.05 Digunakan untuk mengubah
ukuran objek menjadi lebih kecil sebesar 0.05x dari ukuran semula.
Fungsi translasi ini akan berfungsi jika pada objek Text pada form
diberi inputan berupa huruf “v” yang pada KeyAscii nya adalah 118.
Tampilan objek setelah skalanya di perkecil :
BAB IV
KESIMPULAN DAN SARAN
4.1 Kesimpulan
Dari pembahasan dapat diambil kesimpulan sebagai berikut :
1. Didalam pembuatan grafik di jaman serba teknologi ini kita bebas
menentukan alat apa yang akan kita pakai, dan untuk memahami secara
mendalam transformasi didalam grafik komputer sangatlah penting
menguasai ilmu matematik.
2. Perbandingan hasil pembuatan program dengan menggunakan bahasa
programan lebih sulit dan berbeda jauh dari segi tampilan, maupun tata
cara pembuatannya dibandingkan dengan program aplikasi yang
menerapkan system just click (event driven).
4.2 Saran
Setelah melihat uraian di atas, penyusun mempunyai saran.
1. Terlebih dahulu harus belajar algoritma, karena algorima adalah salah satu
kunci untuk dapat memahami permasalahan yang akan dihadapi
didalam pembuatan grafik komputer.
2. Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi yang
lebih bagus menurut anda, lebih kompleks, dan yang khusus
menanganipembuatan gambar/grafik serta yang mengikuti
perkembangan jaman .
3. Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa
pemrograman ) yang terdapat dalam bahasa pemrograman ataupun
fitur – fitur yang terdapat didalam program aplikasi.

More Related Content

What's hot (20)

Matlab Untuk Pengolahan Citra
Matlab Untuk Pengolahan CitraMatlab Untuk Pengolahan Citra
Matlab Untuk Pengolahan Citra
 
76110863 matlab
76110863 matlab76110863 matlab
76110863 matlab
 
Matlab
MatlabMatlab
Matlab
 
Pcd 8
Pcd 8Pcd 8
Pcd 8
 
Pcd 10
Pcd 10Pcd 10
Pcd 10
 
Pengenalan matlab
Pengenalan matlab Pengenalan matlab
Pengenalan matlab
 
Pcd 8
Pcd 8Pcd 8
Pcd 8
 
Pemrogaman Visual Basic.NET (Modul 3)
Pemrogaman Visual Basic.NET (Modul 3)Pemrogaman Visual Basic.NET (Modul 3)
Pemrogaman Visual Basic.NET (Modul 3)
 
Modul 1 matlab 1
Modul 1 matlab 1Modul 1 matlab 1
Modul 1 matlab 1
 
Pcd 11
Pcd 11Pcd 11
Pcd 11
 
Matplotlib
Matplotlib Matplotlib
Matplotlib
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
Pcd 4
Pcd 4Pcd 4
Pcd 4
 
Pengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLABPengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLAB
 
Bab 11 citra biner
Bab 11 citra binerBab 11 citra biner
Bab 11 citra biner
 
Pcd 7
Pcd 7Pcd 7
Pcd 7
 
401 970-1-sm
401 970-1-sm401 970-1-sm
401 970-1-sm
 
Pengenalan Mathlab
Pengenalan MathlabPengenalan Mathlab
Pengenalan Mathlab
 
Laporan Matlab
Laporan MatlabLaporan Matlab
Laporan Matlab
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmet
 

Viewers also liked

Sample social media marketing tactical plan by iShawon*
Sample social media marketing tactical plan by iShawon*Sample social media marketing tactical plan by iShawon*
Sample social media marketing tactical plan by iShawon*Mahbubur Shawon
 
Sistem pakar tik
Sistem pakar tikSistem pakar tik
Sistem pakar tikkomzud
 
Basic elements of supply and demand
Basic elements of supply and demandBasic elements of supply and demand
Basic elements of supply and demandMahbubur Shawon
 
Knytkonferens - WebCoast 2015
Knytkonferens - WebCoast 2015Knytkonferens - WebCoast 2015
Knytkonferens - WebCoast 2015Mattias Wahlberg
 
Pemeliharaan Bahan Pustaka
Pemeliharaan Bahan PustakaPemeliharaan Bahan Pustaka
Pemeliharaan Bahan Pustakakomzud
 
Calvin klein iconic ads
Calvin klein iconic adsCalvin klein iconic ads
Calvin klein iconic adsLieniteff
 
TBI G4H An Experimental Game for Traumatic Brain Injury
TBI G4H An Experimental Game for Traumatic Brain InjuryTBI G4H An Experimental Game for Traumatic Brain Injury
TBI G4H An Experimental Game for Traumatic Brain InjuryBobWaddington
 
Национальная технологическая инициатива: принципы организации
Национальная технологическая инициатива: принципы организацииНациональная технологическая инициатива: принципы организации
Национальная технологическая инициатива: принципы организацииКошелев Дмитрий
 
SANDSTONE SUPPLIER
SANDSTONE SUPPLIERSANDSTONE SUPPLIER
SANDSTONE SUPPLIERamritstone
 
Prezi om streckkodens utveckling och betydelse idag.
Prezi om streckkodens utveckling och betydelse idag.Prezi om streckkodens utveckling och betydelse idag.
Prezi om streckkodens utveckling och betydelse idag.Mattias Wahlberg
 
Penilaian diri-makalah-libre
Penilaian diri-makalah-librePenilaian diri-makalah-libre
Penilaian diri-makalah-librekomzud
 

Viewers also liked (14)

Sample social media marketing tactical plan by iShawon*
Sample social media marketing tactical plan by iShawon*Sample social media marketing tactical plan by iShawon*
Sample social media marketing tactical plan by iShawon*
 
Sistem pakar tik
Sistem pakar tikSistem pakar tik
Sistem pakar tik
 
Digitalverkstan 2016
Digitalverkstan 2016Digitalverkstan 2016
Digitalverkstan 2016
 
Astecas v
Astecas vAstecas v
Astecas v
 
Basic elements of supply and demand
Basic elements of supply and demandBasic elements of supply and demand
Basic elements of supply and demand
 
Knytkonferens - WebCoast 2015
Knytkonferens - WebCoast 2015Knytkonferens - WebCoast 2015
Knytkonferens - WebCoast 2015
 
Pemeliharaan Bahan Pustaka
Pemeliharaan Bahan PustakaPemeliharaan Bahan Pustaka
Pemeliharaan Bahan Pustaka
 
Calvin klein iconic ads
Calvin klein iconic adsCalvin klein iconic ads
Calvin klein iconic ads
 
TBI G4H An Experimental Game for Traumatic Brain Injury
TBI G4H An Experimental Game for Traumatic Brain InjuryTBI G4H An Experimental Game for Traumatic Brain Injury
TBI G4H An Experimental Game for Traumatic Brain Injury
 
Национальная технологическая инициатива: принципы организации
Национальная технологическая инициатива: принципы организацииНациональная технологическая инициатива: принципы организации
Национальная технологическая инициатива: принципы организации
 
SANDSTONE SUPPLIER
SANDSTONE SUPPLIERSANDSTONE SUPPLIER
SANDSTONE SUPPLIER
 
Enjit-enjit Semut
Enjit-enjit SemutEnjit-enjit Semut
Enjit-enjit Semut
 
Prezi om streckkodens utveckling och betydelse idag.
Prezi om streckkodens utveckling och betydelse idag.Prezi om streckkodens utveckling och betydelse idag.
Prezi om streckkodens utveckling och betydelse idag.
 
Penilaian diri-makalah-libre
Penilaian diri-makalah-librePenilaian diri-makalah-libre
Penilaian diri-makalah-libre
 

Similar to Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx

Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfgunturwijaya7
 
Rev modul grafkom 3
Rev   modul grafkom 3Rev   modul grafkom 3
Rev modul grafkom 3Yusi Aisyah
 
2414_GRAFKOM terapi dikit.docx
2414_GRAFKOM terapi dikit.docx2414_GRAFKOM terapi dikit.docx
2414_GRAFKOM terapi dikit.docxDoniapriadi
 
Visualisasi Data di R dengan ggplot2
Visualisasi Data di R dengan ggplot2Visualisasi Data di R dengan ggplot2
Visualisasi Data di R dengan ggplot2Muhammad Rifqi
 
Komputr grafika
Komputr grafikaKomputr grafika
Komputr grafikaRos Dania
 
TM pengolahan citra digital
TM pengolahan citra digitalTM pengolahan citra digital
TM pengolahan citra digitalFiki Mardani
 
TM pengolahan citra digital
TM pengolahan citra digitalTM pengolahan citra digital
TM pengolahan citra digitalhegie13
 
7 grafik komp konsep 3 d
7 grafik komp konsep  3 d7 grafik komp konsep  3 d
7 grafik komp konsep 3 dandika668538
 
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdfASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdfDikywahyu5
 
Module sig 2010
Module sig 2010Module sig 2010
Module sig 2010Ario Vroyo
 
Tutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesiaTutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesiazn Yedhi
 
Tutorial matlab libre
Tutorial matlab libreTutorial matlab libre
Tutorial matlab libreDoni Rahman
 

Similar to Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx (20)

Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdf
 
Modul-AUTOCAD.pdf
Modul-AUTOCAD.pdfModul-AUTOCAD.pdf
Modul-AUTOCAD.pdf
 
LN s07-machine vision-s2
LN s07-machine vision-s2LN s07-machine vision-s2
LN s07-machine vision-s2
 
Rev modul grafkom 3
Rev   modul grafkom 3Rev   modul grafkom 3
Rev modul grafkom 3
 
2414_GRAFKOM terapi dikit.docx
2414_GRAFKOM terapi dikit.docx2414_GRAFKOM terapi dikit.docx
2414_GRAFKOM terapi dikit.docx
 
Grafik 3 dimensi
Grafik 3 dimensiGrafik 3 dimensi
Grafik 3 dimensi
 
Operasi dasar matlab job 1
Operasi dasar matlab job 1Operasi dasar matlab job 1
Operasi dasar matlab job 1
 
Visualisasi Data di R dengan ggplot2
Visualisasi Data di R dengan ggplot2Visualisasi Data di R dengan ggplot2
Visualisasi Data di R dengan ggplot2
 
Komputr grafika
Komputr grafikaKomputr grafika
Komputr grafika
 
TM pengolahan citra digital
TM pengolahan citra digitalTM pengolahan citra digital
TM pengolahan citra digital
 
Ayuk pcd
Ayuk pcdAyuk pcd
Ayuk pcd
 
TM pengolahan citra digital
TM pengolahan citra digitalTM pengolahan citra digital
TM pengolahan citra digital
 
7 grafik komp konsep 3 d
7 grafik komp konsep  3 d7 grafik komp konsep  3 d
7 grafik komp konsep 3 d
 
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdfASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
 
Module sig 2010
Module sig 2010Module sig 2010
Module sig 2010
 
Open GL Tutorial04
Open GL Tutorial04Open GL Tutorial04
Open GL Tutorial04
 
Tutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesiaTutorialmatlab bahasa indonesia
Tutorialmatlab bahasa indonesia
 
Tutorial matlab .pdf
Tutorial matlab .pdfTutorial matlab .pdf
Tutorial matlab .pdf
 
Tutorial matlab libre
Tutorial matlab libreTutorial matlab libre
Tutorial matlab libre
 
Matlab Tutorial
Matlab TutorialMatlab Tutorial
Matlab Tutorial
 

Recently uploaded

BAB 2 BARISAN DAN DERET kelas x kurikulum merdeka
BAB 2 BARISAN DAN DERET kelas x kurikulum merdekaBAB 2 BARISAN DAN DERET kelas x kurikulum merdeka
BAB 2 BARISAN DAN DERET kelas x kurikulum merdekachairilhidayat
 
PPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptx
PPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptxPPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptx
PPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptxMegaFebryanika
 
Lim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang Maxwin
Lim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang MaxwinLim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang Maxwin
Lim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang MaxwinLim4D
 
IDMPO Link slot online kamboja terbaru 2024
IDMPO Link slot online  kamboja terbaru 2024IDMPO Link slot online  kamboja terbaru 2024
IDMPO Link slot online kamboja terbaru 2024idmpo grup
 
Teknik pembuatan gambar ragam hias seni rupa kelas 7
Teknik pembuatan gambar ragam hias seni rupa kelas 7Teknik pembuatan gambar ragam hias seni rupa kelas 7
Teknik pembuatan gambar ragam hias seni rupa kelas 7AthikTzulatzah
 
Bento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah Maxwin
Bento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah MaxwinBento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah Maxwin
Bento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah MaxwinBento88slot
 
KERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.doc
KERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.docKERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.doc
KERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.docEnaNorazlina
 
STD BAB 6 STATISTIKA kelas x kurikulum merdeka
STD BAB 6 STATISTIKA kelas x kurikulum merdekaSTD BAB 6 STATISTIKA kelas x kurikulum merdeka
STD BAB 6 STATISTIKA kelas x kurikulum merdekachairilhidayat
 
IDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOT
IDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOTIDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOT
IDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOTNeta
 
IDMPO Link Slot Online Terbaru Kamboja 2024
IDMPO Link Slot Online Terbaru Kamboja 2024IDMPO Link Slot Online Terbaru Kamboja 2024
IDMPO Link Slot Online Terbaru Kamboja 2024idmpo grup
 
Ryu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang Menang
Ryu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang MenangRyu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang Menang
Ryu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang MenangRyu4D
 
Wen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang Jackpot
Wen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang JackpotWen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang Jackpot
Wen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang JackpotWen4D
 
Babahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjf
BabahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjfBabahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjf
BabahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjfDannahadiantyaflah
 
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...Neta
 
IDMPO Link Slot Online Terbaru 2024 kamboja
IDMPO Link Slot Online Terbaru 2024 kambojaIDMPO Link Slot Online Terbaru 2024 kamboja
IDMPO Link Slot Online Terbaru 2024 kambojaidmpo grup
 
Wa + 62 82211599998, TERLARIS, souvenir dompet unik bandung
Wa + 62 82211599998, TERLARIS, souvenir dompet unik bandungWa + 62 82211599998, TERLARIS, souvenir dompet unik bandung
Wa + 62 82211599998, TERLARIS, souvenir dompet unik bandungnicksbag
 

Recently uploaded (16)

BAB 2 BARISAN DAN DERET kelas x kurikulum merdeka
BAB 2 BARISAN DAN DERET kelas x kurikulum merdekaBAB 2 BARISAN DAN DERET kelas x kurikulum merdeka
BAB 2 BARISAN DAN DERET kelas x kurikulum merdeka
 
PPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptx
PPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptxPPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptx
PPT SLIDE Kelompok 2 Pembelajaran Kelas Rangkap (4).pptx
 
Lim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang Maxwin
Lim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang MaxwinLim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang Maxwin
Lim4D Link Daftar Situs Slot Gacor Hari Ini Terpercaya Gampang Maxwin
 
IDMPO Link slot online kamboja terbaru 2024
IDMPO Link slot online  kamboja terbaru 2024IDMPO Link slot online  kamboja terbaru 2024
IDMPO Link slot online kamboja terbaru 2024
 
Teknik pembuatan gambar ragam hias seni rupa kelas 7
Teknik pembuatan gambar ragam hias seni rupa kelas 7Teknik pembuatan gambar ragam hias seni rupa kelas 7
Teknik pembuatan gambar ragam hias seni rupa kelas 7
 
Bento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah Maxwin
Bento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah MaxwinBento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah Maxwin
Bento88slot Situs Judi Slot Terbaik & Daftar Slot Gacor Mudah Maxwin
 
KERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.doc
KERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.docKERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.doc
KERTAS KERJA MINGGU BAHASA MELAYU SEKOLAH RENDAH.doc
 
STD BAB 6 STATISTIKA kelas x kurikulum merdeka
STD BAB 6 STATISTIKA kelas x kurikulum merdekaSTD BAB 6 STATISTIKA kelas x kurikulum merdeka
STD BAB 6 STATISTIKA kelas x kurikulum merdeka
 
IDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOT
IDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOTIDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOT
IDMPO : GAME SLOT SPACEMAN PRAGMATIC PLAY MUDAH JACKPOT
 
IDMPO Link Slot Online Terbaru Kamboja 2024
IDMPO Link Slot Online Terbaru Kamboja 2024IDMPO Link Slot Online Terbaru Kamboja 2024
IDMPO Link Slot Online Terbaru Kamboja 2024
 
Ryu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang Menang
Ryu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang MenangRyu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang Menang
Ryu4D : Daftar Situs Judi Slot Gacor Terbaik & Slot Gampang Menang
 
Wen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang Jackpot
Wen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang JackpotWen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang Jackpot
Wen4D Situs Judi Slot Gacor Server Thailand Hari Ini Gampang Jackpot
 
Babahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjf
BabahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjfBabahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjf
Babahhsjdkdjdudhhndjdjdfjdjjdjdjfjdjjdjdjdjjf
 
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...
IDMPO : SITUS TARUHAN BOLA ONLINE TERPERCAYA & BANYAK BONUS KEMENANGAN DI BAY...
 
IDMPO Link Slot Online Terbaru 2024 kamboja
IDMPO Link Slot Online Terbaru 2024 kambojaIDMPO Link Slot Online Terbaru 2024 kamboja
IDMPO Link Slot Online Terbaru 2024 kamboja
 
Wa + 62 82211599998, TERLARIS, souvenir dompet unik bandung
Wa + 62 82211599998, TERLARIS, souvenir dompet unik bandungWa + 62 82211599998, TERLARIS, souvenir dompet unik bandung
Wa + 62 82211599998, TERLARIS, souvenir dompet unik bandung
 

Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx

  • 1. BAB I PENDAHULUAN 1. 1 Latar Belakang Perkembangan grafika komputer menuntut para pengembang sistem aplikasi grafika komputer untuk dapat mengembangkan suatu informasi yang dilengkapi dengan visualisasi dan animasi, agar dapat lebih mudah dipahami oleh pihak yang menggunakan sistem tersebut. Grafika komputer telah menunjukkan kemajuan yang pesat dalam pengembangan berbagai aplikasi untuk menghasilkan gambar. Grafika komputer digunakan untuk menunjang berbagai bidang dengan teknologi grafika berbasis komputer. Penggunaan grafika komputer telah lama digunakan dalam beberapa macam aplikasi, diantaranya pendidikan, kedokteran, fisika, matematika, multimedia, dan lain-lain. Pada saat ini grafika komputer sudah digunakan pada bidang sains, engineering, kedokteran, bisnis, industri, pemerintahan, seni, hiburan, iklan, pendidikan, dan lain-lain. Oleh karena itu, sudah semakin banyak pula bahasa pemrograman yang dilengkapi dengan tools/library pembuatan grafik Salah satu tools/library pembuatan aplikasi grafik adalah OpenGL (Open Graphics Library). OpenGL(Open Graphics Library) 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. Dan makalah yang disampaikan kali ini khusus membahas mengenai perancangan bangun 3 dimensi menggunakan Visual Basic 6.0 1. Batasan Masalah
  • 2. Batasan masalah pada perancangan bangun 3 Dimensi ini adalah : 1. Penggambaran objek 3D didalam komputer. 2. Penerapan konsep transformasi menggunakan fungsi-fungsi dari OpenGL. 3. Pemrograman menggunakan bahasa Visual Basic 6.0 2. Tujuan 1. Menyelesaikan Ujian Akhir Semester mata kuliah Grafika Komputer semester 6. 2. Mahasiswa mampu menggampar objek 3 Dimensi menggunakan bahasa pemrograman Visual Basic dan OpenGL 3. Mahasiswa mampu mengimplementasikan fungsi transformasi 3D. 3. Sistematika Penulisan Agar makalah dipahami dengan baik oleh pembaca, maka penyusun membuat sistematika penulisan makalah sebagai berikut : BAB I PENDAHULUAN Pendahuluan berisikan latar belakang, identifikasi masalah, pembatasan masalah, Tujuan dibuatnya makalah dan sistematika penulisan makalah. BAB II LANDASAN TEORI Landasan teori berisikan teori-teori yang digunakan didalam makalah. BAB III PEMBAHASAN Pembuatan program untuk menggambar grafik 3D BAB IV KESIMPULAN DAN SARAN Kesimpulan dan saran merupakan bab terakhir yang berisikan tentang kesimpulan dari pembahasan serta pengajuan usulan atau saran-saran.
  • 3. BAB II LANDASAN TEORI 2.1 Definisi Objek 3 Dimensi Obyek 3-D adalah sekumpulan titik-titik 3-D (x,y,z) yang membentuk luasan- luasan (face) yang digabungkan menjadi satu kesatuan. Face adalah gabungan titik-titik yang membentuk luasan tertentu atau sering dinamakan dengan sisi. Sistem Koordinat 3 Dimensi
  • 4. Contoh pernyataan Objek : Limas Segiempat Titik-titik yang membentuk obyek: Titik 0 (0,150,0) Titik 1 (100,0,0) Titik 2 (0,0,100) Titik 3 (-100,0,0) Titik 4 (0,0,-100) 2.2 Fungsi OpenGL 3D 1. Membersihkan Windows Pada komputer, memory untuk menampilkan gambar biasanya diisi dengan gambar yang berasal dari perintah gambar paling akhir, jadi perlu dibersihkan dengan warna latar belakang sebelum digambar lagi. Contoh berikut ini perintah yang digunakan untuk membersihkan layar latar belakang dengan warna hitam dan buffer apa yang akan dibersihkan. Dalam hal ini, buffer warna yang akan dibersihkan karena buffer warna merupakan tempat gambar disimpan. glClearColor 0, 0, 0, 0 glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
  • 5. 2. Spesifikasi Warna Pada OpenGL mendeskripsikan objek dengan warna objek adalah proses yang berjalan sendiri-sendiri. Sebelum warna diubah maka semua objek yang digambar sesudah perintah tersebut akan menggunakan warna terakhir yang terdapat pada coloring scheme. Untuk warna digunakan perintah glColor3f. Contoh berikut menunjukkan urutan langkah dalam proses spesifikasi warna sebelum objek digambar. Warna yang ditampilkan adalah warna merah. glColor3f 1, 0, 0 3. Memaksa Proses Menggambar Sampai Selesai Kebanyakan sistem grafik modern sudah menggunakan sistem graphics pipeline. Dimana CPU utama memberikan issue perintah menggambar dan hardware lain yang melakukan transformasi, clipping, shading, texturing dan lain-lain. Pada arsitektur yang demikian, proses tidak dilakukan pada satu computer karena setiap komputer mempunyai tugas sendiri. CPU utama tidak harus menunggu proses pada masing-masing komputer tadi selesai, tapi bisa dengan memberikan issue perintah gambar yang berikutnya. Untuk inilah OpenGL menyediakan perintah glFlush yang memaksa client untuk segera mengirim paket network walaupun belum penuh. Program sebaiknya ditulis menggunakan perintah ini karena glFlush tidak memaksa proses gambar untuk selesai tetapi memaksa proses gambar untuk segera dieksekusi, sehingga dijamin semua perintah gambar
  • 6. yang sebelumnya akan segera dieksekusi dalam suatu waktu tertentu. glFlush 4. Menggambar di Bidang Tiga Dimensi Untuk menggambar grafik jenis apapun pada komputer biasanya dimulai dengan pixel. Pixel adalah elemen terkecil dari layar monitor yang mempunyai atribut warna dan posisi. Sedangkan untuk membentuk garis, poligon, objek dan lain-lain dapat dilakukan melalui urutan pixel yang berbeda. Menggambar dengan menggunakan OpenGL mempunyai perbedaan dengan bahasa lain, yaitu tidak perlu memikirkan koordinat layar secara fisik tetapi hanya perlu menspesifikasikan posisi koordinat dengan volume penglihatan. OpenGL memikirkan sendiri bagaimana caranya menggambar titik, garis, dan lainnya yang berada dalam ruang tiga dimensi ke gambar dua dimensi pada layar komputer. Area gambar yang dibatasi ini adalah ruang koordinat kartesian yang mempunyai range dari -100 hingga 100 untuk sumbu x, y dan z. Secara sederhana bidang ini dapat dianggap sebagai bidang gambar untuk perintah-perintah OpenGL. Untuk menggambar titik digunakan suatu perintah OpenGL yaitu : glVertex. Fungsi ini dapat mempunyai 2 sampai 4 parameter dari berbagai macam tipe data. Sebagai contoh perintah glVertex di bawah ini akan menspesifikasikan sebuah titik pada posisi 4 sumbu x, 4 sumbu y dan 0 untuk sumbu z. glVertex3f 4, 4, 0. Setelah diketahui cara untuk
  • 7. menspesifikasikan sebuah titik di ruang pada OpenGL. Selanjutnya yang harus ditambahkan adalah informasi tambahan mengenai titik tersebut, apakah titik tersebut akhir dari sebuah garis, atau merupakan sebuah titik sudut dari sebuah poligon atau lainnya, karena definisi geometrik dari sebuah vertex sebenarnya bukanlah hanya sebuah titik pada layar tetapi lebih merupakan sebuah titik dimana terjadi interseksi antara dua buah garis atau kurva. Primitif adalah interpretasi sejumlah set atau deretan titik pada sebuah bentuk yang digambar pada layar. Pada OpenGL terdapat sepuluh macam primitif dari mulai menggambar sebuah titik hingga poligon. Untuk itu digunakan perintah glBegin sebagai cara memberitahu OpenGL untuk memulai menginterpretasi sederetan titik sebagai salah satu bentuk primitif. Dan untuk mengakhiri deretan titik ini digunakan perintah glEnd. Sebagai Contoh sebagai berikut : glBegin bmPolygon // spesifikasikan titik sebagai primitif glVertex3f 4, 4, 0 // spesifikasikan posisi titik glEnd // mengakhiri perintah menggambar titik 5. Fungsi untuk keperluan Transformasi
  • 8. a. Fungsi Translasi (Translation) Translasi merupakan bentuk transformasi yang memindahkan posisi suatu objek, baik pada sumbu x, sumbu y, atau sumbu z. Fungsi yang digunakan untuk melakukan translasi adalah : glTranslatef Tx, Ty, Tz Parameter Tx digunakan untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu x. Parameter Ty digunakan untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu y. Sedangkan parameter Tz digunakan untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu z. Contohnya : glTranslatef 2, 2, 2 b. Fungsi Rotasi (Rotation) Rotasi merupakan bentuk transformasi yang digunakan untuk memutar posisisuatu benda. Fungsi yang digunakan untuk melakukan rotasi ialah glRotatef(θ, Rx, Ry, Rz) Parameter yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu parameter θ untuk besar sudut putaran, parameter Rx untuk putaran berdasarkan sumbu x, parameter Ry untuk putaran berdasarkan sumbu y, dan parameter Rz untuk putaran berdasarkan sumbu z. Jika parameter θ bernilai postif, maka objek akan diputar berlawanan arah
  • 9. jarum jam. Sedangkan jika parameter θ bernilai negatif, maka objek akan diputar searah jarum jam. Contohnya : glRotatef -30, 2, 2, 1 c. Fungsi Skala (Scalling) Skalasi merupakan bentuk transformasi yang dapat mengubah ukuran (besar-kecil) suatu objek. Fungsi yang digunakan untuk melakukan skalasi ialah : glScalef(Sx, Sy, Sz) Perubahan ukuran suatu objek diperoleh dengan mengalikan semua titik atau atau vertex pada objek dengan faktor skala pada masing- masing sumbu (parameter Sx untuk sumbu x, Sy untuk sumbu y, dan Sz untuk sumbu z). Contohnya : glScalef(2, 2, 2) BAB III PEMBAHASAN
  • 10. 1. Perancangan Form Berikut ini adalah properties untuk masing-masing objek pada form di atas : CommandButton : (Name) : Command1 Caption : Tampilkan TextBox : (Name) : Text1
  • 11. Caption : Aksi HscrollBar1 : (Name) : HScroll1 Min : -360 Max : 360 HscrollBar2 : (Name) : HScroll2 Min : -360 Max : 360 HscrollBar3 : (Name) : HScroll3 Min : -360 Max : 360 2. Perancangan Bangun 3D
  • 12. Bangun 3D yang dibuat akan ditampilkan saat tombol “Tampilkan” ditekan. Berikut tampilannya : 3.2.1 Script Pada Module 'VARIABEL Buatan Public Type Titik3D x As Single y As Single z As Single geser As Double End Type Mendaftarkan variabel yang digunakan.
  • 13. Public Type Sisi balok_atas(1 To 4) As Titik3D balok_bawah(1 To 4) As Titik3D balok_kanan(1 To 4) As Titik3D balok_kiri(1 To 4) As Titik3D balok_Depan(1 To 4) As Titik3D balok_belakang(1 To 4) As Titik3D prisma_bawah(1 To 4) As Titik3D prisma_belakang(1 To 4) As Titik3D prisma_kanan(1 To 4) As Titik3D prisma_kiri(1 To 4) As Titik3D prisma_depan(1 To 4) As Titik3D tanah_bawah(1 To 4) As Titik3D tanah_atas(1 To 4) As Titik3D tanah_belakang(1 To 4) As Titik3D tanah_depan(1 To 4) As Titik3D tanah_kanan(1 To 4) As Titik3D tanah_kiri(1 To 4) As Titik3D pohon_atas(1 To 4) As Titik3D pohon_bawah(1 To 4) As Titik3D pohon_kanan(1 To 4) As Titik3D pohon_kiri(1 To 4) As Titik3D pohon_Depan(1 To 4) As Titik3D pohon_belakang(1 To 4) As Titik3D limas_kanan(1 To 4) As Titik3D limas_kiri(1 To 4) As Titik3D limas_Depan(1 To 4) As Titik3D limas_belakang(1 To 4) As Titik3D End Type
  • 14. Mendaftarkan variabel yang digunakan. Public balok As Sisi, prisma As Sisi, tanah As Sisi, pohon As Sisi, limas As Sisi Mendaftarkan variabel yang digunakan. Sub EnableOpenGL(ghDC As Long) Dim pfd As PIXELFORMATDESCRIPTOR Sub EnableOpenGL(ghDC As Long)digunakan untuk mengaktifkan fungsi OpenGL. PIXELFORMATDESCRIPTOR merupakan sebuah struktur yang berisi data
  • 15. pixel format untuk menampilkan data pada layar. ZeroMemory pfd, Len(pfd) pfd.nSize = Len(pfd) pfd.nVersion = 1 pfd.dwFlags = PFD_DRAW_TO_WINDOW Or PFD_SUPPORT_OPENGL Or PFD_DOUBLEBUFFER pfd.iPixelType = PFD_TYPE_RGBA pfd.cColorBits = 24 pfd.cDepthBits = 32 pfd.iLayerType = PFD_MAIN_PLANE PixFormat = ChoosePixelFormat(ghDC, pfd) If PixFormat = 0 Then GoTo ee SetPixelFormat ghDC, PixFormat, pfd hrc = wglCreateContext(ghDC) wglMakeCurrent ghDC, hrc ChoosePixelFormat merupakan suatu fungsi yang digunakan OpenGL secara otomatis mencari device context terbaik yang dimiliki sekarang ini. SetPixelFormat merupakan suatu fungsi yang digunakan untuk mengeset pixel format berdasarkan hasil function ChoosePixelFormat yang telah dilakukan sebelumnya. Exit Sub ee: MsgBox "" End End Sub
  • 16. Digunakan untuk menampilkan pesan/informasi kepada user. Sub DisableOpenGL() wglMakeCurrent 0, 0 wglDeleteContext hrc End Sub wglMakeCurrent digunakan untuk memanggil rendering context dari OpenGL. 3.2.2 Script Pada Project Sub Inisialisasi_Awal() '========== Inisialisasi ========== EnableOpenGL Me.hDC hrc = wglCreateContext(hDC) wglMakeCurrent hDC, hrc 'Inisilisasi Koordinat Bidang Dimensi-3 xmin = -30: xmax = 30 ymin = -30: ymax = 30 zmin = 30: zmax = -30 glOrtho xmin, xmax, ymin, ymax, zmin, zmax glClearColor 0.4, 1, 0.3, 0 glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT glClear clrColorBufferBit glMatrixMode GL_PROJECTION glLoadIdentity End Sub
  • 17. wglCreateContext merupakan fungsi OpenGL yang membuat rendering baru yang sesuai untuk menggambar sesuai dengan referenci hDC, dimana rendering context tersebut sama seperti pixel format yang telah diinisialisasi. xmin = -30: xmax = 30 mendefinisikan range koordinat pada sumbu x. ymin = -30: ymax = 30 mendefinisikan range koordinat pada sumbu y. zmin = 30: zmax = -30 mendefinisikan range koordinat pada sumbu z. glClearColor 0.4, 1, 0.3, 0 mendefinisikan warna dari windows yang dibuat dengan warna (0.4, 1, 0.3) yaitu abu-abu. glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT untuk membersihkan memori buffer warna atau memori buffer kedalaman dari keadaan sebelumnya. glMatrixMode GL_PROJECTION berfungsi untuk memberi nilai masukan pada matrix dengan model projection. glLoadIdentity untuk memanggil matriks terakhir yang disimpan. Sub Bersihkan_Layar() glClearColor 0.4, 1, 0.3, 0 glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT End Sub Fungsinya telah dijelaskan pada script sebelumnya.
  • 18. Sub Tampilkan_Gambar() 'Menampilkan Hasil glFlush SwapBuffers Me.hDC End Sub glFlush dan SwapBuffers Me.hDC adalah perintah yang digunakan untuk menampilkan gambar di layar. Untuk menggambar objek : glVertex3f(x,y,z) : Lokasi titik berada di (x,y,z). Tipe argumennya adalah float dan 3 dimensi yaitu x, y dan z glColor3f(R, G, B) : Warna latar muka (pena) Tiga komponen warna yaitu Red, Green dan Blue glBegin bmPOINTS : Titik glBegin bmLINES : Garis glBegin bmLINE_LOOP : Poligaris tertutup (polygon) glBegin bmTRIANGLES : Segitiga glBegin bmQUADS : Segiempat glBegin bmPOLYGON : Poligon glEnd : Akhir perintah OpenGL
  • 19. 1. Membuat objek bagian atas pohon Terbentuk dari bangun Limas yang memiliki 5 sisi. 'titik 1 bagian belakang limas.limas_belakang(1).x = -8 limas.limas_belakang(1).y = 5 limas.limas_belakang(1).z = 4 'titik 2 bagian belakang With limas.limas_belakang(2) .x = -2 .y = 7 .z = 4 End With 'titik 3 bagian belakang With limas.limas_belakang(3) .x = -5
  • 20. .y = 15 .z = -1 End With Sub Membuat_Titik() '====limas pohon==== 'titik 1 bagian depan limas.limas_Depan(1).x = -8 limas.limas_Depan(1).y = 5 limas.limas_Depan(1).z = -2 'titik 2 bagian depan With limas.limas_Depan(2) .x = -2 .y = 5 .z = -2 End With 'titik 3 bagian depan With limas.limas_Depan(3) .x = -5 .y = 15 .z = -1 End With 'titik 4 bagian depan With prisma.prisma_depan(4) .x = 0 .y = 8 .z = 2 End With
  • 21. 'titik 1 bagian kanan limas.limas_kanan(1).x = -2 limas.limas_kanan(1).y = 5 limas.limas_kanan(1).z = -2 'titik 2 bagian kanan With limas.limas_kanan(2) .x = -2 .y = 7 .z = 4 End With 'titik 3 bagian kanan With limas.limas_kanan(3) .x = -5 .y = 15 .z = -1 End With 'titik 1 bagian kiri limas.limas_kiri(1).x = -8 limas.limas_kiri(1).y = 5 limas.limas_kiri(1).z = -2 'titik 2 bagian kiri With limas.limas_kiri(2) .x = -8 .y = 5 .z = 4 End With
  • 22. 'titik 3 bagian kiri With limas.limas_kiri(3) .x = -5 .y = 15 .z = -1 End With '=====limas pohon=== glColor3f 0, 0.5, 0 glBegin bmPolygon For ttk = 1 To 3 With limas.limas_Depan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 1, 0.8 glBegin bmPolygon For ttk = 1 To 3 With limas.limas_kanan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0, 0.6, 0 glBegin bmPolygon For ttk = 1 To 3 With limas.limas_kiri(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0, 0.5, 0 glBegin bmPolygon For ttk = 1 To 3 With limas.limas_belakang(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd End Sub
  • 24. 2. Membuat objek batang pohon 'titik 3 bagian depan With pohon.pohon_Depan(3) .x = -4 .y = 5 .z = 0 End With 'titik 4 bagian depan With pohon.pohon_Depan(4) .x = -6 .y = 5 .z = 0 End With '====pohon==== 'titik 1 bagian depan pohon.pohon_Depan(1).x = -6 pohon.pohon_Depan(1).y = 0 pohon.pohon_Depan(1).z = 0 'titik 2 bagian depan
  • 25. With pohon.pohon_Depan(2) .x = -4 .y = 0 .z = 0 End With Terbentuk dari bangun balok, memiliki 6 sisi. 'titik 1 bagian belakang pohon.pohon_belakang(1).x = -6 pohon.pohon_belakang(1).y = 0 pohon.pohon_belakang(1).z = 2 'titik 2 bagian belakang With pohon.pohon_belakang(2) .x = -4 .y = 0 .z = 2 End With 'titik 3 bagian belakang With pohon.pohon_belakang(3) .x = -4 .y = 5 .z = 2 End With 'titik 4 bagian belakang With pohon.pohon_belakang(4)
  • 26. .x = -6 .y = 5 .z = 2 End With 'titik 1 bagian atas pohon.pohon_atas(1).x = -6 pohon.pohon_atas(1).y = 5 pohon.pohon_atas(1).z = 0 'titik 2 bagian atas With pohon.pohon_atas(2) .x = -4 .y = 5 .z = 0 End With 'titik 3 bagian atas With pohon.pohon_atas(3) .x = -4 .y = 5 .z = 2 End With 'titik 1 bagian bawah pohon.pohon_bawah(1).x = -6 pohon.pohon_bawah(1).y = 0 pohon.pohon_bawah(1).z = 0 'titik 2 bagian bawah With pohon.pohon_bawah(2) .x = -4 .y = 0 .z = 0 End With 'titik 3 bagian bawah With pohon.pohon_bawah(3) .x = -4 .y = 0 .z = 0 End With 'titik 4 bagian bawah With pohon.pohon_bawah(4) .x = -6 .y = 0 .z = 2 End With 'titik 1 bagian kanan pohon.pohon_kanan(1).x = -4 pohon.pohon_kanan(1).y = 0 pohon.pohon_kanan(1).z = 0 'titik 2 bagian kanan
  • 27. With pohon.pohon_kanan(2) .x = -4 .y = 0 .z = 2 End With 'titik 3 bagian kanan With pohon.pohon_kanan(3) .x = -4 .y = 5 .z = 2 End With 'titik 4 bagian kanan With pohon.pohon_kanan(4) .x = -4 .y = 5 .z = 0 End With
  • 28. glColor3f 0.5, 0.3, 0 glBegin bmPolygon or ttk = 1 To 4 With pohon.pohon_kanan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0.5, 0.3, 0 glBegin bmPolygon For ttk = 1 To 4 With pohon.pohon_kiri(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0.4, 0.2, 0 glBegin bmPolygon For ttk = 1 To 4 With pohon.pohon_belakang(ttk)
  • 29. glVertex3f .x, .y, .z End With Next ttk glEnd '====pohon=== glColor3f 1, 0.8, 0 glBegin bmPolygon For ttk = 1 To 4 With pohon.pohon_bawah(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 0, 0.3 glBegin bmPolygon For ttk = 1 To 4 With pohon.pohon_atas(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0.4, 0.2, 0 glBegin bmPolygon For ttk = 1 To 4 With pohon.pohon_Depan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd
  • 31. 3. Membuat objek atap rumah
  • 32. Terbentuk dari bangun prisma yang memiliki 5 sisi '======PRISMA====== 'titik 1 bagian depan prisma.prisma_depan(1).x = 0 prisma.prisma_depan(1).y = 5 prisma.prisma_depan(1).z = -3 'titik 2 bagian depan With prisma.prisma_depan(2) .x = 10 .y = 5 .z = -3 End With 'titik 3 bagian depan With prisma.prisma_depan(3) .x = 10 .y = 8 .z = 2 End With 'titik 4 bagian depan With prisma.prisma_depan(4) .x = 0 .y = 8 .z = 2 End With 'titik 1 bagian belakang prisma.prisma_belakang(1).x = 0 prisma.prisma_belakang(1).y = 5 prisma.prisma_belakang(1).z = 7 'titik 2 bagian belakgn With prisma.prisma_belakang(2) .x = 10 .y = 5 .z = 7 End With 'titik 3 bagian belakng With prisma.prisma_belakang(3) .x = 10 .y = 8 .z = 2 End With 'titik 4 bagian belakng With prisma.prisma_belakang(4) .x = 0 .y = 8 .z = 2
  • 33. End With 'titik 1 bagian kanan prisma.prisma_kanan(1).x = 10 prisma.prisma_kanan(1).y = 5 prisma.prisma_kanan(1).z = -3 'titik 2 bagian kanan With prisma.prisma_kanan(2) .x = 10 .y = 5 .z = 7 End With 'titik 3 bagian kanan With prisma.prisma_kanan(3) .x = 10 .y = 8 .z = 2 End With 'titik 1 bagian kiri prisma.prisma_kiri(1).x = 0 prisma.prisma_kiri(1).y = 5 prisma.prisma_kiri(1).z = -3 'titik 2 bagian kiri With prisma.prisma_kiri(2) .x = 0 .y = 5 .z = 7 End With 'titik 3 bagian kiri With prisma.prisma_kiri(3) .x = 0 .y = 8 .z = 2 End With 'titik 1 bagian bawah prisma.prisma_bawah(1).x = 0 prisma.prisma_bawah(1).y = 5 prisma.prisma_bawah(1).z = -3 'titik 2 bagian bawah With prisma.prisma_bawah(2) .x = 10 .y = 5 .z = -3 End With 'titik 3 bagian bawah With prisma.prisma_bawah(3) .x = 10 .y = 5 .z = 7 End With
  • 34. .z = 7 End With glColor3f 0, 0.5, 1 glBegin bmTriangles For ttk = 1 To 3 With prisma.prisma_kiri(ttk) glVertex3f .x, .y, .z End With
  • 35. Next ttk glEnd glColor3f 0, 0.1, 0.9 glBegin bmPolygon For ttk = 1 To 4 With prisma.prisma_belakang(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd 'titik 4 bagian bawah With prisma.prisma_bawah(4) .x = 0 .y = 5 glColor3f 1, 0.8, 0 glBegin bmPolygon For ttk = 1 To 4 With prisma.prisma_bawah(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 1, 1 glBegin bmTriangles For ttk = 1 To 3 With prisma.prisma_kanan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0, 0.4, 1 glBegin bmPolygon For ttk = 1 To 4 With prisma.prisma_depan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd
  • 37. 4.Membuat objek dinding rumah Terbentuk dari bangun balok yang memiliki 6 sisi. 'titik 1 bagian belakang balok.balok_belakang(1).x = 10 balok.balok_belakang(1).y = 0 balok.balok_belakang(1).z = 4 'titik 2 bagian belakang With balok.balok_belakang(2) .x = 0 .y = 0 .z = 4 End With 'titik 3 bagian belakang With balok.balok_belakang(3) .x = 0 .y = 5 .z = 4 End With 'titik 4 bagian belakang With balok.balok_belakang(4) .x = 10 .y = 5 .z = 4 End With '=======BALOK=========== 'titik 1 bagian depan
  • 38. balok.balok_Depan(1).x = 0 balok.balok_Depan(1).y = 0 balok.balok_Depan(1).z = 0 'titik 2 bagian depan With balok.balok_Depan(2) .x = 10 .y = 0 .z = 0 End With 'titik 3 bagian depan With balok.balok_Depan(3) .x = 10 .y = 5 .z = 0 End With 'titik 4 bagian depan With balok.balok_Depan(4) .x = 0 .y = 5 .z = 0 End With 'titik 1 bagian kanan balok.balok_kanan(1).x = 10 balok.balok_kanan(1).y = 0 balok.balok_kanan(1).z = 0 'titik 2 bagian kanan With balok.balok_kanan(2) .x = 10 .y = 0 .z = 4 End With 'titik 3 bagian kanan With balok.balok_kanan(3) .x = 10 .y = 5
  • 39. .z = 4 End With 'titik 4 bagian kanan With balok.balok_kanan(4) .x = 10 .y = 5 .z = 0 End With 'titik 1 bagian kiri balok.balok_kiri(1).x = 0 balok.balok_kiri(1).y = 0 balok.balok_kiri(1).z = 0 'titik 2 bagian kiri With balok.balok_kiri(2) .x = 0 .y = 0 .z = 4 End With 'titik 3 bagian kiri With balok.balok_kiri(3) .x = 0 .y = 5 .z = 4 End With 'titik 4 bagian kiri With balok.balok_kiri(4) .x = 0 .y = 5 .z = 0 End With 'titik 1 bagian atas balok.balok_atas(1).x = 0 balok.balok_atas(1).y = 5 balok.balok_atas(1).z = 0 'titik 2 bagian atas With balok.balok_atas(2) .x = 10 .y = 5 .z = 0 End With 'titik 3 bagian atas With balok.balok_atas(3) .x = 10 .y = 5 .z = 4 End With 'titik 4 bagian atas With balok.balok_atas(4) .x = 0 .y = 5 .z = 4 End With
  • 40. 'titik 1 bagian bawah balok.balok_bawah(1).x = 0 balok.balok_bawah(1).y = 0 balok.balok_bawah(1).z = 0 'titik 2 bagian bawah With balok.balok_bawah(2) .x = 10 .y = 0 .z = 0 End With 'titik 3 bagian bawah With balok.balok_bawah(3) .x = 10 .y = 0 .z = 4 End With
  • 41. '=====balok====== glColor3f 1, 0.8, 0 glBegin bmPolygon For ttk = 1 To 4 With balok.balok_bawah(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 0, 0.3 glBegin bmPolygon For ttk = 1 To 4 With balok.balok_atas(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 0.8, 0 glBegin bmPolygon For ttk = 1 To 4 With balok.balok_Depan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 1, 0 glBegin bmPolygon For ttk = 1 To 4 With balok.balok_kanan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 1, 0 glBegin bmPolygon
  • 42. For ttk = 1 To 4 With balok.balok_kiri(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 0.8, 0 glBegin bmPolygon For ttk = 1 To 4 With balok.balok_belakang(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd
  • 43. Tampilan : 5. Membuat objek tanah Terbentuk dari balok yang memiliki 6 sisi. '=============balok tanah===== 'titik 1 bagian depan tanah.tanah_depan(1).x = -8 tanah.tanah_depan(1).y = 0 tanah.tanah_depan(1).z = 0 'titik 2 bagian depan With tanah.tanah_depan(2) .x = -8
  • 44. .y = -2 .z = 0 End With 'titik 3 bagian depan With tanah.tanah_depan(3) .x = 18 .y = -2 .z = 0 End With 'titik 4 bagian depan With tanah.tanah_depan(4) .x = 18 .y = 0 .z = 0 End With 'titik 1 bagian belakang tanah.tanah_belakang(1).x = -8 tanah.tanah_belakang(1).y = 0 tanah.tanah_belakang(1).z = 8 'titik 2 bagian belakang With tanah.tanah_belakang(2) .x = -8 .y = -2 .z = 8 End With 'titik 3 bagian belakang With tanah.tanah_belakang(3) .x = 18 .y = -2 .z = 8 End With 'titik 4 bagian belakang With tanah.tanah_belakang(4) .x = 18
  • 45. .y = 0 .z = 8 End With 'titik 1 bagian atas tanah.tanah_atas(1).x = -8 tanah.tanah_atas(1).y = 0 tanah.tanah_atas(1).z = 0 'titik 2 bagian atas With tanah.tanah_atas(2) .x = 18 .y = 0 .z = 0 End With glColor3f 1, 0.6, 0 glBegin bmPolygon For ttk = 1 To 4 With tanah.tanah_kanan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 1, 0.8, 0 glBegin bmPolygon For ttk = 1 To 4 With tanah.tanah_bawah(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0.2, 0.2, 0.2 glBegin bmPolygon For ttk = 1 To 4 With tanah.tanah_depan(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0.5, 0, 0 glBegin bmPolygon For ttk = 1 To 4 With tanah.tanah_belakang(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd glColor3f 0.7, 0, 0 glBegin bmPolygon For ttk = 1 To 4 With tanah.tanah_kiri(ttk) glVertex3f .x, .y, .z End With
  • 46. Next ttk glEnd glColor3f 1, 0, 0.3 glBegin bmPolygon For ttk = 1 To 4 With tanah.tanah_atas(ttk) glVertex3f .x, .y, .z End With Next ttk glEnd
  • 47. Tampilan : Jika seluruh scrip diatas kita gabungkan, maka keseluruhan objek berbentuk rumah akan tampil, sebagai berikut :
  • 48. 1. Membuat Transformasi Objek 1. Rotasi a. Berdasarkan sumbu-X Private Sub HScroll1_Change() Call Bersihkan_Layar '===================================== glRotatef HScroll1.Value, 1, 0, 0 Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End Sub Script diatas diletakkan pada HScroll1.
  • 49. Fungsi ini digunakan digunakan untuk memutar posisi objek berdasarkan sumbu-X. glRotatef HScroll1.Value, 1, 0, 0. Maksudnya adalah besar sudut putaran ditentukan oleh nilai pada HScroll1. Karena Scroll ini digunakan untuk memutar objek berdasarkan sumbu-X saja, maka putaran berdasarkan sumbu x bernilai 1, sedangkan berdasarkan sumbu y dan sumbu z adalah 0. Tampilan Objek setelah dirotasi berdasarkan sumbu-X : b. Berdasarkan sumbu-Y Private Sub HScroll2_Change() Call Bersihkan_Layar '===================================== glRotatef HScroll2.Value, 0, 1, 0 Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End Sub
  • 50. Script diatas diletakkan pada HScroll2. Fungsi ini digunakan digunakan untuk memutar posisi objek berdasarkan sumbu-Y. glRotatef HScroll2.Value, 0, 1, 0. Maksudnya adalah besar sudut putaran ditentukan oleh nilai pada HScroll2. Karena Scroll ini digunakan untuk memutar objek berdasarkan sumbu-Y saja, maka putaran berdasarkan sumbu x dan sumbu z bernilai 0, sedangkan berdasarkan sumbu y bernilai 1. Tampilan Objek setelah dirotasi berdasarkan sumbu-Y : c. Berdasarkan sumbu-Z Private Sub HScroll3_Change() Call Bersihkan_Layar '===================================== glRotatef HScroll2.Value, 0, 0, 1
  • 51. Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End Sub Script diatas diletakkan pada HScroll3. Fungsi ini digunakan digunakan untuk memutar posisi objek berdasarkan sumbu-Z. glRotatef HScroll2.Value, 0, 0, 1. Maksudnya adalah besar sudut putaran ditentukan oleh nilai pada HScroll3. Karena Scroll ini digunakan untuk memutar objek berdasarkan sumbu-Z saja, maka putaran berdasarkan sumbu x dan sumbu y bernilai 0, sedangkan berdasarkan sumbu z bernilai 1. Tampilan Objek setelah dirotasi berdasarkan sumbu-Z :
  • 52. 2. Translasi a. Ke arah kiri Private Sub Text1_KeyPress(KeyAscii As Integer) 'GESER Kiri If KeyAscii = 120 Then Call Bersihkan_Layar '===================================== glTranslatef 1 / 10, 0, 0 Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End If
  • 53. glTranslatef 1 / 10, 0, 0 Digunakan untuk memindahkan posisi objek berdasarkan sumub-X ke arah kiri, yJaitu bernilai 1. Nilai 10 menunjukkan seberapa jauh objek dipindahkan pada sumbu-X. fungsi translasi ini akan berfungsi jika pada objek Text pada form diberi inputan berupa huruf “z” yang pada KeyAscii nya adalah 120. Tampilan objek setelah ditranslasi ke kiri : b. Ke arah kanan If KeyAscii = 122 Then Call Bersihkan_Layar '===================================== 'glRotatef HScroll2.Value, 0, 1, 0 glTranslatef -1 / 10, 0, 0
  • 54. Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End If glTranslatef -1 / 10, 0, 0 Digunakan untuk memindahkan posisi objek berdasarkan sumub-X ke arah kanan, yaitu bernilai 1. Nilai 10 menunjukkan seberapa jauh objek dipindahkan pada sumbu- X. fungsi translasi ini akan berfungsi jika pada objek Text pada form diberi inputan berupa huruf “x” yang pada KeyAscii nya adalah 122. Tampilan objek setelah ditranslasi ke kanan :
  • 55. 3. Skala a. Memperbesar If KeyAscii = 99 Then Call Bersihkan_Layar '===================================== glScalef 1.05, 1.05, 1.05 Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End If
  • 56. glScalef 1.05, 1.05, 1.05 Digunakan untuk mengubah ukuran objek menjadi lebih besar sebesar 0.05x dari ukuran semula. fungsi translasi ini akan berfungsi jika pada objek Text pada form diberi inputan berupa huruf “c” yang pada KeyAscii nya adalah 99. Tampilan objek setelah skalanya di perbesar : b. Memperkecil If KeyAscii = 118 Then Call Bersihkan_Layar '===================================== glScalef 0.95, 0.95, 0.95 Call Tampilkan_Data '=========================== Call Tampilkan_Gambar End If
  • 57. glScalef 0.05, 0.05, 0.05 Digunakan untuk mengubah ukuran objek menjadi lebih kecil sebesar 0.05x dari ukuran semula. Fungsi translasi ini akan berfungsi jika pada objek Text pada form diberi inputan berupa huruf “v” yang pada KeyAscii nya adalah 118. Tampilan objek setelah skalanya di perkecil :
  • 58. BAB IV KESIMPULAN DAN SARAN 4.1 Kesimpulan Dari pembahasan dapat diambil kesimpulan sebagai berikut : 1. Didalam pembuatan grafik di jaman serba teknologi ini kita bebas menentukan alat apa yang akan kita pakai, dan untuk memahami secara mendalam transformasi didalam grafik komputer sangatlah penting menguasai ilmu matematik. 2. Perbandingan hasil pembuatan program dengan menggunakan bahasa programan lebih sulit dan berbeda jauh dari segi tampilan, maupun tata cara pembuatannya dibandingkan dengan program aplikasi yang menerapkan system just click (event driven). 4.2 Saran Setelah melihat uraian di atas, penyusun mempunyai saran. 1. Terlebih dahulu harus belajar algoritma, karena algorima adalah salah satu kunci untuk dapat memahami permasalahan yang akan dihadapi didalam pembuatan grafik komputer. 2. Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi yang lebih bagus menurut anda, lebih kompleks, dan yang khusus menanganipembuatan gambar/grafik serta yang mengikuti perkembangan jaman . 3. Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa pemrograman ) yang terdapat dalam bahasa pemrograman ataupun
  • 59. fitur – fitur yang terdapat didalam program aplikasi.