Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehAdi Kurniawan Telah diubah "6 tahun yang lalu
1
Topik Perkuliahan Pengantar Penggambaran objek primitif
Algoritma penggambaran garis Dasar, DDA, Bresenham Algoritma penggambaran lingkaran Dasar, Polar, Bresenham Algoritma pengisi region Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
2
TUGAS HARI INI Cari dan Lakukan Critical Review untuk salah satu dari Jurnal dengan Topik sbb : Soft Shadow Mapping Dynamic Cube Mapping Graphical Expression Viewer Menggunakan Delphi Dan Opengl Solar System Simulation Using Visual C++ Automated, Silhouette-BasedRegistration of Textures and 3D-Models Canned Lightsources Penerapan Teknik Painterly Rendering Metode Sampling : Bidirectional Sampling Dan Interleaved Sampling Realistic, Percepatan Hardware Pembuatan Bayangan dan Pencahayaan Transpor Cahaya yang Efisien Menggunakan Metode Penggunaan Ulang Informasi Visibilitas Pengaplikasian Cube Mapping Dalam Opengl Pemodelan Dan Render Yang Efisien Untuk Kain Multiple Level of Detail pada Texture Ilustrasi Pen-Ink pada Teknik Hatching Rendering Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
3
Elemen Pembentuk Grafik
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
4
Objet Primitive menurut OpenGL
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
5
Objek-objek Primitif 3D (Autodesk)
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
6
Titik Perhatikan bahwa sistem koordinat dalam pemrograman grafis
berbeda dengan model koordinat kartesius Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
7
Penggambaran Objek Primitif
Kita akan mendiskusikan algoritma untuk Menggambar garis Menggambar lingkaran Menggambar Poligon Konsep tentang Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
8
Garis Masalah: diberikan dua piksel P(xP, yP) dan Q(xQ, yQ) pada bidang 2D, bagaimana cara terbaik untuk menggambarkan garis yang melalui kedua titik tersebut ? Asumsi: xP<xQ, yP<yQ. (kasus-kasus lain akan ditangani dengan sedikit modifikasi) Kendala: Layar raster merupakan grid integer Q Q ??? P P Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
9
Ilustrasi Penggambaran Garis
Jaggies = Aliasing Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
10
Algoritma Penggambaran Garis
Algoritma Dasar Algoritma DDA Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
11
Algoritma Dasar Berdasarkan pada persamaan garis
Jika diketahui dua buah titik P(x1,y1) dan Q(x2,y2) maka Algoritma: Untuk setiap interval Δx terdapat nilai korespondensi y dengan interval Δy Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
12
Contoh Algoritma Dasar
Soal: Diketahui dua buah titik A(2,1) dan B(6,4). Tentukan titik-titik dijital yang dilalui oleh garis yang melalui kedua titik tersebut! Jawab: x y [y] 2 1.00 1 3 1.75 4 2.50 5 3.25 6 4.00 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
13
Latihan Tentukan koordinat titik-titik dijital untuk garis yang dibentuk oleh dua titik sebagai berikut: (-5,5) dan (1,2) (4,3) dan (8,-2) (2,3) dan (5,3) (2,3) dan (2,5) (6,4) dan (2,1) Gunakan algoritma DDA dan Bresenham untuk menentukan titik-titik dijital antara (-3,3) dan (-1,3) (7,-1) dan (-4,-6) (-3,3) dan (-1,-3) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
14
DDA : Digital Differential Analyzer
Untuk meningkatkan kualitas penggambaran garis Slope (m) sebuah garis bisa positif atau negatif Keuntungan DDA: Lebih cepat dari cara sebelumnya Beban komputasi lebih ringan (tanpa perkalian) Arah increment bisa ke dua arah (x atau y) Kondisi Langkah m<=1, KIKA Δx=1, yi+1=yi+m m<=1, KAKI Δx=-1, yi+1=yi+m m>1, KIKA Δy=1, xi+1=xi+1/m m>1, KAKI Δy=-1, xi+1=xi-1/m Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
15
Algoritma: Contoh: Latihan: Algoritma DDA
Inputkan (x1,y1) dan (x2, y2) Hitung dx dan dy If |dx| > |dy| then s=|dx| else s=|dy| Δx=dx/s; Δy=dy/s Set x=x1; y=y1 x=x+ Δx; y=y+ Δy Lakukan langkah ke 6 sebanyak s kali Contoh: Tentukan dengan algorima DDA titik-titik dijital yang melalui garis yang dibentuk oleh titik (2,1) dan (6,4) Latihan: Lihat sebelumnya Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
16
Algoritma DDA Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
17
3. Latihan3 (Buat Kotak dengan Line) size(200, 200); // Batas Ukuran
background(0); stroke(255,255,0); // warna garis (R=255,G=255,B=0) strokeWeight(2); // ukuran titik line(2,2,195,2); // garis horizontal atas line(2,195,195,2); // garis Vertical kanan line(2,2,2,195);// garis Vertical kiri line(2,195,195,195);// garis horizontal bawah line(195,2,195,195); // garis diagonal kanan-atas ke kiri-bawah line(2,2,195,195); // garis diagonal kiri-atas ke kanan-bawah strokeWeight(25); //ukuran titik point(100,100); // membuat titik Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
18
4. Latihan4 (Buat SegiTiga dan SegiEnam dengan Line)
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
19
5. Latihan5 (Buat ellipse dan potongan lingkaran)
size(400,150); background(255); //draw ellipse fill(255,0,0); ellipse(50,50,75,100); // draw arc 90 degree clockwise fill(0,0,255); arc(100,50,100,100,0,1.57); // draw arc 90 degree fill(0,255,0); arc(175,50,100,100,(0*PI)/180,(90*PI)/180); noFill(); stroke(255,0,0); arc(250,50,100,100,(0*PI)/180,(90*PI)/180); HASIL EKSEKUSI Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
20
6. Latihan6 (Buat Segiempat yang diwarnai)
void setup() { size(200, 200); background(255); noStroke(); // draw the original position in gray fill(192); rect(20, 20, 40, 40); // draw a translucent red rectangle by changing the object coordinates fill(255, 0, 0, 128); rect( , , 40, 40); } HASIL EKSEKUSI Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
21
7. Latihan7 (Buat gambar dengan pengulangan)
void setup() { size (400,400); } void draw() { for ( int i=0; i<100;i=i+10) rect (i,i,50,50); } Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
22
8. Latihan8 (Buat gambar dengan pengulangan)
int x=200; int y=200; void setup() { size (400,400); background(255); } void draw () if (x==200) if(y==200) rect(x,y,10,10); else { fill (255,0,0); rect(x-100,y-100,50,50); Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
23
Algoritma Bresenham Penentuan koordinat menggunakan ‘integer arithmetic’ Di-optimasi berdasarkan jarak kedekatan dengan posisi grid Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
24
Algoritma Bresenham Hitung Δx=x2–x1 dan Δy=y2-y1 Hitung Δa dan Δb
Δa=|Δx| if |Δx| ≥|Δy| else |Δy| Δb=|Δy| if |Δx| ≥|Δy| else |Δx| Hitung = 2 Δb – Δa Tentukan m1 dan m2 m1=M3 jika |Δx| ≥ |Δy| dan Δx ≥0 m1=M5 jika |Δx| < |Δy| dan Δx <0 m1=M7 jika |Δx| ≥ |Δy| dan Δx <0 m1=M1 jika |Δx| < |Δy| dan Δx ≥0 m2=M2 jika Δx ≥ 0 dan Δy ≥ 0 m2=M4 jika Δx ≥ 0 dan Δy < 0 m2=M6 jika Δx <0 dan Δy <0 m2=M8 jika Δx < 0 dan Δy ≥ 0 Jalankan m2 jika ≥ 0 lalu modifikasi = +2 Δb-2 Δa Jalankan m1 jika < 0 lalu modifikasi = +2 Δb Ulangi langkah 5 sampai mencapai titik tujuan (x2, y2) M8 M1 M2 M7 M3 M6 M5 M4 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
25
Algoritma Bresenham procedure bres1(x1,y1,x2,y2:integer); Var dx, dy, x, y, x_end, p, da, db, m1, m2 : integer; begin dx := x2-x1; dy := y2-y1; if abs(dx)>=abs(dy) then da:=abs(dx) else da:=abs(dy); if abs(dx)>=abs(dy) then db:=abs(dy) else db:=abs(dx); if (abs(dx)>=abs(dy)) and (dx>=0) then m1:=3; if (abs(dx)>=abs(dy)) and (dx<0) then m1:=7; if (abs(dx)<abs(dy)) and (dy>=0) then m1:=1; if (abs(dx)<abs(dy)) and (dy<0) then m1:=5; if (dx>=0) and (dy>=0) then m2:=2; if (dx>=0) and (dy<0) then m2:=4; if (dx<0) and (dy<0) then m2:=6; if (dx<0) and (dy>=0) then m2:=8; p := 2 * db - da; Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
26
Agoritma Bresenham (lanj.)
x:=x1; y:=y1; set_pixel(x,y); while (x <> x2) or (y<>y2) begin if p>=0 then p := p + 2*db - 2*da; case m2 of 2:begin x:=x+1;y:=y+1;end; 4:begin x:=x+1;y:=y-1;end; 6:begin x:=x-1;y:=y-1;end; 8:begin x:=x-1;y:=y+1;end; end; end else begin case m1 of 1:y:=y+1; 3:x:=x+1; 5:y:=y-1; 7:x:=x-1; end; p := p + 2* db; set_pixel(x,y); Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
27
PENGGAMBARAN LINGKARAN
Problem: Find the coordinates of the pixels that best draw an origin-centered circle F(x, y) = x2 + y2 - r2 = 0 Constraint: The raster screen is an integer grid Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang Grafika Komputer
28
ALGORITMA PENGGAMBARAN LINGKARAN
Algoritma Dasar (Berdasarkan Persamaan Lingkaran) Algoritma Polar (berdasarkan sifat simetri dan properti lingkaran yaitu pusat dan jari-jari) Algoritma biasa dan polar memiliki kelemahan dalam penampilan lingkaran. Kelemahan ini dieliminasi oleh Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
29
Terlalu banyak perhitungan FLOATING-POINTS
Algoritma Sederhana Versi 1: for x = -R to R hitung y = sqrt(r2 – x2) tulisPixel(x, round(y)) tulisPixel(x, round(-y)) Versi 2: For theta = 0 to 360o tulisPixel(r*cos(theta), r*sin(theta)) Terlalu banyak perhitungan FLOATING-POINTS Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
30
Representasi Lingkaran
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
31
Sifat Simetris Lingkaran
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
32
Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
33
Algoritma Bresenham BresenhamCircle(Xc, Yc, R)
Set X = 0 and Y = R Set D = 3 – 2R Repeat While (X < Y) Call DrawCircle(Xc, Yc, X, Y) Set X = X + 1 If (D < 0) Then D = D + 4X + 6 Else Set Y = Y –1 D = D + 4(X –Y) + 10 Call Draw Circle(Xc, Yc, X, Y) DrawCircle(Xc, Yc, X, Y) Call Put Pixel(Xc+ X, Yc + Y) Call PutPixel(Xc-X, Yc + Y) Call PutPixel(Xc+ X, Yc-Y) Call PutPixel(Xc-X, Yc -Y) Call PutPixel(Xc+ Y, Yc + X) Call PutPixel(Xc-Y, Yc + X) Call PutPixel(Xc+ Y, Yc-X) Call PutPixel(Xc-Y, Yc-X) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
34
Jenis Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
35
Boundary filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
36
Color range Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
37
Geometrika Objek Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
38
Teknik flood filling data-centric process-centric
menggunakan queue untuk mengecek piksel tepi umumnya menerapkan 4-way flood-fill algorithm (why?) tampilan berupa expanding lozenge-shaped fill 4 pixels checked for each pixel filled (8 for an 8-way fill). process-centric menggunakan stack umumnya menerapkan 4-way flood-fill algorithm Tampilan berupa a linear fill with "gaps filled later" behaviour 4 pixels checked for each pixel filled (8 for an 8-way fill) penerapan pada sistem grafis komputer lama/kuno Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
39
Penerapan Algoritma Mengisi Rectangle Mengisi Poligon (xmin, ymin)
(xmax, ymax) For (y = ymin to ymax of rectangle) For (x = xmin to xmax of rectangle) WritePixel(x, y) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
40
Konsep Mengisi Poligon
Find the intersections of the scan line with all edges, sort them in increasing order of x-coordinates: {a1, a2, …, an} = {a, b, c, d} Fill in all pixels between a2k and a2k+1. E.g. those between a and b, and between c and d Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
41
Mengisi Ellips atau Lingkaran
Scan the raster screen line by line If Line intersects the ellipse/circle twice Draw every pixel from the first intersection until (before) the second intersection If Line intersects only once Draw the intersection pixel Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
42
Ilustrasi1 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
43
Ilustrasi1 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
44
Ilustrasi Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
45
Ilustrasi Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
46
Program Dasar Floodfill (C++)
void ffill(int x,int y,int o_color,int n_color) { if(getpixel(x,y)==o_color) { putpixel(x,y,n_color); ffill(x+1,y,o_color,n_color); ffill(x,y+1,o_color,n_color); ffill(x,y-1,o_color,n_color); ffill(x-1,y,o_color,n_color); ffill(x+1,y+1,o_color,n_color); ffill(x-1,y-1,o_color,n_color); ffill(x-1,y+1,o_color,n_color); ffill(x+1,y-1,o_color,n_color); } } void main() rectangle(50,50,100,100); ffill(55,55,0,3); Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
47
Pendekatan Algoritma FloodFIll
Scan-line Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
48
Pendekatan Algoritma FloodFIll
Scan-line Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
49
Pendekatan Algoritma FloodFIll
Scan-line (raster-based fill) Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
50
Seed-fill algorithm Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
51
Memilih Seed-point Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
52
Algoritma Seed-fill Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
53
Neighbours Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
54
Beberapa Contoh Program FloodFill dalam C#
Akses situs : Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
55
Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
56
Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
57
Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
58
Implementasi Region Filling
Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
59
Referensi Tentang Region Filling
COMP175 Region Filing Lec6 Area Fill Polygon fill Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.