Grafika Interraktef & Anfmasf
Halman 1 darf 14 @2010, Hrndra Gunawan, S.Sf
MODUL I
MEMBUAT SATU BENTUK PERSEGI INTERAKTIF
DAN ANIMASI MEMBESAR DAN KECIL DENGAN
KENDALI BUTTON
1. Mampu membuat bentuk persegi dengan pixel terhadap sistem koordinat
2. Membuat Animasi Bentuk dengan timer
3. Membuat animasi perubahan bentuk membesar dan mengecil
Tujuan Praktikum :
unfte Unfte1;
fnterr acr
usrs
Wfndows, Mrssagrs, SysUtefls,
Varfantes, Classrs, Graphfcs,
Conterols, Forms,
Dfalogs, StedCterls, ExteCterls, Buteteons;
teypr
TForm1 = class(TForm)
Tfmrr1: TTfmrr;
Buteteon1: TButeteon;
Buteteon2: TButeteon;
procrdurr Buteteon1Clfck(Srndrr:
TObjrcte);
procrdurr Buteteon2Clfck(Srndrr:
TObjrcte);
procrdurr Tfmrr1Tfmrr(Srndrr:
TObjrcte);
procrdurr FormCrrater(Srndrr:
TObjrcte);
procrdurr
FormMousrDown(Srndrr: TObjrcte;
Buteteon: TMousrButeteon;
Shf te: TShf teSteater; X, Y: Intergrr);
procrdurr
FormMousrMovr(Srndrr: TObjrcte;
Shf te: TShf teSteater; X, Y: Intergrr);
procrdurr FormMousrUp(Srndrr:
TObjrcte; Buteteon: TMousrButeteon;
Shf te: TShf teSteater; X, Y: Intergrr);
x0,y0: sfnglr;
{ Basfs koordfnate
absolute }
s
: fntergrr;
{ acteor
Crrmfnan }
dfrFlg
: boolran; { flag arah }
var x1,y1,x2,y2 :Intergrr;
mausTaster :Boolran;
fmplrmrnteatefon
{$R *.d m}
procrdurr dwl (dx1,dy1 : sfnglr);
{ gambar garfs rrlatef }
var x1,y1 : sfnglr;
brgfn
procrdurr dwp (dx1,dy1:sfnglr);
{ gambar teftefk rrlatef }
var x1,y1 : sfnglr;
brgfn
srarah jarum jam }
Elsr
al := al - Pf / 10; { putearan
mrlawan jarum jam }
Grafika Interraktef & Anfmasf
Halman 3 darf 14 @2010, Hrndra Gunawan, S.Sf
y0 := clfrnteHrfghte / 2;
al := 0;
s := 1;
m := 20;
canvas.brush.steylr:= bsclrar;
brgfn
TObjrcte; Buteteon: TMousrButeteon;
Shf te: TShf teSteater; X, Y: Intergrr);
var x1,y1,x2,y2 :Intergrr;
mausTaster :Boolran;
TObjrcte; Shf te: TShf teSteater; X,
Y: Intergrr);
TObjrcte; Buteteon: TMousrButeteon;
Shf te: TShf teSteater; X, Y: Intergrr);
brgfn
mausTaster := Falsr;
rnd;
1. Rubah bentuk persegi panjang tsb ke bentuk bujur sangkar.
2. Rubah bentuk persegi panjang tsb ke bentuk segi tiga sama kaki
MODUL II
MEMBUAT DUA BENTUK PERSEGI INTERAKTIF
DAN ANIMASI MEMBESAR DAN KECIL SECARA
BERSAMAAN DENGAN KENDALI BUTTON
1. Mampu membuat dua bentuk persegi dengan pixel terhadap sistem koordinat
2. Membuat Animasi dua Bentuk secara bersamaan dengan satu timer
3. Membuat animasi 2 objek perubahan bentuk membesar dan mengecil bersamaan
Program sama dengan modul I, Perbedaan nya di prosedur drawHouse sbb:
procedure drawHouse;
begin
dwp(6, 0);
{ Buat persegi panjang}
dwl(6, 8); dwl(9, 8); dwl(9, 0); dwl(6, 0);
dwp(0, 10);
{ Dengan posisi persegi panjang }
dwl(10, 10); dwl(10, 0); dwl(0, 0); dwl(0, 10); { di dalam bujur sangkar }
End;
Tugas Laporan Praktikum
Tujuan Praktikum :
Grafika Interraktef & Anfmasf
Halman 5 darf 14 @2010, Hrndra Gunawan, S.Sf
1. Program di atas merupakan program persegi panjang di dalam bujur sangkar dengan letak
merapat ke sisi. Rubah program tersebut dengan tidak merapat, dengan posisi persegi
panjang yg didalamnya di tengah
2. Rubah program tsb ke bentuk segi tiga di dalam segi tiga
MODUL III
MEMBUAT TIGA BENTUK PERSEGI INTERAKTIF
DAN ANIMASI MEMBESAR DAN KECIL SECARA
BERSAMAAN DENGAN KENDALI BUTTON
1. Mampu membuat tiga bentuk persegi dengan pixel terhadap sistem koordinat
2. Membuat Animasi tiga Bentuk secara bersamaan dengan satu timer
3. Membuat animasi 3 objek perubahan bentuk membesar dan mengecil bersamaan
Program sama dengan modul I, Perbedaan nya di prosedur drawHouse sbb:
procedure drawHouse;
begin
dwp(6, 0);
{ Buat persegi panjang, pintu }
dwl(6, 8); dwl(9, 8); dwl(9, 0); dwl(6, 0);
dwp(0, 10);
{ Bujur sangkar, sisi rumah }
dwl(10, 10); dwl(10, 0); dwl(0, 0); dwl(0, 10);
dwp(1, 8);
{ Persegi panjang, jendela }
dwl(4, 8); dwl(4, 4); dwl(1, 4); dwl(1, 8);
End;
Tugas Laporan Praktikum
Tujuan Praktikum :
1. Program di atas merupakan program persegi panjang jendela di dalam bujur sangkar dengan
letak tdk merapat. Rubah program tersebut dengan merapat
2. Rubah program tsb ke bentuk dua segi tiga di dalam satu segi tiga
MODUL IV
MEMBUAT SATU OBJEK DILUAR BENTUK YANG
SUDAH ADA INTERAKTIF DAN ANIMASI
MEMBESAR DAN KECIL SECARA BERSAMAAN
DENGAN KENDALI BUTTON
Mampu membuat tambahan satu objek dengan posisi diluar bentuk yang sudah ada
Program sama dengan modul I, Perbedaan nya di prosedur drawHouse sbb:
procedure drawHouse;
begin
dwp(6, 0);
{ Buat persegi panjang, pintu }
dwl(6, 8); dwl(9, 8); dwl(9, 0); dwl(6, 0);
dwp(0, 10);
{ Bujur sangkar, sisi rumah }
dwl(10, 10); dwl(10, 0); dwl(0, 0); dwl(0, 10);
dwp(1, 8);
{ Persegi panjang, jendela }
dwl(4, 8); dwl(4, 4); dwl(1, 4); dwl(1, 8);
dwp(-1, 9);
{ Atap }
dwl(5, 15); dwl(11, 9);
End;
Tugas Laporan Praktikum
Tujuan Praktikum :
Grafika Interraktef & Anfmasf
Halman 7 darf 14 @2010, Hrndra Gunawan, S.Sf
Rubah atap segitiga simetris tsb menjadi tidak simetris.
MODUL V
MEMBUAT LINGKARAN DIDALAM OBJEK DILUAR
BENTUK YANG SUDAH ADA INTERAKTIF DAN
ANIMASI MEMBESAR & KECIL SECARA BERSAMAAN
DENGAN KENDALI BUTTON
Membuat lingkaran didalam objek tambahan pd bentuk yang sudah ada
Program sama dengan modul I, Perbedaan nya ada tambahan di prosedur dwc dan drawHouse sbb:
procedure dwc (dx1,dy1,R : single); { gambar lingkaran } var x1,y1 : single;
begin
dx1 := mf * dx1; dy1 := mf * dy1; R := mf * R;
x1 := x0 + dx1 * co - sf * dy1 * si; y1 := y0 - sf * dy1 * co - dx1 * si;
form1.canvas.ellipse(round(x1-r),round(y1-r),round(x1+r),round(y1+r)); End;
procedure drawHouse; begin
dwp(6, 0); { Buat persegi panjang, pintu } dwl(6, 8); dwl(9, 8); dwl(9, 0); dwl(6, 0);
dwp(0, 10); { Bujur sangkar, sisi rumah } dwl(10, 10); dwl(10, 0); dwl(0, 0); dwl(0, 10);
Tugas Laporan Praktikum
Tujuan Praktikum :
dwp(1, 8); { Persegi panjang, jendela } dwl(4, 8); dwl(4, 4); dwl(1, 4); dwl(1, 8);
dwp(-1, 9); { Atap } dwl(5, 15); dwl(11, 9);
dwc(5, 12, 1); { fentilasi } End;
Rubah lingkaran tsb ke bentuk gabungan elipps vertikal dan horisontal
MODUL VI
MEMBUAT OBJEK LAIN DILUAR BENTUK YANG SUDAH
ADA INTERAKTIF DAN ANIMASI
Membuat tambahan pd bentuk yang sudah ada
Program sama dengan modul V, Perbedaannya ada tambahan drawHouse sbb:
dwp(7, 13); { pondasi Antena } dwl(7, 16); dwl(9, 16); dwl(9, 11);
End;
Rubah pondasi antena ke bentuk bujur sangkar dan segi tiga
Tugas Laporan Praktikum
Tujuan Praktikum :
Praktikum
Grafika Interraktef & Anfmasf
Halman 9 darf 14 @2010, Hrndra Gunawan, S.Sf
MODUL VII
MEMBUAT ANIMASI INTERAKTIF BERBALIK ARAH
DAN ROTASI 180
oMembuat animasi interaktifberbalik arah dan rotasi 180
oProgram sama dengan modul VI, Perbedaannya ada tambahan 2 prosedur sbb:
procedure TForm1.Button3Click(Sender: TObject); { Berbalik arah }
begin
dirFlg := Not dirFlg;
end;
procedure TForm1.Button4Click(Sender: TObject); { Rotasi 180
o}
begin
sf := -sf;
end;
1. Modifikasi gambar, Lakukan tambahan objek lain pada rumah tsb
2. Buat animasi dgn timer berbeda pada gambar jendela rumah
Tujuan Praktikum :
Praktikum
MODUL VIII
MENGGERAKAN OBJEK ANIMASI
Memindahkan posisi pada objek animasi aktif
Program Utama
program Project1;
uses Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1); Application.Run;
end.
Unit Program
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;
Tujuan Praktikum :
Grafika Interraktef & Anfmasf
Halman 11 darf 14 @2010, Hrndra Gunawan, S.Sf
type
TForm1 = class(TForm) Timer1: TTimer;
procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private x0,y0: single; { Basis koordinat absolut }
sf : integer;{ factor Cerminan } dirFlg : boolean; { flag arah } var x1,y1,x2,y2 :Integer;
mausTaste :Boolean;
implementation {$R *.dfm}
procedure dwc (dx1,dy1,R : single); { gambar lingkaran relatif } var x1,y1 : single;
begin
procedure dwl (dx1,dy1 : single); { gambar garis relatif } var x1,y1 : single;
dx1 := mf * dx1;
procedure dwp (dx1,dy1:single); { gambar titik relatif } var x1,y1 : single;
begin
procedure drawHouse; { gambar rumah } begin
procedure TForm1.Button1Click(Sender: TObject); begin
mf := mf + 1; end;
procedure TForm1.Button2Click(Sender: TObject); begin
mf := mf - 1; end;
procedure TForm1.Button3Click(Sender: TObject); begin
dirFlg := Not dirFlg; end;
procedure TForm1.Button4Click(Sender: TObject); begin
sf := -sf; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin
form1.refresh; If dirFlg Then
alf := alf + Pi / 10 { putaran sesuai dengan arah jarum jam }
Grafika Interraktef & Anfmasf
Halman 13 darf 14 @2010, Hrndra Gunawan, S.Sf
canvas.brush.style:= bsclear; begin
procedure TForm1.Button9Click(Sender: TObject); begin
close; end;
procedure TForm1.Button5Click(Sender: TObject); begin
y0:=y0-5; end;
procedure TForm1.Button6Click(Sender: TObject); begin
x0:=x0-5; end;
procedure TForm1.Button7Click(Sender: TObject); begin
x0:=x0+5; end;
procedure TForm1.Button8Click(Sender: TObject); begin
y0:=y0+5; end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var x1,y1,x2,y2 :Integer; mausTaste :Boolean;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
mausTaste := False; end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin
x0:=x0+5; end;
begin close; end; end.