Topik Perkuliahan Pengantar Penggambaran objek primitif

Slides:



Advertisements
Presentasi serupa
Pertemuan 03: Grafika Komputer: Windows dan Viewport
Advertisements

GRAPHICAL SOLUTION OF LINEAR PROGRAMMING PROBLEMS
Grafika Komputer (TIZ10)
Dasar Pembuatan Movie Flash R0312 – Grafik Komputer.
Oleh: Rinaldi Munir Informatika STEI-ITB
Hidden Surface Removal (HSR)
Dasar Pemrograman MODUL 07 PERULANGAN.
Graphical User Interface (GUI)
Grafika Komputer (TIZ10)
Grafika Komputer (TIZ10)
Kelas XII/ 1 Oleh: Adhe Whisnu K.
PEMBANGKITAN CITRA GRAFIK Dosen :Dewi Octaviani, S.T, M.C.s
BENTUK-BENTUK GEOMETRI Dosen :Dewi Octaviani, S.T, M.C.s
Objek Oriented Mengenal konsep Obyek di Processing
Grafika & Pengolahan Citra (CS3214) 12 – Rendering
GRAFIKA KOMPUTER ATRIBUT OUTPUT PRIMITIF
D3 Manajemen Informatika S1 Sistem Informasi
Color.
KOMPUTER GRAFIK Algoritma Garis Naïve dan DDA
Komputer Grafik Rudy Gunawan
Presented By : Group 2. A solution of an equation in two variables of the form. Ax + By = C and Ax + By + C = 0 A and B are not both zero, is an ordered.
S1 Teknik Informatika Disusun Oleh Dr. Lily Wulandari
Pertemuan 11 Interaksi User Diadaptasi dari paint.c E. Angel.
S1 Teknik Informatika Disusun Oleh Dr. Lily Wulandari
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Geometri Primitive (Lingkaran)
Fill Area dan Teks Grafis
Graphical User Interface (GUI)
Clipping Edy Mulyanto.
NAMA : siti hajar NIM : UNIT : b NO.hp : 0852 –
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Pembentuk Grafik Grafik dapat terbentuk dengan berbagai pola : Titik
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Geometri Primitive.
Pengujian Jalur Pengujian Jalur Dasar (Basis Path Testing)
Gambar ini menjelaskan prosedur untuk pengisian solid dari poligon Gambar ini menjelaskan prosedur untuk pengisian solid dari poligon. Titik potong.
LINGKARAN Algoritma Pembentukan Lingkaran
Algoritma Garis DDA dan Bressenham
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Hidden Surface Removal (HSR)
Konsep 3D dan Representasi Objek 3D
Dasar teori dan algoritma grafika komputer
Pertemuan 3 Pengolahan Citra Digital
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Pertemuan II – Grafika Komputer
Grafika Komputer Pengenalan Grafika Komputer &
Computer Vision Materi 7
Algoritma Garis Bressenham dan Mid Point
Sistem Koordinat dan Bentuk Dasar Geometri (Output Primitif)
Algoritma Bentuk Primitif
D3 Manajemen Informatika S1 Sistem Informasi
Graphical User Interface (GUI)
MENGGAMBAR DENGAN PIXEL (KONVERSI SCAN)
ALGORITHMA GARIS Hieronimus Edhi Nugroho, M.Kom.
Grafika Komputer Cliping 2 D.
Pertemuan II – Grafika Komputer
Pembangkitan Citra Grafik Dosen :Dewi Octaviani, S.T, M.C.s
Candra asus umbar wahono
PROCESSING OUTPUT PRIMITIVE.
TUGAS REVIEW JURNAL GRAFIKA KOMPUTER
Ihr Logo Dasar teori dan algoritma grafika komputer.
D3 Manajemen Informatika S1 Sistem Informasi
Geometri Primitive (Lingkaran)
D3 Manajemen Informatika S1 Sistem Informasi
D3 Manajemen Informatika S1 Sistem Informasi
BAHAN AJAR Nama Mata Kuliah : Laboratorium Aplikasi Komputer 1
Aplikasi Graph Minimum Spaning Tree Shortest Path.
Buat kartun Dengan Processing. Buat Kepala size (600,600); background(5,249,74); //kepala strokeWeight(3); fill(0,0,255); stroke(0,0,0); arc(350,250,250,255,(130*PI)/180,(410*PI)/180);
MODUL.1 DATA SPASIAL DAN DATA NON SPASIAL
D3 Manajemen Informatika 2 DB 23
Transcript presentasi:

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

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

Elemen Pembentuk Grafik Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Objet Primitive menurut OpenGL Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Objek-objek Primitif 3D (Autodesk) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Titik Perhatikan bahwa sistem koordinat dalam pemrograman grafis berbeda dengan model koordinat kartesius Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

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

Ilustrasi Penggambaran Garis Jaggies = Aliasing Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Algoritma Penggambaran Garis Algoritma Dasar Algoritma DDA Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

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

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

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, KIKA Δx=1, yi+1=yi+m m<=1, KAKI Δx=-1, yi+1=yi+m m>1, KIKA Δy=1, xi+1=xi+1/m m>1, KAKI Δy=-1, xi+1=xi-1/m Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

Algoritma DDA Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

4. Latihan4 (Buat SegiTiga dan SegiEnam dengan Line) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

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(20 + 60, 20 + 80, 40, 40); } HASIL EKSEKUSI Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

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

Algoritma Bresenham Penentuan koordinat menggunakan ‘integer arithmetic’ Di-optimasi berdasarkan jarak kedekatan dengan posisi grid Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

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

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

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

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

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

Representasi Lingkaran Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Sifat Simetris Lingkaran Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Algoritma Bresenham Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

Jenis Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Boundary filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Color range Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Geometrika Objek Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

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

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

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

Ilustrasi1 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Ilustrasi1 Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Ilustrasi Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Ilustrasi Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

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

Pendekatan Algoritma FloodFIll Scan-line Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Pendekatan Algoritma FloodFIll Scan-line Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Pendekatan Algoritma FloodFIll Scan-line (raster-based fill) Seed-fill (boundary-fill) Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Seed-fill algorithm Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Memilih Seed-point Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Algoritma Seed-fill Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Neighbours Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Beberapa Contoh Program FloodFill dalam C# Akses situs : http://www.codeproject.com/Articles/5133/Flood-Fill-Algorithms-in-C-and-GDI http://www.codeproject.com/Articles/6017/QuickFill-An-efficient-flood-fill-algorithm http://www.codeproject.com/Articles/16405/Queue-Linear-Flood-Fill-A-Fast-Flood-Fill-Algorith Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Implementasi Region Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Implementasi Region Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Implementasi Region Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Implementasi Region Filling Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang

Referensi Tentang Region Filling COMP175 Region Filing Lec6 Area Fill Polygon fill Pascasarjana Magister Ilmu Komputer Univ. Putra Indonesia “YPTK” Padang