Jl.. T. Chik Ditiro No. 26 Telp. (0645) 41373 Fax. (0645) 44450 Po.Box. 141 Lhokseumawe Email :
[email protected]. Homepage : http://www.um.ac.id
Mata Kuliah Fakultas/Jurusan/Pr odi SKS/Semester Hari/Tanggal
: Pemrograman Matematika : Teknik/Elektro/Informati ka : 3/5 : / /2005
Waktu Ujian
: 16.00 – 18.00
Sifat Ujian
: Open Book
Dosen Pengasuh
: Fadlisyah, SSi
1. Perhatikan listing dari Bresenham’s Line Generating di bawah ini, telaah atau analisa dan berikan suatu kasus, iterasikan, dan telaah pula kasus-kasus abnormal yang terjadi pada penganalisaan anda. void linebresenham(int xa,int ya,int xb,int yb) { int p,dx,dy,xend,f,delta_x,delta_y,x,y; dx=abs(xa-xb); dy=abs(ya-yb); p=(2*dy)-dx; if(xa>xb) {x=xb; y=yb; xend=xa;} else { x=xa; y=ya; xend=xb; } putpixel(x,y,2); for(f=x;f<xend;f++) { x=x+1; if(p<0) p=p+(2*dy); else { ++y; p=p+(2*(dy-dx)); } putpixel(x,y,2); } }
2. Untuk penganalisaan yang sama, coba anda telaah listing dibawah ini : void circle_algorith_bresenham(int xc,int yc,int r) { int x,y,p,fc=WHITE; x=0; y=r; p=(3-(2*r)); while(x
}
Jl.. T. Chik Ditiro No. 26 Telp. (0645) 41373 Fax. (0645) 44450 Po.Box. 141 Lhokseumawe Email :
[email protected]. Homepage : http://www.um.ac.id
3. Perhatikan tabel dibawah ini untuk berbagai fungsi parameter, jenis jenis kurva apa yang dihasilkan jika setiap bagian deklarasi fungsi parameter pada program kita gantikan dengan fungsi parameter yang tersedia pada tabel (buktikan) r x y Output kurva r=a*(1+cos(thetf)) x=r*cos(thetf) y=-r*sin(thetf) 1 r=a*cos(3*thetf) x=r*cos(thetf) y=-r*sin(thetf) 2 r=a*thetf x=r*cos(thetf) y=-r*sin(thetf) 3 r=a*cos(2*thetf) x=r*cos(thetf) y=-r*sin(thetf) 4 r=b+a*cos(thetf) x=r*cos(thetf) y=r*sin(thetf) 5 Program induk void outputkurva(int xc,int yc,int a,int b) { float r,d,c,x,y,theta,thetf=0.0; d=2*M_PI; theta=d; c=1/(float) a; while (thetf
Bagian pendeklarasian fungsi parameter
}
putpixel(xc+x,yc+y,9); thetf=thetf+c;
}
4. Kurva apa yang dihasilkan oleh program dibawah ini (jawaban harus selalu menyertai pembuktian): void fadlisyah(void) {/*Fadlisyah Ilmu Komputer Padjadjaran*/ double fs,fy; rectangle(0,0,getmaxx(),getmaxy()); fline(320,240,320,0,9); fline(320,240,320,480,9); fline(320,240,0,240,9); fline(320,240,640,240,9); setcolor(2); for(fs=0;fs<=640;fs++) { fy=80*sin(fs/40); putpixel(320+fs,240-fy,6); putpixel(320-fs,240-fy,6); } }