Operasi Filling

download Operasi Filling

of 15

Transcript of Operasi Filling

  • 7/24/2019 Operasi Filling

    1/15

    Area Filling

    Setelah berhasil membangun objek grafismaka langkah selanjutnya adalahmelakukan customisasi terhadap atributobjek grafis

    2

    Atribut dari objek grafis dapat berupa: Ukuran garis batas

    Tipe garis batas

    Warna garis batas Warna objek (Fill color / Area Filling)

  • 7/24/2019 Operasi Filling

    2/15

    Area Filling

    Dalam grafis, selain digunakanprimtif-primitif grafis, diperlukanalgoritma khusus untuk mengisi

    3

    .grafik diterapkan pada objek yangmemiliki hole.

    Contoh :

  • 7/24/2019 Operasi Filling

    3/15

    Area Filling

    Beberapa algortima yang dapat

    digunakan untuk melakukan area filling,

    yaitu :

    4

    Scan Line Boundary Fill Algorithm

    Flood Fill Algorithm

  • 7/24/2019 Operasi Filling

    4/15

    Scan Line Fill Algorithm

    Dimulai dari kiri atas layar

    Bergerak ke kanan hingga batas kanan layar Ulangi untuk baris-baris berikutnya

    Jika ditemukan suatu batas area, maka dilakukanoperasiputpixelhingga ditemukan batas area

    5

    berikutnya

    Kelemahan :

    Algoritma akan gagal jika ditemui titik-titik ujung,

    sehingga perlu penanganan khusus. Solusi : periksa semua informasi titik ujung

    berdasarkan list vektor yang dimiliki setiap primitif.

  • 7/24/2019 Operasi Filling

    5/15

    Scan Line Fill Algorithm

    Ilustrasi Proses Scan Line

    6

    Ada masalah ??

  • 7/24/2019 Operasi Filling

    6/15

    Boundary Fill

    Dengan teknik ini pengisian warna

    dilakukan berdasarkan penentuan titikawal.

    Posisi awal diletakkan ada area fillin .

    7

    Kemudian semua titik tetangga diujiterhadap batas area

    Ada 2 metoda untuk mencari titik tetangga

    : 4 Connected

    8 Connected

  • 7/24/2019 Operasi Filling

    7/15

    Boundary Fill

    4 Connected1

    4 X 2

    3

    8

    8 Connected

    1 2 3

    8 X 4

    7 6 5

  • 7/24/2019 Operasi Filling

    8/15

    Algoritma 4-Connected

    Procedure BFill (x,y,fillcol,boundcol);

    Var Currcol : integer;Begin

    Currcol getpixel(x,y);If Currcolboundcol and Currcolfillcol then

    9

    BeginPutpixel (x,y,fillcol);Bfill(x+1,y,fillcol,boundcol);Bfill(x-1,y,fillcol,boundcol);Bfill(x,y+1,fillcol,boundcol);

    Bfill(x,y-1,fillcol,boundcol);End;

    End;

  • 7/24/2019 Operasi Filling

    9/15

    Algoritma 8-Connected

    Procedure BFill (x,y,fillcol,boundcol);Var

    Currcol : integer;Begin

    Currcol getpixel(x,y);

    If (Currcolboundcol) and (Currcolfillcol) thenBegin

    10

    u p xe x,y, co ;

    Bfill(x-1,y-1,fillcol,boundcol);Bfill(x,y-1,fillcol,boundcol);Bfill(x+1,y-1,fillcol,boundcol);Bfill(x-1,y-1,fillcol,boundcol);Bfill(x+1,y-1,fillcol,boundcol);Bfill(x-1,y+1,fillcol,boundcol);

    Bfill(x,y+1,fillcol,boundcol);Bfill(x+1,y+1,fillcol,boundcol);

    End;End;

  • 7/24/2019 Operasi Filling

    10/15

    Boundary Fill

    7 8 9 . . . .

    6

    5

    4

    3

    1

    4 X 2

    3

    11

    2

    1

    Seed position (x,y)

    BFill (x,y,Red,Black);

  • 7/24/2019 Operasi Filling

    11/15

    Boundary Fill

    Bila Area Fill menjadi atribut dariobjek maka warna batas dari prosesini akan sama dengan warna batas

    12

    .

    Ingat bahwa boundry objek tidakboleh ada lubang

  • 7/24/2019 Operasi Filling

    12/15

    Flood Fill Algorithm

    Proses flood fill mirip denganboundary fill, dimana inti dari prosesini adalah mengubah suatu warna

    13

  • 7/24/2019 Operasi Filling

    13/15

    Flood Fill Algorithm

    Procedure floodFill (x,y,fillColor,oldColor);

    BeginIf getpixel(x,y)= oldColor thenBegin

    Putpixel (x,y,fillColor);

    14

    oo x+ ,y, o or,o o or ;floodFill (x-1,y,fillColor,oldColor);floodFill (x,y+1,fillColor,oldColor);floodFill (x,y-1,fillColor,oldColor);

    End;

    End;

  • 7/24/2019 Operasi Filling

    14/15

    Apa perbedaan dari Boundary Fill dan Flood

    fill, kapan kita memakai Flood fill dankapan kita memakai Boundary Fill

    Untuk menjamin keamanan dari algoritma

    15

    ditambahkan sebuah parameterpenghentian yang lain, yaitu posisi daripixel yang diproses apakah masih didalam

    objek atau sudah diluar Ingat bahwa area fill dan garis batas

    merupakan 2 buah atribut yang berbeda

  • 7/24/2019 Operasi Filling

    15/15

    16