GRAFIKA KOMPUTER - Translasi, Skala, dan Rotasi

#TRANSLASI#
Translasi adalah memindahkan suatu objek sepanjang garis lurus dari suatu lokasi koordinat tertentu ke lokasi yang lain. Translasi dilakukan dengan penam-bahan translasi pada suatu titik koordinatdengan translation vector atau shift vector, yaitu (tx, ty), dimana :

langkah - langkah dengan mencari A', B' dan C' :


void setup()
hasil tampilan dari listing diatas:

hasil tampilan dari listing diatas:
Titik A (10,10)
Titik B (30, 10)
Titik C (10, 30)
listing dalam Processing :

tx : translasi vector sumbu x
ty : translasi vector sumbu y
Koordinat baru titik yang ditranslasi dapat diperoleh dengan menggunakan rumus :
 x’ = x + tx
y’ = y + ty
Dimana (x, y) adalah koordinat asal suatu objek sedangkan (x’, y’) koordinat baru objek setelah ditranslasi.
Diketahui titik kordinat  A(10,10), B(30,10), dan C(10,30) dengan translasi vektor (10,20)

Titik A (10, 10)
X’= X + tX
    = 10 + 10 =20
Y’= Y + tY
    = 10 + 20 = 30
Hasil translasi titik A’ (20, 30)

Titik B (30, 10)
X’= X + tX
    = 30 + 10 =40
Y’= Y + tY
    = 10 + 20 = 30
Hasil translasi titik B’ (40, 30)

Titik C (10, 30)
X’= X + tX
    = 10 + 10 =20
Y’= Y + tY
    = 30 + 20 = 50
Hasil translasi titik C’ (20, 50)

Listing dalam Processing :

{
  size(200,200);
  background (255);
  noStroke();
  fill(70);
  triangle(10, 10, 30, 10, 10, 30);
  fill(50,50,115,90);
  pushMatrix();
  translate(10,20);
  triangle(20, 30, 40, 30, 20, 50);
  popMatrix();
}





 #SKALA#
Transformasi skala adalah perubahan ukuranvsuatu objek. Koordinat baru diperoleh dengan melakukan perkalian nilai koordinat dengan skala factor, yaitu (sx,sy) dimanasx  = skala factor untuk sumbu x  sy  = skala factor untuk sumbu y.  Koordinat baru titik yang diskala dapat diperoleh dengan:
x’ = x . sx
y’ = y . sy
Skala factor sx dan sy dapat diberikan sembarang nilai positif. Nilai lebih dari 1 menandakan bahwa sebuah objek diper-besar sedang nilai nilai kurang dari 1         menunjukkan bahwa objek diperkecil.
Contoh :
Untuk menggambarkan skala suatu objek yang merupakan segi empat dengan koordinat  A(10,10), B(30,10), C(30,20) dan D (10,20) diskala dengan skala factor (3,2), pertama-tama dihitung koordinat hasil skala satu demi satu. 

Diketahui : 
SVektor = (3,2)
Titik A (10,10)
Titik B (30,10)
Titik C (30,20)
Titik D (10,20)
 Jawab :
            Titik A (10,10)
                   x’= (10.3) = 30
                   y’= (10.2) = 20
                   Hasil skalaTitik A’ = (30,20)
            Titik B (30,10)
                   x’= (30.3) = 90
                   y’= (10.2) = 20
                   Hasil skalaTitik B’ = (90,20)
            Titik C (30,20)
                   x’= (30.3) = 90
                   y’= (20.2) = 40
                   Hasil skalaTitik C’ = (90,40)
            Titik D (10,20)
                   x’= (10.3) = 30
                   y’= (20.2) = 40
                   Hasil skala titik C’ = (30,40)

Listing skala yang digunakan dalam  program Processing :
void setup()
{
size(400,400);
background(255);
stroke(128);
rect(10, 30, 30, 10);
stroke(0);
pushMatrix();
scale(3.2);
rect(10, 30, 30, 10);
popMatrix();
Tampilan dari hasil listing skala diatas :



#ROTASI#
Diketahui titik kordinat A(10,10), B(30,10), dan C(10,30) dengan sudut rotasi 30 derajat dan sudut cartesian (10,10)
langkah - langkah :
Titik A (10, 10)
X’= Xp + (X - Xp) cos(300) - (Y-Yp) sin(300)
    = 10 + (10 – 10) 0,9 – (10 – 10) 0,5
    = 10 + 0 – 0 = 10
Y’= Yp + (X-Xp) sin(300) + (Y-Yp) cos(300)
    = 10 + (10 – 10) 0,5 + (10 – 10) 0,9
    = 10 + 0 – 0 = 10
Hasil rotasi titik A’ (10, 10)

X’= Xp + (X - Xp) cos(300) - (Y-Yp) sin(300)
    = 10 + (30 – 10) 0,9 – (10 – 10) 0,5
    = 10 + 18 – 0 = 28
Y’= Yp + (X-Xp) sin(300) + (Y-Yp) cos(300)
    = 10 + (30 – 10) 0,5 + (10 – 10) 0,9
    = 10 + 10 – 0 = 20
Hasil rotasi titik B’ (28, 20)

X’= Xp + (X - Xp) cos(300) - (Y-Yp) sin(300)
    = 10 + (10 – 10) 0,9 – (30 – 10) 0,5
    = 10 + 0 +10 = 20
Y’= Yp + (X-Xp) sin(300) + (Y-Yp) cos(300)
    = 10 + (10 – 10) 0,5 + (30 – 10) 0,9
    = 10 + 0 + 18 = 28
Hasil rotasi titik C’ (20, 28)
void setup()
{
  size(100,100);
  background (255);
  noStroke();
  fill(90);
  triangle(10, 10, 30, 10, 10, 30);
  fill(0,0,115,125);
  pushMatrix();
  rotate(radians(30));
  triangle(10, 10, 28, 20, 20, 28);
  popMatrix();
}
hasil tampilan listing diatas :







Penulis : Gideon_XB ~ Sebuah blog yang menyediakan berbagai macam informasi

Artikel GRAFIKA KOMPUTER - Translasi, Skala, dan Rotasi ini dipublish oleh Gideon_XB pada hari Selasa, 17 April 2012. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada 2 komentar: di postingan GRAFIKA KOMPUTER - Translasi, Skala, dan Rotasi
 

2 komentar: