TRANSLASI,SKALA, DAN ROTASI GRAFIK KOMPUTER
Transformasi Geometri
Dalam aplikasi grafik diperlukan
perubahan bentuk, ukuran dan posisi suatu gambar yang disebut dengan
manipulasi. Perubahan gambar dengan mengubah koordinat dan ukuran suatu objek
disebut dengan Transformasi Geometri terdiri dari :
I . TRANSLASI
Translasi
objek yang berupa segitiga dengan koordinat A(3,5), B(2,2), dan C(4,2) dengan
translation vector (2,1)
gambar Translasi awal
A. (3,5)
X1= (3 + 2) = 5
Y1= (5 + 1) = 6 A1= (5,6)
B. (2,2)
X1 =(2 + 2)= 4
Y1 =(2 + 1)= 3 B1
= (4,3)
C.
(4,2)
X1= (4 + 2) = 6
Algoritma translasi dalam Borland Delphi
Procedure Tfrom1.GambarClick(Sender.Tobject);
begin
if
((IsiX1.Text=”)or(IsiX2.Text=”)or(IsiY1.Text=”)or(IsiY2.Text=”)or(IsiX1.Text=”)or
(IsiX2.Text=”)or(IsiY1.Text=”)or(IsiY2.Text=”))then
messageDlg(‘X1,Y1,X2 dan Y2 harus diisi’,mtWarning,
[mbOk],0)
else
with ttk do
begin
x1:=strtoint(isiX1.Text);
y1:=strtoint(isiY1.Text);
x3:=strtoint(isiX2.Text);
y3:=strtoint(isiY2.Text);
x2:=x3;
y2:=y1;
xn:=(x+tx);
yn:=(y+ty);
PainBox1.Canvas.Brush.Color:=claqua;
PainBox1.Canvas.Polygon([Ponit(x1,y1),Point(x2,y2),Point(x3,y3)]);
End;
End.
II. TRANSFORMASI SKALA
Transformasi skala adalah perubahan ukuran suatu objek. Koordinat baru diperoleh
dengan melakukan perkalian nilai koordinat dengan skala factor
Transformasi objek skala pada segi empat dengan titik
koordinat A (5,3), B (2,3), C (2,5), D (5,5) dengan nilai skala vector (2,3)
gambar skala awal dan prosesnya
A.
(5,3)
X1= (5.2) = 10
Y1= (3.3) = 9 A1 = (10,9)
B.
(2,3)
X1= (2.2) = 4
Y1= (3.3) = 9 B1
= (4,9)
C.
(2,5)
X1= (2.2) =4
Y1= (5.3) = 15 C1
= (4,15)
D.
(5,5)
X1= (5.2) = 10
Y1= (5.3) = 15 D1
= (10,15)
Procedure Tfrom1.GambarClick(Sender.Tobject);
begin
if
((IsiX1.Text=”)or(IsiX2.Text=”)or(IsiY1.Text=”)or(IsiY2.Text=”)or(IsiX1.Text=”)or
(IsiX2.Text=”)or(IsiY1.Text=”)or(IsiY2.Text=”))then
messageDlg(‘X1,Y1,X2 dan Y2 harus diisi’,mtWarning,
[mbOk],0)
{transformasi untuk memperbesar dan memperkecil}
Else
Begin
Kali:=strtofloat(IsiPil.text);
With ttk do
Begin
Lebar:=x*Sx;
Tinggi:=y*Sy;
X1:=x*Sx round;
X3:=x*Sx round;
Y1:=y*Sy round;
Y3:=y*Sy round;
X2:=x3;
Y2:=y1;
X4:=x1;
Y4:=y3;
End;
PaintBox1.Canvas.Brush.Color:=clblue;
With ttk do
PaintBox1.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x3,y3),Point(x4,y4)]);
End;
End.
III . Rotasi
Rotasi dua
dimensi pada objek akan memindahkan objek tersebut menurut garis melingkar.
Untuk melakukan rotasi diperlukan sudut rotasi 0 dan pivot – point ( Xp,Yp).
Segitiga dengan kordinat A (10,12), B (22,21), C (12,21)
dengan sudut rotasi 30Ocartesion (2,2)
A. (10,12)
X1 = 2 + (10 – 2) cos 30o
– (12 - 2) sin 30o
= 2 + 8. 0,9 – 10 .0,5
= 2 + 7,2 – 5
= 4,2
Y1 = 2 + (10 -2) sin 30o
– (12 - 2) cos 30o
= 2 + 8. 0,5– 10 .0,5
= 2 + 4 + 5
= 11
(4,11)
B. (22,21)
X1 =
2 + (22 – 2) cos 30o – (21 - 2) sin 30o
= 2 + 20. 0,9 – 19 .0,5
= 2 + 18 – 10
= 10
Y1 =
2 + (10 -2) sin 30o – (12 - 2) cos 30o
= 2 + 20. 0,5– 10 .0,5
= 2 + 18+ 5
= 25
(10,25)
C. (12,21)
X1 =
2 + (12 – 2) cos 30o – (21 - 2) sin 30o
= 2 + 10. 0,9 – 19 .0,5
= 2 + 9 – 10
= 1
Y1 =
2 + (10 -2) sin 30o – (12 - 2) cos 30o
= 2 + 10. 0,5– 19 .0,5
= 2 + 5 + 10
= 17
(1,17)
Procedure Tfrom1.TransformasiClick(Sender.Tobject);
Var
Temp:titik;
Tet:integer;
S,kali:real;
Lebar,tinggi:integer;
Begin
{tranformasi untuk memutar}
if
((IsiX1.Text=”)or(IsiX2.Text=”)or(IsiY1.Text=”)or(IsiY2.Text=”)or(IsiX1.Text=”)or
(IsiX2.Text=”)or(IsiY1.Text=”)or(IsiY2.Text=”))then
messageDlg(‘X1,Y1,X2 dan Y2 Pengisian Data Belum
Lengkap’,mtWarning, [mbOk],0)
else
if
radiotransformasi.itemindex=0 then
begin
with ttk do
begin
tet:=strtoint(IsiPil.text);
s:=tet*pil/30;
temp.x1:=xn+round((x1-xn)*(cos(s))-(y1-yn)*(sin(s)));
temp.x2:=xn+round((x2-xn)*(cos(s))-(y2-yn)*(sin(s)));
temp.x3:=xn+round((x3-xn)*(cos(s))-(y3-yn)*(sin(s)));
temp.y1:=yn+round((x1-xn)*(sin(s))-(y1-yn)*(cos(s)));
temp.y2:=yn+round((x2-xn)*(sin(s))-(y2-yn)*(cos(s)));
temp.y3:=yn+round((x3-xn)*(sin(s))-(y3-yn)*(cos(s)));
end;
ttk.x1:=temp.x1;
ttk.x2:=temp.x2;
ttk.x3:=temp.x3;
ttk.y1:=temp.y1;
ttk.y2:=temp.y2;
ttk.y3:=temp.y3;
PaintBox1.Canvas.Bursh.Color:=clred;
With ttk do
Paintbox1.canvas.polygon([Point(x1,y1),Point(x2,y2),Point(x3,y3)]);
End;
End.
maksih sangat terbantu..btw klo bikin grafik ny gmn yah?...soal na di soal grafika komputer saya bangun ruang ny bujur sangkar..mohon bantuan ny..
BalasHapuspakai software apa ?
BalasHapuscos 30 = 0.5???
BalasHapus