Apa perbedaan dari algoritma pembuatan lingkaran dengan algoritma elips?

Apa perbedaan dari algoritma pembuatan lingkaran dengan algoritma elips?

Loading Preview

Sorry, preview is currently unavailable. You can download the paper by clicking the button above.

3 – Output Primitif 22

3.3 Algoritma Pembentukan Lingkaran

Pada umumnya, lingkaran digunakan sebagai komponen dari suatu gambar. Prosedur untuk menampilkan lingkaran dan elips dibuat dengan persamaan dasar dari lingkaran x 2 +y 2 =r 2 . Lingkaran adalah kumpulan dari titik-titik yang memiliki jarak dari titik pusat yang sama untuk semua titik. Lingkaran dibuat dengan menggambarkan seperempat lingkaran, karena bagian lain dapat dibuat sebagai bagian yang simetris. Penambahan x dapat dilakukan dari 0 ke r sebesar unit step, yaitu menambahkan ± y untuk setiap step. Simetris delapan titik Proses pembuatan lingkaran dapat dilakukan dengan menentukan satu titik awal. Bila titik awal pada lingkaran x,y, maka terdapat tiga posisi lain, sehingga dapat diperoleh delapan titik. Dengan demikian, hanya diperlukan untuk menghitung segmen 45 o dalam menentukan lingkaran selengkapnya. Delapan titik simetris, yaitu : Kuadran I x,y,y,x Kuadran II -x,y,-y,x Kuadran III -x,-y,-y-x Kuadran IV x,-y,y,-x Algoritma lingkaran midpoint disebut juga algoritma lingkaran Bressenham. Algoritma yang digunakan membentuk semua titik berdasarkan titik pusat dengan penambahan semau jalur disekeliling lingkaran. Dalam hal ini hanya diperhatikan bagian 45 o dari suatu lingkaran, yaitu oktan kedua dari x = 0 ke x = R 2, dan menggunakan prosedur circle point untuk menampilkan titik dari seluruh lingkaran. 0, bila x,y di dalam garis lingkaran circle x,y =0, bila x,y di garis lingkaran 0, bila x,y di luar garis lingkaran fungsi lingkaran menggambarkan posisi midpoint antara pixel yang terdekat dengan jalur lingkaran setiap step. Fungsi lingkaran menentukan parameter pada algoritma lingkaran. Langkah-langkah pembentukan lingkaran : 1. Tentukan radius r dengan titik pusat lingkaran x c ,y c kemudian diperoleh x c ,y c = 0,r. 2. Hitung nilai dari parameter P = 54 – r 1-r 3. Tentukan nilai awal k = 0, untuk setiap posisi x k berlaku sbb : Bila p k 0, maka titik selanjutnya adalah x k +1,y k P k+1 = p k +2 x k+1 +1 Bila p k 0, maka titik selanjutnya adalah x k +1,y k -1 P k+1 = p k +2 x k+1 +1 - 2 y k+1 3 – Output Primitif 23 Dimana 2 x k+1 = 2 x k + 2 dan 2 y k+1 = 2 y k – 2 4. Tentukan titik simetris pada ketujuh oktan yang lain. 5. Gerakkan setiap posisi pixel x,y pada garis melingkar dari lingkaran dengan titik pusat x c ,y c dan tentukan nilai koordinat : x= x + x c dan y = y + y c 6. Ulangi langkah ke 3 -5, sampai dengan x=y. Contoh : Untuk menggambarkan algoritma Bressenham dalam pembentukan suatu lingkaran dengan titik pusat 0,0 dan radius 10, perhitungan berdasarkan pada oktan dari kuadran pertama dimana x =0 sampai x =y. Penyelesaian : x ,y =0,0 r = 10 x ,y = 0,10 2x = 0, 2y = 20 parameter p = 1-r p = -9 k p k x k+1 ,y k+1 2 x k+1 2 y k+1 -9 1,10 2 20 1 -6 2,10 4 20 2 -1 3,10 6 20 3 6 4,9 8 18 4 -3 5,9 10 18 5 8 6,8 12 16 6 5 7,7 14 14 3 – Output Primitif 24 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 Latihan Buat sebuah lingkaran dengan r = 9 terhadap titik pusat 0,0 4 – Atribut Output Primitif 25 4 ATRIBUT OUTPUT PRIMITIF Pada umumnya, setiap parameter yang memberi pengaruh pada output primitive ditampilkan sesuai dengan parameter atribut. Beberapa parameter atribut, seperti ukuran dan warna ditentukan sebagai karakteristik dasar dari parameter. Sedangkan yang lain ditentukan untuk penampilan pada kondisi tertentu. Teks dapat dibaca dari kiri ke kanan, miring searah diagonal slanted diagonal, atau vetical sesuai kolom. Salah satu cara untuk mengatur atribut output primitif, yaitu dengan daftar parameter fungsi yang berkaitan, contohnya fungsi menggambar garis dapat berisi parameter untuk warna, tebal, dan lainnya.

4.1 Atribut Garis

Embed Size (px) 344 x 292429 x 357514 x 422599 x 487

M. Alaik Nasrullah (407532305056) D3 Elektronika

Algoritma Pembentuk LingkaranSecara umum prosedur pembentuk lingkaran dibuat dengan rumus dasar x2+y2=R2. Terdapat beberapa cara untuk membentuk suatu lingkaran namun tidak efisien. Lingkaran dapat dibuat dengan menggambarkan seperempat lingkaran karena bagian lain dapat dibuat sebagai bagian yang simetris.

A Algoritma Simetris delapan titikPada algoritma ini pembuatan lingkaran dilakukan dengan menentukan satu titik awal. Bila titik awal pada lingkaran(x,y) maka terdapat tiga posisi lain, sehingga dapat diperoleh delapan titik. Dengan demikian sebenarnya hanya diperlukan untuk menghitung segmen 45 dalama menentukan lingkaran selengkapnya. Dengan titik pusat lingkaran tertentu, delapan titik simetris dapat ditampilkan dengan prosedur Circle Point Sebagai berikut: procedure CirclePoints(x, y, value:integer); begin putPixel(x,y,value); putPixel(-x,y,value); putPixel(x,-y,value); putPixel(-x,-y,value); putPixel(y,x,value); putPixel(-y,x,value); putPixel(y,-x,value); putPixel(-y,-x,value); end;

B .Algoritma Lingkaran MidpointAlgoritma Lingkaran Midpoint juga disebut algoritma lingkaran Bressenham. Bressenham mengembangkan generator lingkaran yang cukup efisien. Algoritma yang digunakan membentuk semua titik berdasarkan titik pusat dengan penambahan semua jalur sekeliling lingkaran. Algoritma ini diturunkan dari algoritma Midpoint untuk pembentukan garis. Dalam hal ini hanya diperhatikan bagian 45 dari suatu lingkaran, yaitu oktan kedua dari x=0 ke x=R/2, dan menggunakan CirclePoints untuk menampilkan titik dari seluruh lingkaran.Langkah langkah untuk membentuk lingkaran algoritma Circle Midpoint:

1.Tentukan radius r dengan titk pusat lingkaran(xc,yc) kemudian diperoleh (x0,y0)=(0,r) 2.Hitung nilai dari parameter P0=5/4r 3.Tentukan nilai awal k=0, untuk setiap posisi xk berlaku sebagai berikut: oBila Pk < 0, maka titik selanjutnya adalah (xk+1,yk)) dan Pk+1 =Pk+2xk+1+1 Bila tidak, maka selanjutnya adalah (xk+1,yk-1), dan Pk+1=Pk 2xk+1 +12yk+1 Dimana 2xk+1=2xk+2 Dan 2yk+=2yk2 4.Tentukan titik simetris pada ketujuh oktan yang lain 5.Gerakkan setiap posisi pixel(x,y) pada garis melingkar dari lingkaran dengan titik pusat (xc,yc) dan tentukan nilai koordinat: x=x+xc y=y+yc 6.Ulangi langkah ke3 sampai 5, sehingga x>=y

Contoh algoritma lingkaran midpointUntuk menggambarkan algoritma Bressenham dalam pembentukan suatu lingkaran dengan titik pusat (0,0) dan radius 10, perhitungan berdasarkan pada oktan dari kuadran pertama di mana x=0 sampai x=y. Nilai parameter dapat ditentukan dengan

Prosedur algoritma lingkaran midpoint Input yang digunakan pada prosedur ini adalah koordinat titik pusat dan radius lingkaran. Posisi pixel ditentukan dengan rutin setPixel. uses graph,crt;

5. Algoritma Pembentukan Elips Elips merupakan modifikasi dari bentuk lingkaran, dengan memasukkan mayor dan minor axis pada prosedur lingkaran. Elips ditentukan oleh satu set titik dengan memperhitungkan jumlah jarak dari kedua posisi(foci). Bla jarak ke kedua foci dari sembarang titik p(x,y) pada elips diberi label d1 dan d2, maka persamaan elips menjadi d1+d2=konstan Untuk menggambarkan jarak d1 dan d2 dengan ketentuan koordinat masing masing

Dimana mayor dan minor axis elips dalam posisi pararel dengan sumbu x dan sumbu y pada contoh ini, parameter rx disebut semi major axis dan ry disebut semi minor axis, sehingga persamaan elips dengan parameter rx dan ry menjadi

Algoritma elips Midpoint Untuk algoritma pembentukan elips, pendekatan yang dilakukan sama dengan penggunaan pada saat menampilkan lingkaran. Dengan parameter untuk elips pada posisi standar, yaitu rx, ry, dan(xc,yc). Bila elips ditampilkan pada posisi standar, maka dapat dilakukan dengan memutar elips tersebut menurun koordinat titik pusat, dan mendapatkan kembali mayor dan minor axis. Metode midpoint untuk elips dijalankan pada kuadran pertama dalam dua bagian. Bagian pertama menrut kemiringan elips rx

Elips merupakan modifikasi dari bentuk lingkaran, dengan memasukkan mayor dan minor axis pada prosedur lingkaran. Elips ditentukan oleh satu set titik dengan memperhitungkan jumlah jarak dari kedua posisi(foci). Bila jarak ke kedua foci dari sembarang titik p(x,y) pada elips diberi label d1 dan d2, maka persamaan elips menjadi :

d1+d2=konstan

Untuk menggambarkan jarak d1 dan d2 dengan ketentuan koordinat masing masing F1(1(x1,1,y1) 1) 1) dan F2(2(X2,2,Y2)

Ö((xx1)2+(yy1)2)2+Ö((xx2)2+(yy2)2=konstan

Dimana mayor dan minor axis elips dalam posisi pararel dengan sumbu x dan sumbu y pada contoh ini, parameter rx disebut semi major axis dan ry disebut semi minor axis, sehingga persamaan elips dengan parameter rx dan ry menjadi :

((xrc)/rx)2 + ((yyc)/ry)2=1

Algoritma elips Midpoint
Untuk algoritma pembentukan elips, pendekatan yang dilakukan sama dengan penggunaan pada saat menampilkan lingkaran. Dengan parameter untuk elips pada posisi standar, yaitu rx, ry, dan(xc,yc). Bila elips ditampilkan pada posisi standar, maka dapat dilakukan dengan memutar elips tersebut menurun koordinat titik pusat, dan mendapatkan kembali mayor dan minor axis.


Metode midpoint untuk elips dijalankan pada kuadran pertama dalam dua bagian. Bagian pertama menrut kemiringan elips rx<ry. Penambahan dengan unit step pada arah sumbu x dilakukan bila slope lebih kecil dari 1, dan dengan unit step menurut sumbu y bila kemiringan lebih besar dari 1.


Bagian 1 dan 2 dapat digunakan untuk bermacam macam cara. Pertama dimulai dari posisi (0,ry) dan step searah jarum jam sepanjang jalur elips pada kuadran pertama. Pergeseran dengan unit step dalam x pada saat slope lebih besar dari 1.


Alternatif lain, dimulai dari (rx,0) dan seleksi titik dalam arah berlawanan dengan arah jarum jam. Penggeseran unit step y ke unit step x pada saat kemiringan lebih besar dari 1. dengan prosesor pararel, posisi pixel dapat dihitung dalam dua bagian sekaligus.

Pembentukan elips menurut algoritma Circle midpoint sebagai berikut: 1.Tentukan rx,ry dan pusat elips (xc,yc) kemudian diperoleh (xo,yo)=(0,ry) 2.Hitung nilai parameter P10=ry2rx2 ry+1/4 rx2

3.Tentukan nilai awal k=0, untuk setiap posisi xk k berlaku sebagai berikut :

  • Bila p1k< 0 maka titik selanjutnya adalah (xk+1, yk) 

p1k+1k+1k+1=p1k+2ry2xk+1k+1k+1+ry2

  • Bila tidak, maka titik selanjutnya adalah (xk+!,yk1) dan

p1k+1k+1k+1=p1k+2ry2xk+1k+1k+12rx yk+1k+1k+1+ry2

dengan 2ry2xk+1k+1k+1=2ry2xk k +2ry2 Dan 2rx yk+1k+1k+1=2rx2 yk k +2rx2

Teruskan sampai 2ry2x >= 2rx2 y

4.Tentukan nilai parameter pada bagian kedua menggunakan titik terakhir (x0,y0) yang telah dihitung pada bagian pertama, sebagai berikut

P2k+1=k+1=k+1=k+1=2ry2 2 (xo+1/2)2+2rx2 2 (yo1)2rx2 ry2

5.Setiap posisi yk k pada bagian kedua, dimulai dengan k=0

  • Bila p2k> 0 maka titik selanjutnya adalah (xk, yk1)

p2k+1k+1k+1=p2k+2rx2yk+1k+1k+1+rx2

  • Bila tidak, maka titik selanjutnya adalah (xk+1,yk1) dan

p2k+1k+1k+1=pk+2ry2xk+1k+1k+12rx yk+1k+1k+1+ry2

6.Tentukan titik simetris pada ketiga kuadran lainnya
7.Gerakkan setiap posisi(x,y) pada garis melingkar dari elisp dengan titik pusat(xc,yc) dan tentukan nilai koordinat

x=x+xc y=y+yc

8.Ulangi langkah untuk bagian pertama di atas, sehingga 2ry2x >= 2rx2 y

Contoh algoritma elips Midpoint Untuk menggambarkan algoritma midpoint dalam pembentukan elips dengan titik pusat(0,0) dan mayor axis rx=6, serta minor axis ry=8, perhitungan berdasarkan pada kuadran pertama sebagai berikut:, nilai parameter dapat ditentukan         2ry2x=0         2ry2x=2rx2 ry         p1o= ry2 2 2 + rx2 ry y 1/4 rx2

              =-215


Koordinat titik awal (x,r) =(0,8)

Apa perbedaan dari algoritma pembuatan lingkaran dengan algoritma elips?

Prosedur algoritma elips MidpointProsedur berikut menampilkan posisi pixel pada monitor dengan algorima Midpoint. Input yang digunakan adalah koordinat titik pusat mayor axis, dan minor axis. Posisi pixel ditentukan dengan rutin setPixel. uses graph,crt;    {tambahkan pada bagian ini prosedur penginisialisasian device, lihat pada bab 1}      procedure elipsPlotPoints(xCenter,yCenter,x,y:integer); begin        putPixel(xCenter+x, yCenter+y,30);        putPixel(xCenter-x, yCenter+y,30);        putPixel(xCenter+x, yCenter-y,30);        putPixel(xCenter-x, yCenter-y,30); end; procedure elipsMidPoint(xCenter,yCenter,Rx, Ry:integer); var       Rx2,Ry2,x,y,twoRx2,twoRy2,py,px,p:integer; begin       Rx2:=Rx*Rx;       Ry2:=Ry*Ry;       x:=0;       y:=Ry;       twoRx2:=2*Rx2;       twoRy2:=2*Ry2;       px:=0;       py:=twoRx2*y;       elipsPlotPoints(xCenter,yCenter,x,y);         //bagian1         p:=round(Ry2-(Rx2*Ry)+(0.25*Rx2));         while px<py do         begin                x:=x+1;                px:=px+twoRy2;                if p<0 then                     p:= p+(Ry2+px)               else               begin                     y:=y-1;                     py:=py-twoRx2;                     p:=p+(Ry2+px-py);               end;        elipsPlotPoints(xCenter,yCenter,x,y);

       end

    //bagian 2     p:=round(Ry2*(x+0.5) *(x+0.5)+Rx2*(y-1) *(y-1)-Rx2*Ry2);     while y>0 do     begin            y:=y-1;            py:=py-twoRx2;            if p>0 then                    p:=p+(Rx2-py)                   else                   begin                            x:=x+1;                            px:=px+twoRy2;                            p:=p+Ry2+px-py;                   end;            elipsPlotPoints(xCenter,yCenter,x,y);     end; end; begin         init;         elipsMidPoint(130,120,120,190);         readkey;        destroy; end. * Sumber : Modul Praktikum Grafika Komputer 2D oleh Muhammad Fuad DR, Fakultas MIPA                  Universitas  Gajah Mada Yogyakarta

(edited by : erni mahdalena)


Page 2