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
Y1= (2 + 1) = 3     C1 = (6,3)


       




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)
Xp = 2  Yp= 2
Gambar rotasi awal sampai proses perhitungan

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.



               

Komentar

  1. 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..

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Dunia malam