• Tidak ada hasil yang ditemukan

MODUL PRAKTIKUM. Ve r 1.0. Ole h : M. G unta ra STMIK AKAKOM. Modul Praktikum Grafika Komputer STMIK AKAKOM Oleh M. Guntara 0

N/A
N/A
Protected

Academic year: 2022

Membagikan "MODUL PRAKTIKUM. Ve r 1.0. Ole h : M. G unta ra STMIK AKAKOM. Modul Praktikum Grafika Komputer STMIK AKAKOM Oleh M. Guntara 0"

Copied!
10
0
0

Teks penuh

(1)

MODUL PRAKTIKUM

Ve r 1.0

O le h : M. G unta ra

ST M I K AK AK OM

2 0 0 5

(2)

BAB 1. Penghasil Garis (Line generator) menggunakan Algoritma DDA

1.1. Maksud dan Tujuan

1.1.1 Maksud

Pe ng ha sil g a ris (line g e ne ra to r) a d a la h p ro se d ur ya ng d ig una ka n untuk m e ng ha silka n/ m e m p ro d uksi b e ntuk g a ris ya ng te rsusun d a ri titik-titik e le m e n g a m b a r (p ixe l) d e ng a n a lg o ritm a DDA (dig ita l diffe re nc ia l a na lyze r)

1.1.2 Tujuan

1. Ag a r m a ha sisw a d a p a t m e ng e ta hui b a g a im a na a lg o ritm a untuk m e m b ua t sa tu g a ris

2. Ag a r m a ha sisw a d a p a t m e m b ua t g a ris d a ri p ixe l

3. Ag a r m a ha sisw a d a p a t m e m b a nd ing ka n g a ris ya ng d ib ut d e ng a n a lg o ritm a DDA d e ng a n g a ris ya ng d iha silka n d a ri re se rve d wo rd C ++

Build e r

1.2. Teori Singkat

Pa d a p rinsip nya se b ua h g a ris ha nya la h kum p ula n d a ri titik-titik ya ng d ig a m b a r se c a ra ko ntinu d a n linie r. Sa la h sa tu a lg o ritm a ya ng d a p a t d ig unka n untuk m e m b ua t g a ris a d a la h a lg o ritm a DDA (dig ita l diffe re ntia l a na lyze r) de ng a n p se ud o a lg o ritm se b a g a i b e rikut.

Pe rsa m a a n g a ris luurs d e ng a n ko o rd ina t c a rte sius a d a la h

y=m .x + b ... 1- 1

d e ng a n m a d a la h ke m iring a n g a ris, b tiik p a d a sum b u y. Jika d ika ta hui 2 tiik a khir d a ri se g m e n g a rio s ya ng d ip o sisika n p a d a titik x1,y1 d a n x2,y2 m a ka untuk m e ne ntuka n ke m iring a n g a ris a d a la h :

m = y2- y1 ... 1- 2

x2-x1

m = y1- m .x1 ... 1- 3

De ng a n d e m ikia n a lg o ritm a DDA a d a la h se b a g a i b e rikut.

1. Tentukan 2 titik untuk membentuk garis

2. beri 2 titik tersebut dengan titik awal (x0,y0) dan titik akhir (x1,y1) 3. Hitung dx=x1-x0 dan dy=y1-y0

4. tentukan jarak maks jumlah penambahan nilai x dan nilai y dengan cara

jika ⏐dx⏐ >⏐dy⏐ maka step=⏐dx⏐, jika tidak maka step=⏐dy⏐

5. Hitunjg penambahan koordinat piksel dengan cara x_tambah=dx/step dan y_tambah=dy/step

(3)

6. tentukan koordinat berikutnya (xk+1,Yk+1) dengan koordinat (x+x_tambah,y+y_tambah)

7. Posisi pixel pada layar ditenbtukan dengan pembulatan nila tersebut 8. Ulangi langkah 4 sampai posisi pixel mencapai x=x1 dan y=y1

1.3. Praktik

La kuka n la ng ka h se b a g a i b e rikut

L

Perhatian !

1. Modul ini diasumsikan bahwa praktikan sudah memahami dasar-dasar C++ Builder)

2. Pada penulisan kode prrogram C++ ,huruf besar dan huruf kecil berbeda, misal Canvas ≠ canvas 1. Akttifka n C ++ Build e r (C B) d a n b uka fo rm b a ru

2. Bua t fo rm d e ng a n to m b o l se b a g a i b e rikut.

3. Ke tik ko d e p ro g ra m p a d a Butto n1- C lic kEve nt se b a g a i b e rikut

void __f ast call TForm1: : But t on1Click(TObj ect *Sender) {

int x0, y0, x1, y1, dx, dy, step, absdx, absdy, k;

float x, y, x_tambah, y_tambah;

x0=10;y0=10; Åkoordinat t it ik awal garis x1=100;y1=200; Åkoordinat t it ik akhir garis dx=x1-x0;

dy=y1-y0;

x=float(x0);y=float(y0);

if (dx>dy) step=dx;

else

step=dy;

x_tambah=(float) dx/ step;

y_tambah=(float) dy/ step ; for (k=0;k<step;k++) {

x+=x_tambah;

y+=y_tambah;

for(int t=0;t<100000;t++){} Åbaris ini unt uk memperlambat proses penggambaran t it ik

Canvas->Pixels[ int(x)] [ int(y)] =clRed; Åmenggambar t it ik

Garis dari DDA Garis dari C++

Properties Name: button1 Caption:Garis dari DDA

Properties Name: button2 Caption:Garis dari C++

(4)

}

4. Bua t ko d e p ro g ra m p a d a b utto n2- c lic ke ve nt se b a g a i b e rikut. void __f ast call TForm1: : But t on2Click(TObj ect *Sender)

{

Canvas->MoveTo(200, 10); Åt it ik awal garis Canvas->LineTo(300, 200); Åt it ik akhir garis }

5. Ja la nka n a p lika si ini.

6. Klik to m b o l kiri, a m ja ti a p a ya ng te rja d i d a n ke m ud ia n klik to m b o l ka na n d a na m a ti a p a ya ng te rja d i.

1.4. Latihan L

Perhatian !

Latihan pada modul praktikum ini dikerjakan saat praktikum

1. G a ntila h titik a w a l d a n titik a khir d e ng a n ko o rd ina t ya ng la in (se m b a ra ng ). Am a tila h ya ng te rja d i

2. Pa d a fo rm d ia ta s b ua tla h g a ris d e ng a n p e rinta h C B d e ng a n ko o rd ina t a w a l d a n a khir sa m a d e ng a n no 1 d ia ta s

1.5. Tugas L

Perhatian !

Tugas pada modul praktikum ini dikerjakan dirumah dan dicantumkan pada laporan resmi setiap modul

1. Am a tila h a d a ka h p e rb e d a a n kua lita s g a ris ya ng d ib ua t d e ng a n a lg o ritm a DDA d a n g a ris ya ng d ip ro d uksi o le h C B !

2. Me ng a p a ha l te rse b ut b isa te rja d i ?

3. Me ng a p a p e rinta h m e ng g una ka n re se rve d wo rd m ilik C ++ Build e r (C B) le b ih ring ka s ?

(5)

BAB 2. Menggambar obyek dari bentuk geometri

2.1. Maksud dan Tujuan

2.1.1 Maksud

Be ntuk g e o m e tri a d a la h b e ntuk g a m b a r b e rup a g a ris, p o lig o n, e lip s, ling ka ra n, a ta u kurva

2.1.2 Tujuan

Ag a r m a ha sisw a d a p a t m e m b ua t p ro g ra m untuk m e ng g a m b a r b e ntuk- b e ntuk g e o m e tri

2.2. Teori Singkat

Be ntuk g e o m e tri d a n ko d e p ro g ra m nya a d a la h.

G a ris

MoveTo(x0, y0) LineTo(x1, y1) LineTo(xn, yn)

De ng a n x0,y0: ko o rd ina t titik a w a l g a ris X1,y1:ko o rd ina t a khir g a ris ke -1

Xn,yn:ko o rd ina t a khir g a ris ke -2 (n:2,3,4, d st.) Ko ta k

Rectangle(x0, y0, x1, y1)

De ng a n x0,y0: ko o rd ina t sud ut a w a l ko ta k

X1,y1:ko o rd ina t sud ut a khir ko ta k (sud ut d ia g o na l)

Ling ka ra n/ Ellip s

Ellipse(x0, y0, x1, y1)

De ng a n x0,y0: ko o rd ina t sud ut a w a l e llip se X1,y1:ko o rd ina t sud ut a khir e llip se

Bila ja ra k a nta ra x1-x0 sa m a d e ng a n y1-y0 m a ka g a m b a r te rse b ut b e rb e ntuk ling ka ra n.

Kurva

Arc(X0, Y0, X1, Y1, …. , xn, yn)

De ng a n x0,y0:tiik kurva a w a l X1,y1:titik kurva ke -1

Xn,yn:titik kurva ke -n (n:2,3,4,d st.) Po lyg o n

POINT var(j umlah max sudut polygon-1) Var[ 0] =Point(x0, y0);

Var[ 1] =Point(x1, y1);

…..

Var[ n] =Point(xn, yn);

Polygon((TPoint*)var, j umlah max sudut-1);

De ng a n x0,y0:tiik a w a l p o lig o n

(6)

X1,y1:titik sud ut p o lyg o n ke -1

Xn,yn:titik sud ut p o lyg o n ke -n (n:2,3,4,d st.)

2.3. Praktik

1. Bua tla h fo rm se p e rti d ib a w a h ini

No : Ko m po ne n Pro pe rtie s

1 :TLa b e l C a p tio n : Me mb ua t b e ntuk g e o me tri 2:Ra d io G ro up s C a p tio n :Be ntuk

Na m e : Be ntuk Ite m s :

Garis Kotak Lingkaran Ellips Kurve Polygon

3:Pa intBo x Na m e :Pa intBo x1(de fa ult)

2. Ke tik ko d e p a d a Be ntuk- C lic kEve nt se b a g a i b e rikut.

void __f ast call TForm1: : Bent ukClick(TObj ect *Sender) {

int INDEKS=Bent uk->ItemIndex; Æmengambil nomor radio but t on Edit 1->Text=IntToStr(INDEKS); Æmengambil nomor radio but t on Paint Box1->Canvas->Rectangle(0, 0, ClientWidth-2, ClientHeight-2);

switch (INDEKS) {

case 0: Å pilihan radio paling atas (nilai 0-nol) Paint Box1->Canvas->MoveTo(10, 10); Å gambar garis Paint Box1->Canvas->LineTo(100, 200);

break;

case 1: Å pilihan radio baris ke-2(nilai 1)

PaintBox1->Canvas->Rectangle(10, 10, 100, 200); Å gambar kot ak break;

case 2:

PaintBox1->Canvas->Ellipse(10, 10, 200, 200); Å gambar lingkaran break;

Me m b ua t b e ntuk g e o m e tri

Garis Kotak Lingkaran Kurve Polygon Be ntuk

(7)

case 3:

PaintBox1->Canvas->Arc(10, 10, 50, 200, 300, 200, 30, 20);Å gambar busur break;

case 4:

POINT titik[ 5] ; Å deklarasi array unt uk t it ik-t it ik 5 sudut titik[ 0] =Point(10, 10);

titik[ 1] =Point(70, 10);

titik[ 2] =Point(180, 100);

titik[ 3] =Point(250, 200);

titik[ 4] =Point(0, 200);

PaintBox1->Canvas->Polygon((TPoint*)titik, 4); Å gambar polygon 5 t it ik sudut

break;

} }

3. Ja la nka n a p lika si ini

4. Klik p a d a m a sing -m a sing to m b o l ra d io Butto n, a m a ti ya ng te rja d i.

2.4. Latihan

1. Ta m b a h 1 fa silita s la g i untuk m e ng g a m b a r e llipse, se hing g a p a d a p iliha n Be ntuk d ita m b a h p iliha n untuk “Ellipse ”.

2. Bua t ko d e untuk m e m g g a m b a r e lip s te rse b ut 3. Ja la nka n a p lika si te rse b ut.

2.5. Tugas

1. Ap a p e rb e d a a n m e ng g a m b a r e llip se d e ng a n ling ka ra n

(8)

BAB 3. Menggambar suatu obyek dari geometri

3.1. Maksud dan Tujuan

3.1.1 Maksud

Ya ng d im a ksud d e ng a n m e ng g a m b a r sua tu o b ye k a d a la h m e m p ro d uksi/ m e m b ua t g a m b a r d e ng a n o b ye k te rte ntu (re a l a ta u a b stra k) ya ng d ib e ntuk d a ri g e o m e tri b a ik b e rup a g a ris, ling ka ra n a ta up iun kurva

3.1.2 Tujuan

1. Ag a r m a ha sisw a d a p a t m e ng a ta hui c a ra m e m b e ntuk sua tu g a m b a r 2. Ag a r m a ha sisw a d a p a t m e m b ua t sua tu g a m b a r d e ng a n b e ntuk

g e o m e tri

3.2. Teori Singkat

3.2.1 Membetuk suatu obyek dari geometri

Sua tu g a m b a r o b ye k b a ik riil m a up un a b stra k d p a a t d isusun a ta s d a sa r b e ntuk g e o m e tri, se p e rti c o nto h g a m b a r d ib a w a h ini.

G a m b a r d ia ta s m e rup a ka n p e rp a d ua n d a ri ko ta k, g a ris d a n ling ka ra n.

3.2.2 Membuat arsiran

Be ntuk-b e tnuk ya ng d a p a t d ia rsir a d a la h ko ta k, ling ka ra n/ e llip se , d a n p o lig o n. Pe rinta h a rsira n ini d ite m p a tka n se b e lum sua tu g e o m e tri d ig a m b a r. Pe rinta h untuk m e ng a rsir a d a la h

Brush=j enis arsiran

Color=RGB(merah,kuning,biru)

De ng a n je nis a rsira n = b sSo lid : a rsira n m e ra ta

b sVe rtic a l : a rsira n g a ris ve rtika l b sHo rizo nta l : a rsira n g a ris ve rtika l b sDia g o na l : a rsira n g a ris d ia g o na l b sC ro ss : ko ta k=ko ta k

me ra h : 0 – 255 kuning :0-255

(9)

b iru:0-255

3.3. Praktik

1. Bua tla h fo rm b a ru d e ng a n b e ntuk se b a g a i b e rikut.

No : Ko m po ne n Pro pe rtie s

1 :Tla b e l C a p tio n : Me mb ua t g a mb a r o b ye k 2:Ra d io G ro up s C a p tio n :G a mb a r

Na m e : G a m b a r Ite m s :

Rum a h

3:Pa intBo x Na m e :Pa intBo x1(de fa ult)

2. ke tik ko d e p a d a G a m b a r- C lic kEve nt se b a g a i b e rikut.

void __fastcall TForm1::GambarClick(TObj ect *Sender) {

int INDEKS=Gambar->ItemIndex;

PaintBox1->Canvas->Rectangle(0, 0, ClientWidth-2, ClientHeight-2);

switch (INDEKS) {

case 0:

Paint Box1->Canvas->Rectangle(50, 150, 200, 300); Å gambar bangunan kot ak Paint Box1->Canvas->Rectangle(70, 170, 120, 290); Å gambar kot ak pint u Paint Box1->Canvas->MoveTo(90, 170);

Paint Box1->Canvas->LineTo(90, 290); Ågaris t engah pint u Paint Box1->Canvas->MoveTo(50, 150); Ågambar segit iga at ap Paint Box1->Canvas->LineTo(200, 150);

Paint Box1->Canvas->LineTo(125, 10);

Paint Box1->Canvas->LineTo(50, 150);

Paint Box1->Canvas->Ellipse(100, 80, 150, 125); Ågambar lingkaran at ap break;

} }

3. Ja la nka n a p lika si te rse b ut d a n klik p a d a ra dio b utto n.

4. Wa rna lila h b a g ia n te m b o k d e ng a n w a rna hija u d a n b a g ia n a ta p kuning , se d a ng ka n d id a la m ling ka ra n w a rna hita m , se hing g a ko d e

Me m b ua t G a m b a r O b ye k

Rumah G a m b a r

(10)

void __fastcall TForm1::GambarClick(TObj ect *Sender) {

int INDEKS=Gambar->ItemIndex;

PaintBox1->Canvas->Rectangle(0, 0, ClientWidth-2, ClientHeight-2);

switch (INDEKS) {

case 0:

PaintBox1->Canvas->Brush->Style=bsSolid; Å arsiran solid (merat a)

PaintBox1->Canvas->Brush->Color=RGB(0, 255, 0); Åwarna arsiran t embok hij au

Paint Box1->Canvas->Rectangle(50, 150, 200, 300); Å gambar bangunan kot ak PaintBox1->Canvas->Brush->Color=RGB(255, 100, 100); Åwarn arsiran pint umerah muda

Paint Box1->Canvas->Rectangle(70, 170, 120, 290); Å gambar kot ak pint u Paint Box1->Canvas->MoveTo(90, 170);

Paint Box1->Canvas->LineTo(90, 290); Ågaris t engah pint u Paint Box1->Canvas->MoveTo(50, 150); Ågambar segit iga at ap Paint Box1->Canvas->LineTo(200, 150);

Paint Box1->Canvas->LineTo(125, 10);

Paint Box1->Canvas->LineTo(50, 150);

PaintBox1->Canvas->Brush->Color=RGB(0, 0, 0); Åwarna arsiran lingkaran hit am

Paint Box1->Canvas->Ellipse(100, 80, 150, 125); Ågambar lingkaran at ap break;

} }

5. Ja lla nka n a p lika si ini d a n liha t p e rb e d a a nnya .

Catatan

Bagian atap segitiga tidak dapat diarsir karena disusun dari garis. Agar dpat diarsir maka segitiga menggunakan polygon.

3.4. Latihan

1. G a ntila h se g itig a b a g ia n a ta p d e ng a n m e ng g una ka n p o lyg o n d a n b e rika n a rsira n p a d a p o lyg o n te rse b ut

2. g a ntila h a rsira n p a d a se g itig a tid a k m e ng g una ka n c sSo lid te ta p i c s Ve rtic a l

3.5. Tugas

Bua tla h g a m b a r o b ye k riil la in ya ng te rd iri a ta s : ling ka ra n/ e llip se , ko ta k d a n g a ris d e ng a n a e rira n d a n w a rna a rsira n b e b a s se sua i ke ing ina n sa ud a ra .

Referensi

Dokumen terkait

Dalam ilmu usul fikih, tarjîḥ tidak semata digunakan untuk melakukan pelacakan atas dalil-dalil yang secara lahir nampak bertentangan sehingga harus dicari atau ditentukan

[r]

Kompetensi adalah kemampuan pengetahuan yang dimiliki pemakai bahasa mengenai bahasanya, sedangkan performansi atau pembuatan berbahasa merupakan pelaksanaan berbahasa

Desa atau yang disebut dengan nama lain, selanjutnya disebut Desa adalah kesatuan masyarakat hukum yang memiliki batas-batas wilayah yang berwenang untuk mengatur

Selain itu, penulis juga berkeinginan menjadikan VW Kombi sebagai tempat tinggal sementara yag dikarenakan hobi travelling yang dimiliki dan lebih menyukai untuk tinggal

Dengan adanya sistem ini, memungkinkan sebuah PC yang terhubung dengan satu jaringan lokal untuk dapat melakukan proses pengambilan data dari PC yang berbeda di

P1 Jemaat Tuhan, mari berdiri untuk menyambut Firman Tuhan yang akan memasuki ruang ibadah..

Penelitian ini dilakukan dengan membandingkan penerapan akuntansi yang digunakan oleh PT Asuransi Takaful Umum dari proses pengakuan, pengukuran, penyajian, dan