Professional Documents
Culture Documents
Tujuan
• Mengambar bentuk-bentuk garis, persegi dan elips menggunakan fungsi
standar Delphi pada komponen PaintBox.
• Membuat fungsi primitif untuk menggambar garis dan elips.
Latihan 1.1
Pada latihan ini dikenalkan fungsi-fungsi standar Delphi untuk penggambaran
garis, persegi dan lingkaran.
Rancangan tampilan dibuat sebagai berikut:
PaintBox1
Latihan 1.2
Pada latihan ini dibuat fungsi primitif untuk menggambar garis dan elips.
Desain tampilan hampir sama dengan Latihan 1.1. Jika program dijalankan dan
ButtonGaris diklik akan dihasilkan tampilan sebagai berikut:
Tugas
Modifikasi program di atas sehingga tampilan elips tidak terputus.
Latihan 2.1
Susun project untuk menggambar kurva sinus dengan tampilan sebagai berikut:
Pengembangan
Modifikasi program di atas dengan membuat nilai DeltaX, Periode, x1, x2, y1,
y2 bisa diinputkan saat program berjalan dengan menggunakan komponen
Edit.
Pengembangan
Seperti pada latihan sebelumnya modifikasi program di atas dengan membuat
nilai DeltaX, Periode, x1, x2, y1, y2 bisa diinputkan saat program berjalan
dengan menggunakan komponen Edit. Tambahkan juga pengatur warna kurva
seperti pada latihan sebelumnya.
Latihan 3
Pada project ini digunakan metode Interpolasi Newton Umum Beda Terbagi
untuk menghubungkan titik-titik yang ditulis pada StringGrid. Metode
interpolasi Newton ditulis pada unit INBT dan tidak dibahas secara matematis.
Sebagai panduan untuk menentukan posisi titik pada PaintBox digunakan
event OnMouseMove untuk menampilkan pada sebuah label posisi x dan y dari
kursor pada PaintBox.
INBT.PAS
01 unit INBT;
02
03 { Interpolasi Newton Umum Beda Terbagi }
04
05 interface
06
07 const
08 MAXDATA = 20;
09
10 type
11 TIndex = 0..MAXDATA;
12 TFloat = real;
13 TArray1 = array [1..MAXDATA] of TFloat;
14 TArray2 = array [1..MAXDATA, 0..MAXDATA] of
15 TFloat;
16
17 TIntNewton = class
18 private
19 DataX : TArray1;
20 DataY : TArray2;
21 nData : TIndex;
22 public
23 constructor Create;
24 destructor Destroy;
25
26 procedure Clear;
27 procedure Add (x,y:TFloat);
28
29 function GetNumData : TIndex;
30 function Xmin : TFloat;
31 function Xmax : TFloat;
32 function GetX (i:integer) : TFloat;
33 function GetY (i:integer) : TFloat;
34 function Yint (Xi:TFloat) : TFloat;
35 end;
36
37 implementation
Pengembangan
Modifikasi program di atas sebagai berikut:
- Tambahkan satu buton untuk menghapus isi StringGrid.
- Tambahkan fasilitas sehingga user bisa menambahkan titik pada StringGrid
dengan mengklik pada PaintBox dan sekaligus menampilkan plot titik.
Latihan 4
Susun project untuk menggambar fractal garis dengan contoh tampilan sebagai
berikut (Quadric Koch orde 5):
Pengembangan
Latihan 5
Susun project untuk menggambar fractal bidang kompleks dengan struktur
menu sebagai berikut:
File
Open : menampilkan isi file bmp
Save : menyimpan gambar fractal ke file bmp
Draw
Mandelbrot : menggambar fractal Mandelbrot
Julia : menggambar fractal Julia
Untuk bisa menampilkan dan menyimpan gambar digunakan komponen Image
untuk menggantikan PaintBox.
Contoh tampilan jika dipilih Draw – Mandelbrot.
Unit berikut mengatur palet warna yang dipakai dalam menggambar fractal.
Palet.PAS
01 unit Palets;
02
03 interface
04
05 uses
06 Graphics, Complex;
07
08 type
09
10 { parameters of complex fractal }
11 TParCmpFrt = record
12 xMin, xMax, yMin, yMax : real;
13 MaxIteration : byte;
14 MaxMagnitude : real;
15 C : TComplex;
16 end;
17
18 TRecPalet = record
19 Red,
20 Green,
21 Blue : byte;
22 dR, dG, dB : integer;
23 end;
24
25 TPalet = class
26 private
27 DataPalet : array [0..255] of TColor;
Pengembangan
Lakukan modifikasi sebagai berikut:
- Tambahkan menu untuk mengatur parameter penggambaran fractal dalam
record TParCmpFrt.
Latihan 6
Susun project untuk trasformasi obyek 2D dengan tampilan sebagai berikut:
Berikut ini contoh struktur obyek 2D yang disimpan dalam file dengan ekstensi
2D. Baris pertama menunjukkan banyaknya titik/vertek dan baris berikutnya
menunjukan pasangan nilai x dan y.
5
25 10
10 30
10 60
40 60
40 30
Grafika Komputer - Sept 2004 50
Pengembangan
- Tambahkan fasilitas untuk mengatur warna dan ketebalan garis untuk
mengambar obyek,
- Tambahkan fasilitas untuk menyimpan obyek dalam bentuk file bmp.
Latihan 7
Susun project untuk trasformasi obyek 3D dengan tampilan sebagai berikut:
Berikut ini contoh struktur obyek 3D yang disimpan dalam file dengan ekstensi
3D. Baris pertama menunjukkan banyaknya vertek dan face. Pada bagian
VERTEX terdapat pasangan nilai x, y dan z. Pada bagian FACE kolom pertama
menunjukkan banyaknya vertex yang menyusun face dan kolom berikutnya
menunjukan nomer vertex penyusun face tersebut.
5 5
VERTEX
0 0 0
0 50 0
50 50 0
50 0 0
25 25 40
FACE
4 1 2 3 4
3 1 2 5
3 2 3 5
3 3 4 5
3 4 1 5
Pengembangan
- Tambahkan fasilitas untuk mengatur warna dan ketebalan garis untuk
mengambar obyek,
- Tambahkan fasilitas untuk menyimpan obyek dalam bentuk file bmp.
- Tambahkan fasilitas transformasi lainnya seperti pada program untuk 2D.
Latihan 8
Susun project untuk mengolah citra digital (format bmp) dengan tampilan
utama (FormMain) sebagai berikut:
BitBtnUndo
Panel1
FormImg
Panel2
Gauge1
SpinEditUpDown
ButtonGoLD
EditBrightnessFac
tor
ButtonGoBrightnes
s