Interaksi Mouse dan Grafika Komputer
April 29, 2013
Mouse merupakan salah satu bagian komponen dari sistem
komputer. Komponen komputer ini termasuk dalam kategori elemen perangkat keras
(hardware). Hardware dapat bekerja berdasarkan perintah yang telah ditentukan
ada padanya, atau yang juga disebut dengan dengan istilah instruction set.
Dengan adanya perintah yang dapat dimengerti oleh hardware tersebut, maka
hardware tersebut dapat melakukan berbagai kegiatan yang telah ditentukan oleh
pemberi perintah. Sama seperti halnya dengan cara kerja mouse. Itulah yang
menyebabkan mouse termasuk dalam kategori elemen perangkat keras (hardware).
Sejarah dan Perkembangan Mouse
Mouse pertama ditemukan
oleh Douglas Engelbart dari Stanford Research Institute pada
tahun 1963. Mouse adalah satu dari beberapa alat penunjuk (pointing device)
yang dikembangkan untuk oN Line System (NLS) milik Engelbard. Selain mouse,
yang pada mulanya disebut “bug”, juga dikembangkan beberapa alat pendeteksi
gerakan tubuh yang lain, misalnya alat yang diletakkan di kepala untuk
mendeteksi gerakan dagu. Karena kenyamanan dan kepraktisannya, mouse-lah yang
dipilih. Mouse pertama berukuran besar, dan menggunakan dua buah roda yang
saling tegak lurus untuk mendeteksi gerakan ke sumbu X dan sumbu Y.
Paten
bola tetikus pertama. Sebelah kiri adalah roda trek berlawanan oleh Englebart,
dengan nomor paten 3541541 (Inggris) November 1970. Gambar tengah adalah bola
dan roda oleh Rider, dengan nomor paten 3835464 (Inggris) September 1974. Kanan
adalah bola dan dua penggelinding oleh Opocentsky, dengan nomor paten 3987685
(Inggris) Oktober 1976.
Meskipun
bentuknya masih terlihat sangat primitif. Namun biar demikian, mouse inilah
yang telah menjadi cikal-bakal mouse yang kini Anda pergunakan. Namun
konsep Douglas Englebart ini tidak mendapat sambutan meriah dari pasar. Mouse
baru mencapai popularitas ketika dipakai oleh Apple Lisa Computer, sehingga
kerap orang salah kaprah menyebut Apple sebagai penemu mouse komputer.
Perkembangan
mouse selanjutnya dilakukan oleh Bill
English pada awal tahun 1970.
Mouse ini menggunakan bola berputar kesegala arah yang melahirkan mouse tipe
trackball, yaitu mouse terbalik dimana pengguna menggerakkan bola dengan jari.
Mouse bola ini harus sering dibersihkan karena banyak debu yang menempel pada
bolanya yang dapat menghambat pergerakan dari bola tersebut. Kemudian
mouse berkembang menjadi lebih modern dengan menggunakan sinar optikal untuk
mendeteksi gerakan. Mouse optikal pertama kali dibuat oleh Steve Kirsch dari Mouse Systems Corporation. Mouse
optikal lebih unggul dari mouse bola karena ringan, mudah dalam perawatan dan
penggunaannya. Mouse optikal pertama hanya dapat digunakan pada alas (mousepad)
khusus yang berwarna metalik bergaris-garis biru–abu-abu. Namun mouse optikal
saat ini dapat digunakan hampir disemua permukaan padat dan rata, kecuali
permukaan yang memantulkan cahaya. Dan
jenis mouse yang paling modern adalah yang berteknologi laser. Mouse ini
pertama kali diperkenalkan olehLogitech, perusahaan mouse terkemuka yang
bekerja sama dengan Agilent Technologies pada tahun 2004, dengan nama Logitech
MX 1000. Logitech mengaku bahwa mouse laser ini memiliki tingkat ketepatan 20
kali lebih besar dari mouse optikal. Meskipun sudah sangat canggih, namun mouse
jenis ini belum banyak yang mempergunakan, mungkin karena harganya yang masih
relatif sangat mahal.
Dari
awal ditemukannya yang berbahan dasar kayu hingga saat ini yang telah
berteknologi modern, jumlah tombol mouse tidak pernah berubah. Semua mouse
memiliki tombol satu sampai tiga buah. Beberapa mouse modern juga memiliki
sebuah roda (wheel) untuk memudahkan scrolling. Mouse modern juga sudah banyak
yang tanpa kabel, yaitu dengan menggunakan teknologi wireless seperti infra
merah, gelombang radio ataupun bluetooth.
Macam-Macam
Mouse
- Mouse
Bola (trackball)
Gambar Mouse Bola |
Perkembangan selanjutnya
dilakukan oleh Bill English di Xerox PARC pada awal tahun 1970. Ia menggunakan
bola yang dapat berputar kesegala arah, kemudian putaran bola tersebut
dideteksi oleh roda-roda sensor didalam mouse tersebut.
Selain itu ada juga Mouse
trackball yang tidak menggunakan kabel atau wireless dan hanya membutuhkan
tenaga 5 mA saja. Hal ini dikarenakan kerjanya tidak sepenuhnya elektrik. Ada
beberapa komponen yang bekerja mekanik, sehingga tidak membutuhkan banyak
tenaga listrik. Perawatannya juga tidak sulit, cukup dibersihkan saja rodaroda
mouse, maka mouse dapat berjalan baik kembali.
Pengunaan bola atau yang disebut
trackball ternyata tidak selalu di bawah mouse, yang populer antara tahun 1980
sampai 1990. Saat ini, ada beberapa mouse yang menggunaka bolanya di atas mouse
sehingga menggunakannya tidak perlu menelungkupkan telapak tangan. Sehingga
lebih mudah dan nyaman digunakan ketimbang mouse biasa. Oleh sebab itu,
harganya umumnya lebih mahal dan tidak terlalu banyak perusahaan IT yang
memproduksinya. Beberapa di antarannya adalah Microsoft dan Logitech.
Bola yang digunakan untuk mouse
jenis ini agak sedikit berbeda. Umumnya lebih besar dan licin. Berbeda dengan
mouse yang meletakan bolanya di bawah. Bola tersebut cenderung kecil dengan
permukaan yang tidak licin. Hal ini dilakukan agar bola dapat berjalan dengan
baik atau tidak tergelincir pada permukaan. Oleh sebab itu, untuk menggunakan
mouse mekanik dengan bola di bawah seseorang kerap kali harus menggunakan
tatakan khusus yang dinamakan mousepad.
Cara kerja mouse mekanik yang
meletakkan trackballnya di atas sama dengan kerja mekanik mouse yang memiliki
trackball-nya di bawah.
- Mouse
Optikal
Gambar Mouse Optikal |
Selain mouse bola, saat ini
banyak digunakan mouse optikal. Mouse optikal pertama dibuat oleh Steve Kirsch
dari Mouse Systems Corporation. Mouse optical adalah mouse yang menggunakan
sensor cahaya serta lampu LED merah di bawahnya sebagai pencahaya. Sensor pada
mouse optical mampu menangkap gambar dengan kecepatan 1500 frame per detik
sampai 7000 frame per detik. Dengan kecepatan mencapai 45 inci per detik dengan
resolusi 2000 count per inci (cpi). Mouse optikal pertama hanya dapat digunakan
pada alas (mousepad) khusus yang berwarna metalik bergaris-garis biru–abu-abu.
Mouse optikal lebih unggul dari
mouse bola karena lebih akurat dan perawatannya lebih mudah dibandingkan mouse
bola. Mouse optikal tidak perlu dibersihkan, berbeda dengan mouse bola yang
harus sering dibersihkan karena banyak debu yang menempel pada bolanya. Selain keunggulannya mouse optik
juga mempunyai sebuah kelemahan, yaitu sulit dijalankan pada permukaan yang
putih polos. Berbeda dengan mouse mekanik yang sulit jalan di tempat yang
terlalu licin, mouse optikal dapat digunakan hampir pada seluruh jenis
permukaan. Asalkan permukaan tersebut tidak transparan atau terlalu glossy.
Mouse optik juga membutuhkan arus yang lebih besar ketimbang mouse bola atau
mekanis biasa. Lima kali lebih besar arus yang dibutuhkan untuk menggerakan
mouse ini, yaitu 25 mA.
Cara kerja mouse optikal adalah
sebagai berikut: lampu LED menembarkan cahayanya pada permukaan. Lalu, sensor
cahaya yang ada pada bagian bawah mouse akan menangkap pergeseran yang terjadi
pada cahaya tersebut. Atau dapat juga dikatakan sebagai berikut. Bila mouse
mekanik komputer mencatat pergeseran yang dilakukan oleh mouse, sebaliknya dengan
mouse optical, komputer mencatat pergeseran yang terjadi pada landasan mouse.
Untuk lebih jelasnya perhatikan
pada gambar. Bagaimana sebuah sensor mampu menangkap setiap kali adanya
perubahan gambar atau pola. Berkaitan dengan pola, hal inilah yang menyebabkan
kenapa mouse optical sulit mendeteksi permukaan yang transparan dan glossy
seperti kaca atau papan whiteboard.
- Mouse
Laser
Gambar Mouse Laser |
Mouse laser pertama kali
diperkenalkan oleh Logitech, perusahaan mouse terkemuka yang bekerja sama
dengan Agilent Technologies pada tahun 2004, dengan nama Logitech MX 1000. Logitech
mengklaim bahwa mouse laser memilki tingkat akurasi 20 kali lebih besar dari
mouse optikal. Dasar kerja mouse optikal dan mouse laser hampir sama,
perbedaannya hanya penggunaan laser kecil sebagai pengganti LED digunakan oleh
mouse optikal. Saat ini mouse laser belum banyak digunakan, mungkin karena
harganya yang masih mahal. Kini, selain Logitech, Microsoft juga ikut
meluncurkan mouse berbasiskan teknologi laser ini.
Interaksi Mouse
·
Fungsi
Dasar Pembuatan Interaksi dengan Menggunakan MouseFunction
Keyboard merupakan unit
input yang paling penting dalam suatu pengolahan data dengan komputer. Keyboard
dapat berfungsi memasukkan huruf, angka, karakter khusus serta sebagai media
bagi user (pengguna) untuk melakukan perintah-perintah lainnya yang diperlukan,
seperti menyimpan file dan membuka file.
GLUTAPI
void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state,
int x, int y));
Paramater func adalah fungsi yang akan
ditangani dengan event klik mouse.
GLUTAPI
void APIENTRY glutMotionFunc(void *func(int x, int y));
Fungsi
di atas adalah fungsi pelengkap dari fungsi interaksi mouse untuk mendeteksi
gerakan mouse.
Dalam
penggunaan glutKeyboardFunc dimungkinkan untuk mendeteksi input dari keyboard.
Fungsi ini diletakkan pada fungsi main dari program, dan parameternya adalah
callback function yang telah didefinisikan berupa fungsi dengan 3 parameter,
seperti contoh di bawah ini.
void
myKeyboard(unsigned char key, int x, int y){
if(key == ‘a’) glTranslatef(4,0,0);
//seleksi tombol yang ditekan
}
void
mySpecialKeyboard(int key, int x, int y){
switch(key){
case GLUT_KEY_??? : …; break;
}
}
- Mouse Detection Click
Seperti
dalam versi Keyboard, GLUT menyediakan cara bagi Anda untuk mendaftarkan fungsi
yang akan bertanggung jawab untuk peristiwa yang dihasilkan oleh klik mouse
pengolahan. Nama fungsi ini glutMouseFunc, dan yang biasa disebut dalam fase
inisialisasi aplikasi. Sintaksnya adalah sebagai berikut:
void glutMouseFunc(void (*func)(int button, int state, int x, int y));
Parameters:
·
func – The name of the function that will handle mouse click events
Seperti
yang bisa kita lihat dari tanda tangan glutMouseFunc, fungsi yang akan
menangani klik mouse acara harus memiliki empat parameter.
Yang
pertama berhubungan dengan tombol yang ditekan, atau dibebaskan. Argumen ini
dapat memiliki salah satu dari tiga nilai:
·
GLUT_LEFT_BUTTON
·
GLUT_MIDDLE_BUTTON
·
GLUT_RIGHT_BUTTON
Argumen
kedua berhubungan dengan keadaan tombol ketika callback dihasilkan, yaitu
ditekan atau dilepaskan. Nilai yang mungkin adalah:
·
GLUT_DOWN
·
GLUT_UP
Ketika
callback dihasilkan dengan GLUT_DOWN negara, aplikasi dapat berasumsi bahwa
GLUT_UP akan datang setelah itu bahkan jika mouse bergerak di luar jendela.
Sisa dua
parameter menyediakan (x, y) koordinat mouse relatif ke sudut kiri atas wilayah
klien dari jendela.
mendeteksi
Gerak
GLUT
menyediakan kemampuan deteksi gerak mouse untuk aplikasi. Ada dua jenis gerak
yang GLUT menangani: gerak aktif dan pasif. Gerak aktif terjadi ketika mouse
digerakkan dan tombol ditekan. Gerakan pasif adalah ketika mouse bergerak
tetapi tidak ada tombol yang ditekan. Jika aplikasi pelacakan gerak, acara akan
dihasilkan per frame selama periode yang mouse bergerak.
Seperti
biasa Anda harus mendaftar dengan GLUT fungsi yang akan bertanggung jawab untuk
menangani peristiwa gerak. GLUT memungkinkan kita untuk menentukan dua fungsi
yang berbeda: satu untuk melacak gerakan pasif, dan lain untuk melacak gerakan
aktif.
Tanda
tangan untuk fungsi GLUT adalah sebagai berikut:
void glutMotionFunc(void (*func) (int x,int y));
void glutPassiveMotionFunc(void (*func) (int x, int y));
void glutPassiveMotionFunc(void (*func) (int x, int y));
Parameters:
func – the function that will be responsible for the
respective type of motion.
Parameter untuk fungsi pengolahan gerak adalah (x, y)
koordinat mouse relatif ke sudut kiri atas area klien window.
Mendeteksi ketika mouse memasuki atau meninggalkan
jendela
GLUT juga mampu mendeteksi ketika mouse meninggalkan
atau memasuki area window. Sebuah fungsi callback bisa didaftarkan untuk
menangani dua peristiwa. Fungsi GLUT untuk mendaftarkan callback ini
glutEntryFuncand sintaks adalah sebagai berikut
void glutEntryFunc(void (*func)(int state));
Parameters:
·
func – the function that will handle these events.
Parameter
dari fungsi yang akan menangani peristiwa ini memberitahu kita jika mouse telah
memasuki kiri wilayah jendela. GLUT mendefinisikan dua konstanta yang dapat
digunakan dalam aplikasi:
•
GLUT_LEFT
•
GLUT_ENTERED
Catatan:
Ini tidak bekerja persis seperti yang dikatakan dalam Microsoft Windows, hal
ini dikarenakan Microsoft OS fokus diubah dengan klik mouse. Meskipun Anda
dapat mengubah ini adalah sistem Anda sendiri dengan menggunakan beberapa alat
dari Microsoft, yang lain cenderung memiliki pengaturan standar jadi mungkin
lebih baik jika Anda tidak menggunakan fitur ini di Microsoft Windows untuk
mendeteksi ketika mouse memasuki / meninggalkan jendela.
- glutMouseFunc
glutMouseFunc
glutMouseFunc menetapkan callback tikus
untuk jendela aktif.
pemakaian
kekosongan glutMouseFunc (void (* func) (int tombol,
negara int,
int x, int y));func
Fungsi callback tikus baru.
Deskripsi
glutMouseFunc menetapkan callback tikus untuk
jendela aktif. Ketika pengguna menekan dan melepaskan tombol mouse di jendela,
tekan masing-masing dan setiap rilis menghasilkan callback tikus.
Buttonparameter adalah salah satu GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, atau
GLUT_RIGHT_BUTTON. Untuk sistem dengan hanya dua tombol mouse, hal itu mungkin
tidak mungkin untuk menghasilkan GLUT_MIDDLE_BUTTON callback. Untuk sistem
dengan tombol mouse tunggal, dimungkinkan untuk menghasilkan hanya callback
GLUT_LEFT_BUTTON. Parameter negara adalah salah GLUT_UP atau GLUT_DOWN
menunjukkan apakah callback itu karena siaran pers atau masing-masing. X dan
parameter callback y menunjukkan koordinat relatif jendela ketika negara tombol
mouse berubah. Jika callback GLUT_DOWN untuk tombol tertentu dipicu, program
ini dapat mengasumsikan callback GLUT_UP untuk tombol yang sama akan dihasilkan
(dengan asumsi jendela masih memiliki callback tikus terdaftar) ketika tombol
mouse dilepaskan bahkan jika mouse telah bergerak di luar window.
Jika menu melekat tombol untuk jendela, callback
tikus tidak akan dihasilkan untuk tombol itu.
Selama callback tikus, glutGetModifiers dapat
dipanggil untuk menentukan keadaan tombol pengubah ketika acara tikus
menghasilkan callback terjadi.
Melewati NULL untuk glutMouseFunc menonaktifkan
generasi callback tikus
0 comments