Dede Suryana,Ir.,M.Si Abstrak 1. Pendahuluan 2

advertisement
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
53
PEMODELAN DAN OPERASI GRAFIK VEKTOR SURVACE 3D DENGAN
MEMANFAATKAN FUNGSI RUMUS-RUMUS MATEMATIK TRIGONOMETRI
Dede Suryana,Ir.,M.Si
Teknik Informatika, STMIK IM, Jl.Jakarta No.79 Bandung
[email protected]
Abstrak
Grafik komputer adalah salah satu disiplin ilmu yang mendukung komputerisasi grafis. Saat ini kita dapat
melihat bahwa teknologi grafik komputer telah banyak dimanfaatkan oleh berbagai kalangan untuk menunjang
berbagai kebutuhan manusia, salah satunya kalangan matematikawan untuk menampilkan secara visual
formula-formula matematika ke dalam grafik komputer tiga dimensi. Teknik penyajian objek gambarnya juga
berbeda-beda, salah satunya model rangka.
Pendekatan model operasi grafik vektor dilakukan dengan transformasi rotasi objek grafik tiga dimensi dengan
pendekatan algoritma yang digunakan untuk membangkitkan dan memanipulasi gambar pada layar tampilan,
Untuk proses transformasi banyak melibatkan fungsi matematika, salah satunya menggunakan fungsi matriks
dan vektor, sehingga objek grafis tersebut dapat dimanipulasi dan di proyeksikan dari berbagai arah dan sudut
pandang yang berbeda.
Keyword: grafik komputer, pemodelan, trigonometri
1. Pendahuluan
Teknologi grafika komputer telah banyak dimanfaatkan untuk menunjang berbagai kebutuhan manusia, salah
satunya yang sangat terkenal adalah pemanfaatan grafik komputer dalam pembuatan permukaan tiga dimensi
yang banyak di gunakan oleh bidang sains dan teknologi, kalangan matematikawan untuk menggambar,
mengukur dan menyajikan hasil formulasi ke bentuk objek secara visual, misalnya menampilkan objek
berdasarkan fungsi rumus matematika biasa, berdasarkan fungsi invers dan juga hyperbola yang bisa di evaluasi
dalam berbagai bentuk dan sudut pandang yang berbeda dan banyak hal lagi yang memanfaatkan grafik
komputer.
Topik tentang grafik komputer tentu tidak terlepas dari berbagai metoda dan algoritma yang diperlukan untuk
membangkitkan gambar pada layar tampilan dan cara memanipulasi gambar agar sesuai dengan yang di
inginkan. lebih jauh, fungsi rumus-rumus matematika dapat menghasilkan gambar grafik yang indah. Salah
satunya adalah pemanfaatan fungsi matematika trigonometri, fungsi matematika ini merupakan metode dasar
yang paling penting dalam menggambar suatu objek dengan teknik transformasi, seperti salah satunya
transformasi rotasi, dan pemberian efek pencerminan serta proyeksi perspektif maka objek grafik tersebut
terkesan lebih hidup dan variatif. Teknik transformasi ini pula dapat di manfaatkan pada objek dua dimensi atau
tiga dimensi. Untuk mendukung proses transformasi dalam studi ini, objek gambar yang di gunakan penulis
adalah bervariasi sesuai dengan rumus yang dimasukkan, misalnya, garis-garis yang saling sambung
menyambung membentuk permukaan bola, permukaan hiperbola terbuka kebawah atau keatas, permukaan
elipsoida, dan lain-lain. Dengan transformasi objek ini dapat dimanfaatkan untuk menggambar struktur suatu
objek tiga dimensi dari berbagai arah dan memanipulasinya sesuai dengan kebutuhan.
“Microsoft Visual Basic 6.0” menjadi pilihan penulis untuk mengaplikasikan secara visual teknik transformasi
grafik vektor tiga dimensi dengan menggunakan fungsi matematika trigonometri.
2. Perancangan Model Objek Grafik Vektor 3D
Tahapan perancangan yang dilakukan dalam studi ini adalah “
A. Tahap Konsep Pembentukan Model Objek Tiga Dimensi
B. Tahap Perancangan Model
Implementasi dari tahap perancangan tersebut adalah :
2.1.
Tahap Konsep Pembentukan Model Objek Tiga Dimensi
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
54
Perancangan pada tahap konsep adalah perancangan yang dilakukan untuk penyusunan materi dan pengkajian
konsep tersebut secara teoritis, perancangan difokuskan pada masalah transformasi objek tiga dimensi dalam
bentuk visual.
Informasi yang sangat penting pada model tiga dimensi adalah geometri dan topologi. Geometri berhubungan
erat dengan ukuran, misalnya lokasi titik, atau ukuran objek. Topologi digunakan untuk menunjukan bagaimana
titik–titik disatukan untuk membentuk poligon, bagaimana poligon disusun untuk membentuk objek yang
dimaksud. Dalam pemodelan tiga dimensi, sering diperlukan informasi tambahan, misalnya warna dari setiap
permukaan yang menyusun objek.
2.2.
Tahap Perancangan Model
Perancangan pada tahap ini adalah menerapkan konsep–konsep yang telah dirancang menurut suatu paradigma
tertentu sehingga sistem yang dirancang mempunyai kemampuan sesuai yang diharapkan. Pada tahap ini juga
ditentukan format–format yang diterapkan pada sistem. Hal ini dilakukan karena perlu adanya penyesuaian
antara konsep dan perancangan. Pada tahap perancangan ini terdapat beberapa kegiatan yang dilakukan,
diantaranya :
a.
Perancangan Struktur Menu
implementasi perancangan struktur menu sebagai berikut.
Gambar 2.1 Struktur menu program
b. Perancangan Antarmuka (interface) GUI
Antarmuka merupakan sarana untuk berkomunikasi antara komputer dengan user, tujuannya supaya user
dapat berinteraksi dengan tingkat kemudahan yang tinggi. Antarmuka yang baik harus memenuhi aturan
perancangan seperti penggunaan warna yang baik, tata letak yang sesuai serta dialog yang sesuai dengan
pesan yang ditulisnya. Pada program Memanfaatkan Fungsi-fungsi Rumus Matematika Trigonometri
Dalam Menggambar Objek Permukaan Grafik Vektor Tiga Dimensi ini terdiri dari beberapa window
diantaranya window utama untuk menampilkan objek gambar dan mengatur arah perputaran dan window
yang berisi tentang informasi program. Adapun rancangan antarmuka program adalah sebagai berikut:
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
c.
55
Gambar 2.2. Rancangan antarmuka untuk menampilkan objek gambar tiga dimensi
Rancangan Proses (flowchart)
Gambar 2.3. Flowchart Program
3. Implementasi Grafik 3D
Pada bagian ini penulis akan membahas bagaimana mengimplementasikan hasil rancangan yang dilakukan pada
tahap merancang model. Dalam mengimplementasikan hasil rancangan tersebut penulis menggunakan bahasa
pemograman “VISUAL BASIC 6.0”.
Visual Basic dipilih karena banyak menyediakan kemudahan–kemudahan dalam pemograman grafik dengan
adanya suatu komponen, yaitu GDI (graphics device interface) yang khusus di rancang untuk memudahkan
dalam membuat pemograman berbasis grafik.
Tahap implementasi ini, terdiri dari pengkodean dan pengujian.
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
56
A. Coding Pengkodean merupakan proses pembuatan kode program sehingga dapat berjalan secara otomatis. Dalam
merancang program ini terdapat beberapa proses yang di kodekan dan digolongkan menjadi beberapa bagian
yaitu :
1. Pengkodean untuk proses penghitungan operasi matematika.
2. Pengkodean untuk model objek gambar.
3. Pengkodean untuk konversi dan pengenal string rumus yang dimasukkan agar dikenali dan dimengerti
oleh program dan sebagainya. A.1. Pengkodean Untuk Operasi Matematika Pada tahap ini adalah proses pengkodean dari operasi matrik dan vektor seperti operasi dot product, cross
product, perkalian matriks rotasi, pengkodean pencerminan, pengkodean perspektif, serta untuk memetakan
koordinat ke koordinat kartesian. Untuk lebih jelasnya tentang proses pengkodean ini dapat dilihat pada listing
program dibawah ini.
'----- Program Utama untuk menampilkan Objek Grafik Tiga Dimensi
'
Berdasarkan Fungsi Matematika Trigonometri.
'--Array dimulai pada subscript 1 sebagai default
Option Base 1
'--Standar Integers
DefInt A-Q
'--Mendeklarasikan titik rst, uvw, xyz adalah Real
DefSng R-Z
'--Batas Low & High sumbu x dan y dibaca dari file
Dim YH(), YL(), XH(), XL()
'--Batas +/- sumbu z dibaca dari file
Dim ZL()
'--Jarak Perspektif dibaca dari file
Dim PD()
'--Nilai fungsi asli 3D
Dim svrx(), svry(), svrz()
'--Nilai fungsi Rotasi 3D
Dim rx(), ry(), rz()
'--Titik Layar
Dim xs(), zs()
'--Batas Tinggi Grid sumbu x dan y
Dim grxhi, gryhi
'--Konversi nilai grid ke nilai sumbu x,y
Dim scx, scy
'--Batas Rendah dan Tinggi sumbu x & y
Dim xxlo, xxhi, yylo, yyhi
'--Batas +/- sumbu z
Dim batasZ
'--Sudut putar sumbu x & z
Dim sudutX, sudutZ
'--Digunakan untuk skala plot kebawah
Dim zpL, zpH
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
57
'--Fungsi -> faktor skala picDisplay
Dim xoff, yoff, zoff, scfx, scfy, scfz
'--Digunakan dengan faktor skala
Dim xmin, zmin
'--Titik mata (pada y=0)
Dim titikMataX, titikMataZ
'--Jarak Perspektif
Dim JarakPersp
Const pi = 3.1415927
'--Simpan koordinat mouse pada klik-kanan MouseDown
Dim XMouse, YMouse
'---- Nilai fungsi asli ---ReDim svrx(1 To grxhi, 1 To gryhi)
ReDim svry(1 To gryhi, 1 To gryhi)
ReDim svrz(1 To grxhi, 1 To gryhi)
'---ReDim
ReDim
ReDim
Nilai fungsi Rotasi
rx(1 To grxhi, 1 To
ry(1 To gryhi, 1 To
rz(1 To grxhi, 1 To
'---ReDim
ReDim
ReDim
Nilai Tampilan
xs(1 To grxhi,
ys(1 To grxhi,
zs(1 To grxhi,
---gryhi)
gryhi)
gryhi)
---1 To gryhi)
1 To gryhi)
1 To gryhi)
'---- Memakai rotasi untuk data asli tentang sumbu-z ---For J = 1 To gryhi
For I = 1 To grxhi
rx(I, J) = svrx(I, J) * Cos(sudutX) + svry(I, J) * Sin(sudutX)
ry(I, J) = svry(I, J) * Cos(sudutX) - svrx(I, J) * Sin(sudutX)
rz(I, J) = svrz(I, J)
Next I
Next J
'-- Memakai rotasi tentang sumbu-x
For J = 1 To gryhi
For I = 1 To grxhi
rx(I, J) = rx(I, J)
ry(I, J) = ry(I, J) * Cos(xang) - rz(I, J) * Sin(xang)
rz(I, J) = ry(I, J) * Sin(xang) + rz(I, J) * Cos(xang)
Next I
Next J
‘---- Proses penggambaran garis saat rotasi
'---- Gambar garis sumbu X ---picDisplay.ForeColor = culgreen&
For J = 1 To gryhi
res& = MoveToEx(phdc&, xs(1, J), zs(1, J), pp)
For I = 1 + 1 To grxhi
res& = LineTo(phdc&, xs(I, J), zs(I, J))
Next I
Next J
'---- Gambar garis sumbu Y ---picDisplay.ForeColor = culcyan&
For I = 1 To grxhi
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
58
res& = MoveToEx(phdc&, xs(I, 1), zs(I, 1), pp)
For J = 1 + 1 To gryhi
res& = LineTo(phdc&, xs(I, J), zs(I, J))
Next J
Next I
‘--- Proses pencerminan diaktifkan
If CheckMirror = 1 Then
'---- Gambar garis sumbu-X ---picDisplay.ForeColor = culgreen&
For J = 1 To gryhi
res& = MoveToEx(phdc&, xs(1, J), p - zs(1, J), pp)
For I = 1 + 1 To grxhi
res& = LineTo(phdc&, xs(I, J), p - zs(I, J))
Next I
Next J
'---- Gambar garis sumbu-Y ---picDisplay.ForeColor = culcyan&
For I = 1 To grxhi
res& = MoveToEx(phdc&, xs(I, 1), p - zs(I, 1), pp)
For J = 1 + 1 To gryhi
res& = LineTo(phdc&, xs(I, J), p - zs(I, J))
Next J
Next I
End If
A.2. Pengkodean Untuk Objek Gambar Pengkodean objek gambar meliputi pengkodean untuk masing–masing objek permukaan berdasarkan
rumus yang di masukkan, sedangkan fungsi dan prosedur yang dibuat untuk lebih jelasnya dapat dilihat pada
listing program berikut ini, sedangkan untuk listing program yang utuh dapat dilihat pada lampiran.
'----- Program Utama untuk menampilkan Objek Grafik Tiga Dimensi
'---- Gambar garis sumbu X ---picDisplay.ForeColor = culgreen&
For J = 1 To gryhi
res& = MoveToEx(phdc&, xs(1, J), zs(1, J), pp)
For I = 1 + 1 To grxhi
res& = LineTo(phdc&, xs(I, J), zs(I, J))
Next I
Next J
'---- Gambar garis sumbu Y ---picDisplay.ForeColor = culcyan&
For I = 1 To grxhi
res& = MoveToEx(phdc&, xs(I, 1), zs(I, 1), pp)
For J = 1 + 1 To gryhi
res& = LineTo(phdc&, xs(I, J), zs(I, J))
Next J
Next I
'---- Untuk mengeksekusi formula yang dipilih pada daftar formula ---Private Sub cmdEvaluasi_Click()
On Error GoTo evalerror
yyhi = Val(txtYHI.Text)
yylo = Val(txtYLO.Text)
xxhi = Val(txtXHI.Text)
xxlo = Val(txtXLO.Text)
batasZ = Val(txtZLIM.Text)
JarakPersp = Val(txtPERSPEC.Text)
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
59
If (yyhi = 0 And yylo = 0) Or (xxhi = 0 And xxlo = 0) Then
MsgBox ("Batas nol dapat menyebabkan terlalu banyak error" + vbCrLf
+ "Ganti batas")
Exit Sub
End If
If yylo > yyhi Then
MsgBox ("Y-High harus lebih tinggi dari Y-Low!" + vbCrLf + "Ganti
batas")
Exit Sub
End If
If xxlo > xxhi Then
MsgBox ("X-High harus lebih tinggi dari X-Low!" + vbCrLf + "Ganti
batas")
Exit Sub
End If
A.3. Pengkodean Untuk Konversi Rumus Fungsi konversi rumus adalah suatu fungsi yang digunakan untuk memproses rumus yang dimasukkan
baik yang ada pada daftar atau rumus baru agar bisa dimengerti oleh program. Untuk lebih jelasnya fungsi dan
prosedur yang terdapat pada modul ini dapat dilihat pada potongan listing program dibawah ini.
‘--- Modul Program MdlTrigonometri.Bas
‘---Deklarasi Global untuk dipanggil oleh unit lain
Public Sub GantiPI(inval$)
Public Sub GantiLN(inval$)
Public Sub GantiLOG(inval$)
Public Sub GantiASIN(inval$)
Public Sub GantiACOS(inval$)
Public Sub GantiCOSH(inval$)
Public Sub GantiTANH(inval$)
'--- Ganti sub-string p1->p2 dalam inval$ dengan rep$
Public Sub GantiStr(inval$, p1, p2, rep$)
Public Sub GantiXY(inval$, ByVal X, ByVal Y)
'--- Tekanan diluar spasi, trim & hapus beberapa penunjuk +
Public Sub TekananSpasi(inval$)
'--- Cari angka jadi pada karakter c$ dalam inval$
Public Function NumOccStr(inval$, c$)
'---pin adalah posisi pada (pout jika posisi kurung sesuai )
Public Sub CariKurungTutupYgSesuai(inval$, pin, pout)
Public Function zAtn2(Y, X)
B. Hasil
Hasil dari implementasi pada rancangan pembuatan objek grafik tiga dimensi ini yaitu terbentuknya perangkat
lunak, dimana perangkat lunak ini terdiri dari beberapa bagian yaitu seting yang berguna untuk mengatur objek
gambar dan bidang gambar yang berfungsi sebagai tempat untuk menampilkan gambar tersebut.
Hasil visualisasi program dapat dilihat pada gambar berikut :
ISSN 2085-8795
LPPM STMIK IM
Jurnal INFORMASI Vol.4 No.2 (6), November 2011
60
Gambar 3.1. Form daftar fungsi Trigonometri
Gambar 3.2. Antarmuka dan contoh tampilan objek pada bidang gambar.
4. Kesimpulan
Hasil Studi dari pemodelan computer grafik yang telah disajikan maka didapat beberapa kesimpulan sebagai
berikut:
1. Grafik dapat digunakan dan dimanfaatkan dalam berbagai disiplin ilmu, salah satunya adalah dalam
pemodelan suatu objek.
2. Suatu objek grafik dapat ditampilkan dengan baik jika didukung oleh piranti yang baik pula.
3. Fungsi-fungsi rumus trigonometri menghasilkan suatu objek grafik yang indah dan unik.
4. Program grafik vektor ini sangat membantu bagi pengguna yang berprofesi di bidang perencanaan yang
banyak menggunakan rumus-rumus matematika untuk pemodelan.
Daftar Pustaka
[1] Agustinus Nalwan, “Pemograman Animasi dan Game Professional 1,2 dan 3”.
[2] Cornel Pokorny, 1994, “Computer Graphics An Object-Oriented Approach To The Art and Science
Implemented In C++”, Franklin, Beedle & Associates Incorporated, Wilsonville, Oregon.
[3] Dani Okianto, 1997, “Panduan Belajar Microsoft Visual Basic 6.0”, Jakarta, PT. Elex Media Komputindo.
[4] P. Insap Santosa, Ir., M.Sc., 1994, “Grafika Komputer dan Antarmuka Grafis”, Penerbit Andi Offset
Yogyakarta, Cetakan Pertama,
[5] Rahadian Hadi, 2001,”Pemrograman Window API dengan Microsof Visual Basic, Jakarta, PT. Elex Media
Komputindo.
[6] Sunaryat, Anang, 2003, Pemodelan dan Operasi Grafik Vektor Surface 3D , Bandung
[7] http://3Dblackhole.base.org “Mathematics of 3D Graphics”.
[8] http://3Dblackhole.base.org “3D Transformations Second part of The 3D Coding Blackhole Tutorial
ISSN 2085-8795
LPPM STMIK IM
Download