Grafika Komputer BENTUKBENTUK GEOMETRI Dosen Dewi Octaviani S
Grafika Komputer BENTUK-BENTUK GEOMETRI Dosen : Dewi Octaviani, S. T, M. C. s
Circle • Secara umum prosedur pembentuk lingkaran dibuat dengan rumus dasar x 2+y 2=R 2. 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. Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Algoritma Simetris Delapan Titik • Pada 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’ dalam menentukan lingkaran selengkapnya. • Dengan titik pusat lingkaran tertentu, delapan titik simetris dapat ditampilkan dengan prosedur Circle Point Sebagai berikut: Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Koordinat Simetri 8 Titik Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Lingkaran Dengan 8 Oktan Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Algoritma Simetris Delapan Titik procedure Circle. Points(x, y, value: integer); begin put. Pixel(x, y, value); put. Pixel(-x, y, value); put. Pixel(x, -y, value); put. Pixel(-x, -y, value); put. Pixel(y, x, value); put. Pixel(-y, x, value); put. Pixel(y, -x, value); put. Pixel(-y, -x, value); end; Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Algoritma Lingkaran Midpoint • Algoritma Lingkaran Midpoint juga disebut algoritma lingkaran Bressenham mengembangkan generator lingkaran yang cukup efisien. • Algoritma yang digunakan membentuk semua titik berdasar kan titik pusat dengan penambahan semua jalur sekelilingkaran. • Dalam hal ini hanya diperhatikan bagian 45’ dari suatu lingkaran, yaitu oktan kedua dari x=0 ke x=R/Ö 2, dan menggunakan Circle. Points untuk menampilkan titik dari seluruh lingkaran. Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Langkah langkah untuk membentuk lingkaran algoritma Circle Midpoint 1. Tentukan radius r dengan titk pusat lingkaran(xc, yc) kemudian diperoleh (x 0, y 0)=(0, r) x=0 y=r 2. Hitung nilai dari parameter Pk=1 -r 3. Tentukan nilai awal k=0, untuk setiap posisi xk berlaku sebagai berikut: - Bila Pk< 0, maka titik selanjutnya adalah (xk+1, yk))dan Pk+1=Pk+2 xk+1+1 - Bila tidak, maka selanjutnya adalah(xk+1, yk-1), Dan Pk+1=Pk+2 xk+1+1 -2 yk+1 Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
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+x cy=y+yc 6. Ulangi langkah ke 3 sampai 5, sehingga x>=y Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Contoh Algortima Midpoint Untuk 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. Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
K Pk X y 0 10 0 -9 1 10 1 -6 2 10 2 -1 3 10 3 6 4 9 4 -3 5 9 5 8 6 5 7 8 Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
Latihan Algortima Midpoint Untuk menggambarkan algoritma Bressenham dalam pembentuk an suatu lingkaran dengan titik pusat (0, 0) dan radius 14, perhitungan berdasarkan pada oktan dari kuadran pertama di mana x=0 sampai x=y. Nilai parameter dapat ditentuk an dengan Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
procedure circle. Mid. Point (x. Center, y. Center, radius: integer); var x, y, p: integer; begin x: =0; y: =radius; p: =1 -radius; circle. Plotpoints(x. Center, y. Center, x, y); while x<y do begin x: =x+1; ; if p<0 then p: =p+(2*x+1) else begin y: =y-1; p: =p+(2*(x-y)+1); end; circle. Plot. Points(x. Center, y. Center, x, y); end; Grafika Komputer - STMIK Widya Cipta Dharma Dosen : Dewi Octaviani, S. T, M. C. s
- Slides: 14