Selasa, 26 Oktober 2010

Membuat garis dengan algoritma bresenham

elompok :
  1. Rhainy Rahmi (11108636)
  2. Reza Febrian (12108217)
  3. Sri Dewi Ekasari (12108362)
  4. Vicky (11108999)
  5. Vikry Yuansyah (12108003)
  6. Yoan Dwi Utami (12108080)

Algoritma Bresenham

PENDAHULUAN
Perkembangan kemampuan komputasi prosesor yang pesat telah membuatkomputer desktop mempunyai kemampuan komputasi yang besar. Hal inimendorong perkembangan program aplikasi yang memerlukan komputasi yangbesar seperti program aplikasi yang menggunakan grafik 3 dimensi.Peningkatan kemampuan komputasi prosesor untuk aplikasi grafik yangsarat komputasi, perlu dibarengi peningkatan efisiensi algoritma,sehingga pembuatan grafik garis dan kurva yang merupakan dasar pembuatangrafik dapat memberikan hasil yang optimal.

Algoritma midpoint merupakan algoritma pembuatan garis dan kurva dengan dasar operasi bilangan integer yang menonjolkan ciri kecepatan. Sehingga algoritma ini dapat dipakai sebagai algoritma pembuatan grafik yang menuntut kecepatan sebagai hal yang diutamakan.

Pembahasan algoritma Midpoint dilakukan dengan mengasumsikan garis lurus dari kiri ke kanan,dan gadient antara 0 dan 1, sedangkan untuk lingkaran dengan mengasumsikan hanya sebagian lingkaran dengan sudut sebesar 45° , hal ini dilakukan untuk mempermudah penjelasan, sedangkan untuk kondisi yanglain dapat diderivasi dengan cara yang serupa. Untuk mendapatkan kinerja algoritma midpoint, dilakukan uji kecepatan komputasi dengan cara mengimplementasikan kedalam bahasa pemrograman C, dan melakukan perbandingan waktu komputasi dengan algoritma yang menggunakan dasar komputasi bilangan riel, maupun algoritma lain yang telah banyak dikenal seperti algoritma dda dan algoritma bressenham.

Algoritma Bresenham menggunakan aritmatika integer yang tidak memerlukan perkalian dan pembagian dalam proses perhitungannya didalam seluruh implementasi, yang mana aritmatika integer ini memiliki kecepatan perhitungan yang lebih tinggi daripada aritmatika floating point.

ALGORITMA GARIS BRESENHAM
  • dikembangkan oleh Bresenham
  • berdasarkan selisih antara garis yang diinginkan terhadap setengah ukuran dari pixel yang sedang digunakan.
Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan operasi bilangan rii perkalian dengan operasi penjumlahan, yang kemudian dikenal dengan Algoritma Bresenham. Pada algoritma bresenham, nilai y kedua dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan perbaikan yang cukup siginifikan. Perbaikan berikutnya dilakukan dengan cara menghilangkan operasi bilangan riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan.

untuk menentukan jumlah pixel yang membuat suatu garis menggunakan algoritma bresenhem adalah sebagai berikut :

  1. Masukan 2 endpoints, simpan endpoints kiri sebagai (x0, y0) dan kanan (x1,y1)
  2. Hitung konstanta Δx, Δy, 2Δy, 2Dx,2Δy–2Δx dan nilai awal parameter keputusan p0= 2Δy –Δx
  3. Pada setiap xk di garis, dimulai dari k=0, ujilah : Jika pk 0 maka plot (xk+1, yk+1) dan pk= pk+ 2Δy -2Δx
  4. Ulangi tahap 4 sampai mencapai x,y yang di tuju.
Contoh :
Hitunglah posisi piksel hingga membentuk sebuah garis yang menghubungkan titik (4,1) dan (14,8) !
  • Menentukan endpoints (x0,y0)= (4,1) dan (x1,y1)=(14,8)
  • Hitung kostanta :
Dx = x1-x0 Dx= 14-4=10
Dy= y1-y0 Dy= 8-1=7
2Dx= 2.10=20
2Dy= 2.7=14
2Dy-2Dx= 14-20= -6
pk=p0= 2Dy-Dx pk=p0= 14-10=4

  • jadi nilai keputusan awal= 4, karena pk=4 maka kita gunakan pk>0 maka plot (xk+1,yk+1) = (4+1,1+1) = (5,2) adalah plot yang terbentuk pada K=0. dan kita hitung nilai keputusan untuk plot selanjutnya. Dengan rumus pk= pk+ 2Δy -2Δx pk=4+(-6)=-2 adalah nilai keputusan yang ke 2. karena pk=-2 kita gunakan rumus pk<0 k="1.">>a;
cout<<"Masukan Y0 : ";cin>>b;
cout<<"Masukan X1 : ";cin>>c;
cout<<"Masukan Y1 : ";cin>>d;
glPushMatrix();
glBegin(GL_LINES);
glVertex3f(a+0.5, b+0.5, 0.0);
glVertex3f(c+0.5, d+0.5, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glPopMatrix();
glEnd();
glFlush();

}
void Horizontal() {

float c,d,y;
cout<<"Masukan XAwal :";cin>>c;
cout<<"Masukan XAkhir :";cin>>d;
cout<<"Masukan Ytetap :";cin>>y;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(c+0.1, y+0.1, 0.0);
glVertex3f(d+0.1, y+0.1, 0.0);
glEnd();
glFlush();
}
void Vertikal() {

float a,b,x;
cout<<"Masukan Yawal : ";cin>>a;
cout<<"Masukan Yakhir : ";cin>>b;
cout<<"Masukan Xtetap : ";cin>>x;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(x+0.5,a+0.5,0.0);
glVertex3f(x+0.5,b+0.5,0.0);
glEnd();
glFlush();
}

void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int iArgc, char** cppArgv) {
menu:
int a;
cout<<"------MENU------\n";
cout<<"1.Garis Vertikal\n";
cout<<"2.Garis Horizontal\n";
cout<<"3.Garis Diagonal\n";
cout<<"4.Exit\n";
cout<<"----------------\n";
cout<<"Masukan pilihan anda:";cin>>a;
cout<<"\n"; glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500, 500); glutInitWindowPosition(600, 200); glutCreateWindow("OPenGL with C++"); Initialize(); while (a<=4){ switch(a){ case 1: glutDisplayFunc(Vertikal); glutMainLoop(); return 0; case 2: glutDisplayFunc(Horizontal); glutMainLoop(); return 0; case 3: glutDisplayFunc(Diagonal); glutMainLoop(); return 0; default: cout<<"anda salah memasukan"; goto menu; }} }

Running Program.

Membuat Garis Vertikal



Membuat Garis Horizontal



KESIMPULAN
Panjang garis atau banyak piksel dalam garis lurus sangat berpengaruh terhadap perbandingan performance antara sebuah algoritma dengan algoritma yang lain, hal ini disebabkan adanya perbedaan waktu operasi yang berada didalam perulangan sepanjang pembuatan piksel, dan waktu operasi yang berada pada sebelumnya.

Panjang jari-jari dalam lingkaran tidak berpengaruh terhadap perbandingan performance antara sebuah algoritma dengan algoritma yang lain, hal ini menunjukkan perbandingan waktu operasi yang berada didalam perulangan sepanjang pembuatan piksel, dan waktu operasi yang berada pada sebelumnya berimbang.

Algoritma dengan dasar operasi bilangan integer memberikan waktu operasi yang lebih cepat dibandingkan dengan algoritma dengan dasar operasi bilangan riel, hal ini ditunjukkan dengan waktu komputasi algoritma DDA, algoritma Bresenham dan algoritma Midpoint yang lebih cepat, baik pada pembuatan garis lurus maupun lingkaran dibandingan waktu komputasi dengan algoritma yang menggunakan dasar operasi bilangan riel.

Algoritma midpoint memberikan waktu operasi tercepat diantara algoritma penggambaran garis lurus yang telah menggunakan dasar operasi bilangan integer, seperti algoritma DDA, algoritma Bresenham. Jadi algoritma Midpoint merupakan algoritma yang cocok untuk penggambaran grafik yang menuntut kecepatan sebagai hal yang diutamakan.

Senin, 18 Oktober 2010

Fakta Baru Mengenai Penemu Sepakbola




Sebuah suratkabar Vatikan,

Osservatore Romano, menemukan bukti bahwa salah satu suku di Paraguay, Guarani, memainkan sepak bola jauh sebelum Inggris mengklaim bahwa mereka menciptakan sepak bola.

Dalam pengetahuan yang awam tentang sepak bola bahwa olahraga ternama di dunia ini ditemukan di Inggris dan kemudian dimainkan ke sejumlah negara lainnya. Pada 1863, Federasi Sepak Bola Inggris (FA) kemudian membuat peraturan baku sepak bola yang akhirnya menjadi cikal-bakal sepak bola modern saat ini.

Namun, pengetahuan itu dipatahkan oleh sebuah artikel di suratkabar Vatikan, L´Osservatore Romano, edisi Senin 28 Juni 2010. Dalam artikel tersebut dikatakan bahwa sepak bola justru kali pertama ditemukan oleh suku Guarani di Paraguay pada 1793, 70 tahun sebelum klaim Inggris.

Artikel tersebut menggunakan sumber seorang pendeta bernama Juan Manuel Peramas, yang menulis di buku harian ketika ditugaskan di Paraguay pada 1793. Peramas menulis, "(Para Guarani) biasanya bermain dengan bola itu, meski dibuat dari karet keras, tapi cukup ringan dan cepat jika ditendang, bola memantul dengan cepat sebelum dihentikan."

"Mereka tidak melempar bola dengan tangan, seperti yang kita lakukan, tapi menggunakan kaki dalamnya, mengumpan dan mengontrol dengan ketangkasan dan ketepatan."

Penulis artikel, Gianpaolo Romanato, menjadikan tulisan Peramas sebagai bukti bahwa Inggris bukanlah penemu sepak bola.

"Suku Guarani jelas-jelas tiga abad yang lalu sudah memainkannya. Pada akhirnya adalah mereka (Guarani) adalah benar-benar penemu sepak bola," papar Romanato.


• VIVAnews

Minggu, 17 Oktober 2010

Hacker Terseksi Sedunia Diancam 40 Tahun Bui


Hacker Terseksi Sedunia Diancam 40 Tahun Bui

Svechinskaya menjadi otak pencurian uang senilai US$35 juta dari rekening bank di Amerika




Siapa yang mengira dibalik kecantikan dan otak encernya, Kristina Svechinskaya menjadi dalang pencurian uang senilai US$35 juta dari rekening bank di Amerika Serikat. Modusnya, dengan menggunakan virus komputer.


Berkat kelakuannya, ia mendapat predikat 'hacker paling seksi sedunia'. Ia bahkan disejajarkan dengan mata-mata cantik, Anna Chapman, yang sempat mengebohkan dunia. Apalagi, dua wanita menarik ini sama-sama berasal dari Rusia.

Dalam menjalankan aksinya, Svechinskaya bekerja bersama 37 hacker lainnya.

Gadis berusia 21 tahun itu saat ini ditahan di New York. Svechinskaya memanfaatkan virus 'Zeus Trojan' dan malware lainnya untuk membajak komputer orang lain.

Lalu, secara rahasia, para hacker komplotannya memantau aktivitas komputer korban, mencuri nomor rekening bank dan password. Dengan modal itu, mereka lalu mengambil uang jutaan dolar dari rekening korban.

Seperti dimuat situs
Daily Mail, Rabu 13 Oktober 2010, uang hasil curian itu lalu ditransfer ke ratusan rekening bank palsu milik perantara di Amerika Serikat yang menerima dan mencuci uang hasil kejahatan cyber.

Svechinskaya juga berperan sebagai perantara yang mendapatkan komisi 10 persen dari uang curian yang ditransfer oleh hacker lainnya.

Svechinskaya punya sedikitnya lima rekening atas nama sendiri dan beberapa alias, di antaranya Anastasia Opokina dan Svetlana Makarova.

Kini, si cantik nan seksi itu diancam pidana 40 tahun dalam sel yang dingin atas dugaan kasus persekongkolan pembobolan bank dan menggunakan paspor palsu.

Jaksa Manhattan, Preet Bharara, mengungkapkan era digital membawa serta banyak manfaat, tetapi juga banyak tantangan untuk penegakan hukum dan lembaga keuangan.

"Penangkapan ini menunjukkan, pembobol bank modern tak lagi memerlukan senjata, masker, atau mobil untuk melarikan diri seperti perampokan konvensional."

"Ini hanya memerlukan internet dan kecerdikan, hanya dalam sekejap mata dengan cara meng-klik mouse," ucapnya.

Anna Chapman


VIVAnews