P
EMODELAN DANO
PERASIG
RAFIKV
EKTORS
URVACE3D
D
ENGANM
EMANFAATKANF
UNGSIR
UMUS-R
UMUSM
ATEMATIKT
RIGONOMETRIDede Suryana,Ir.,M.Si
Teknik Informatika, STMIK IM, Jl.Jakarta No.79 Bandung Suryana_ds@yahoo.co.id
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 :
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:
Gambar 2.2. Rancangan antarmuka untuk menampilkan objek gambar tiga dimensi
c. 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.
'--- 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
'--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) '---- Nilai fungsi Rotasi ---- ReDim rx(1 To grxhi, 1 To gryhi) ReDim ry(1 To gryhi, 1 To gryhi) ReDim rz(1 To grxhi, 1 To gryhi) '---- Nilai Tampilan ----
ReDim xs(1 To grxhi, 1 To gryhi) ReDim ys(1 To grxhi, 1 To gryhi) ReDim zs(1 To grxhi, 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
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)
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.
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