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));
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

You Might Also Like

0 comments