MENGGAMBAR DENGAN PIXEL (KONVERSI SCAN) BAB II MENGGAMBAR DENGAN PIXEL (KONVERSI SCAN) Program S1 Teknik Informatika Sekolah Tinggi Teknologi Nurul Jadid Oleh : Moh. Furqan, S. Kom.
1. Menggambar Garis Untuk menggambar garis ada 3 metode yaitu metode DDA (Digital Defferensial Analizer), metode Bresenham dan metode Polinom. Metode DDA dan polinom menggunakan perhitungan dengan bilangan real, sedangkan metode Bresenham menggunakan perhitungan dengan bilangan bulat (integer). 1.1 Metode DDA Metode ini menggunakan prinsip menggambar garis yang melalui 2 titik yang diketahui dengan persamaan: Y-Y1 = (Y2-Y1)/(X2-X1).X Acuan grafik adalah koordinat kartesius tangan kanan dengan titik awal tengah monitor. Prosedurnya sebagai berikut : Prosedure TForm1.DDAClick(Sender : TObject) Program Komputer Grafik
1.2 Metode Bresenham Dasar Bresenham adalah menggambar garis dengan slope positif ≤ 1. Untuk garis dengan slope selain itu harus dilakukan tranformasi nilai. Hasilnya ditransformasikan balik dan kemudian baru digambarkan. Nilai x2 harus selalu lebih besar dari nilai x1. Nilai x dan y berubah dengan nilai 1 atau nol. Perubahan ini berdasarkan pada nilai faktor Bresenham (e) dengan nilai awal: e = 2 * DeltaY – DeltaX Prosedurnya sebagai berikut : ProsedureTForm1.GarisBresenham(Sender : TObject) Program Komputer Grafik
Prosedurnya sebagai berikut : 1.3 Metode Polinom Metode ini menggunakan persamaan y = a x + b, dimana a adalah slope garis dan b adalah titik potong garis dengan sumbu y. menggambar garis dengan metode ini cukup diketahui nilai a, b, nilai x awal dan nilai x akhir, dimana x awal < x akhir. Prosedurnya sebagai berikut : ProsedureTForm1.GarisPolinom(Sender : TObject) Program Contoh Program: Menggambar Garis Dengan Pixel Komputer Grafik
2. Menggambar Lingkaran Menggambar lingkaran dengan pixel menghasilkan 8 warna, 4 warna, 2 warna atau 1 warna. Lingkaran mempunyai 8 simetris putar, artinya lingkaran dapat dibagi menjadi 8 bagian yang simetris sama atau satu bagian dapat diputar sehingga dapat membentuk sebuah lingkaran penuh. Untuk melengkapi program lingkaran dibentuk prosedur FormCreate dan prosedur Sumbu. Procedure TForm1.FormCreate(Sender : TObject); Procedure TForm1.FormPaint(Sender : TObject); Menggambar lingkaran dapat digunakan 2 metode, yaitu: metode polinom dan metode trigonometri Komputer Grafik
Lingkaran dengan pusat (0,0) dan Radius r persamaan : x² + y ² = r ² 2.1 Metode Polinom Lingkaran dengan pusat (0,0) dan Radius r persamaan : x² + y ² = r ² bentuk eksplisit untuk menenntukan nilai y: y = √(r ² - x ²) diagram simetrisnya : Batas scan mulai dari x = 0 sampai x = r * cos 45 atau x = 0.707 * r. Prosedur Lingkaran Polinom Pusat 00 Warna 8 Program (-x,y) (x,y) (y,-x) (y,x) (0,0) (-y,-x) (-y,x) (-x,-y) (x,-y) Komputer Grafik
b. Lingkaran dengan pusat (a,b) dan Radius r persamaan : (x – a)² + (y – b) ² = r ² untuk membentuk persamaan dapat dilakukan dengan menggeser titik pusat (0,0) ke (a,b) dan titik-titik lainnya berubah. Prosedur Lingkaran Polinom PusatAB Program (-x+a,y+b) (x+a,y+b) (y+a,-x+b) (y+a,x+b) (0,0) (-y+a,-x+b) (-y+a,x+b) (-x+a,-y+b) (x+a,-y+b) Komputer Grafik
Lingkaran dengan pusat (0,0) dan Radius r 2.2 Metode Trigonometri Lingkaran dengan pusat (0,0) dan Radius r Persamaan : x = r cos α dan y = r sin α Pembagian lingkaran dalam bentuk simetris sama dengan lingkaran polinom. Batas scan mulai dari sudut = 0 sampai 45 derajad. Prosedur Lingkaran Trigonometri Pusat00 Program Lingkaran dengan pusat (a,b) dan Radius r Persamaan : x = a + r cos α dan y = b + r sin α persamaan diperoleh dengan menggeser titik pusat (0,0) ke titik (a,b) diikuti dengan pergeseran titik yang lainnya. Prosedur Lingkaran Trigonometri PusatAB Program Komputer Grafik
3. Menggambar Ellips Menggambar ellips dengan pixel menghasilkan 4 warna, 2 warna atau 1 warna. Ellips mempunyai 4 simetris putar. Menggambar ellips dapat digunakan 2 metode, yaitu: metode polinom dan metode trigonometri. 3.1 Metode Polinom Ellips dengan pusat (0,0) dan sumbu-sumbu h dan k. Persamaan : x² /h² + y ² /k ² = 1 Bentuk eksplisitnya: y = k √ (1 – (x / h) ²) batas scan diambil sepanjang sumbu datarnya (h). ProsedurEllipsPolinomPusat00 Program (-x,y) (x,y) (0,0) (-x,-y) (x,-y) Komputer Grafik
Ellips dengan pusat (a,b) dan sumbu-sumbu h dan k. Persamaan : (x – a)² /h² + (y – b) ² /k ² = 1 Batas scan mulai dar x = 0 sampai x = h. ProsedurEllipsPolinomPusatAB Program (-x+a,y+b) (x+a,y+b) (0,0) (-x+a,-y+b) (x+a,-y+b) Komputer Grafik
3.2 Metode Trigonometri Persamaan Ellips dengan pusat (0,0) dan sumbu h dan k : x = h cos α dan y = k sin α Batas scan mulai dari sudut = 0 sampai 90 derajad. ProsedurEllipsTrigonoPusat00 Program Persamaan Ellips dengan pusat (a,b) dan sumbu h dan k : x = a + h cos α dan y = b + k sin α ProsedurEllipsTrigonoPusatAB Program Komputer Grafik
4. Menggambar Fungsi Trigonometri Menggambar fungsi trigonometri (sinus, cosinus atau tangen) harus mengkonversikan besaran sudut ke besaran sumbu datar (x). Jika setengah sumbu x 1 gambar fungsi sinus/cosinus penuh, konversi sudut 360° = ClientWidth div 2. Jika setengah sumbu x 2 gambar fungsi sinus/cosinus penuh, konversi sudut 360° = ClientWidth div 4. dst. Untuk tinggi (amplitudo) dari fungsi dapat ditentukan sendiri dengan nilai tertentu > 1. Komputer Grafik
4.1 Menggambar Fungsi Sinus Bentuk umum : y = A sin α dimana α dalam satuan radian, A bilangan yang cukup besar. Prosedur bSinusClick; 4.2 Menggambar Fungsi Cosinus Bentuk umum : y = A cos α Prosedur bCosinusClick; 4.1 Menggambar Fungsi Tangen Bentuk umum : y = A sin α / cos α Prosedur bTangenClick; Contoh Program Komputer Grafik
4.4 Menggambar Fungsi Cotangen Bentuk umum : y = A cos α / sin α dimana α dalam satuan radian, A bilangan yang cukup besar. Prosedur bCotangenClick; 4.5 Menggambar Fungsi Secan Bentuk umum : y = A / cos α Dimana α dalam satuan radian, A bilangan yang cukup besar. Prosedur bSecanClick; 4.5 Menggambar Fungsi Cosecan Bentuk umum : y = A / sin α Prosedur bCosecanClick; Contoh Program Komputer Grafik
5. Menggambar Fungsi Umum Konsep bentuk persamaan fungsi dan sifat-sifat khusus fungsi serta nilai batas variabel bebas (x). Warna grafik satu dan dapat dpilih sesuai keinginan. Misal menggambar grafik fungsi kuadrat (parabola) bentuk persamaan : y = a x² + b x + c nilai ≠ 0, jika nilai a negatif grafik ke bawah. jika nilai a positif grafik ke atas. perubahan y sangat besar terhadap perubahan x maka nilai perubahan x kecil saja (misal : 0.1 / 0.05) fungsi mempunyai sumbu simetris xsim = -b/(2a). batas gambar fungsi ada dikiri atau kanan sumbu simetris. Prosedure bParabolaClick Program Komputer Grafik
7. Menggambar Bangun Ruang Bangun ruang dapat dibentuk dengan menggabungkan : garis, lingkaran, ellips, parabola, dll. Menggambar bangun ruang prosedure standar (satu warna) atau prosedure yang dibuat sendiri. Pembuatan bangun ruang adalah penentuan titik-titik hubung antar bangun penyusunnya. 7.1 Menggambar Silinder Tegak Silinder 2 ellips dan 2 garis lurus yang melalui titik-titik ujung sumbu panjang ellips. Prosedur Standar Silinder Tegak Komputer Grafik
7. Menggambar Bangun Ruang 7.2 Menggambar Bola Bola 1 Lingkaran dan 1 ellips yang melalui sumbu datarnya. Prosedur Standar Bola 7.2 Menggambar Kerucut Tegak Kerucut 1 Ellips dan 2 garis lurus yang melalui titik ujung sumbu panjang ellips dan berpotongan di titik dengan koordinat adalah tepat di atas atau di bawah titik pusat ellips dengan jarak t. Prosedur Standar Kerucut Tegak Program t Komputer Grafik
8. Menggambar Bangun Bergerak Bangun-bangun geometri seperti garis, segitiga, lingkaran, ellips dan sebagainya dapat dibuat bergerak. Ada 2 cara menggerakkan bangun tersebut, yaitu: Cara manual dengan mengubah koordinat bangun secara manual Cara transformasi dengan menggunakan kaidah transformasi (bab III) Pembahasan cara manual, sebagai berikut: Bangun geometri dibuat dalam suatu procedure tak standar yang ditulis di bawah garis directive {$R * .DFM} Procedure sebaiknya dilengkapi dengan parsing parameter. Procedure dibuat dalam 2 bentuk, yaitu procedure dengan warna dan procedure yang sama dengan warna clear. Procedure yang menggerakkan bangun dibuat di dalam aksi ClickButton Jika menggunakan procedure library grafik yang disediakan delphi maka tidak perlu membuat procedure tak standar. Prosedur Lingkaran Polinom Prosedur Gerak Program Komputer Grafik