Rotasi
Selain
bergerak pada grid, Anda juga dapat memutar itu dengan fungsi rotate(). Fungsi
ini memerlukan satu argumen, yang merupakan jumlah radian yang Anda ingin
putar. Dalam Processing, semua fungsi harus dilakukan dengan mengukur sudut
rotasi dalam radian (rad), bukan derajat. Ketika Anda berbicara tentang sudut
dalam derajat, Anda mengatakan bahwa lingkaran penuh memiliki 360 °. Ketika
Anda berbicara tentang sudut dalam radian, Anda mengatakan bahwa lingkaran
penuh telah 2π radian. Berikut ini adalah diagram tentang bagaimana
langkah-langkah Pengolahan sudut dalam derajat (hitam) dan radian (merah)
gambar 3.4.
Gambar 3.4. Perbandingan sudut Radian dan Derajad |
Karena
kebanyakan orang berpikir dalam derajat, Processing memiliki built-in fungsi
radian()yang mengambil sejumlah derajat sebagai argumen dan mengkonversi untuk
Anda. Ini juga memiliki fungsi derajat() yang mengubah radian ke derajat.
Sebagai percobaan pertama kita coba lakukan rotasi 45 derajad clockwise.
Program 3.3
void
setup()
{
size(200, 200);
background(255);
smooth();
fill(192);
noStroke();
rect(40, 40, 40, 40);
pushMatrix();
rotate(radians(45));
fill(0);
rect(40, 40, 40, 40);
popMatrix();
}
Dari
program 3.3, apa yang terjadi? Kenapa objek persegi yang diputar menjadi terpotong?.
Jawabannya adalah, sebenarnya objek persegi diputar dengan titik pusat rotasi
adalah (0,0) atau dengan kata lain dapat diartikan bahwa objek persegi tidak
di-rotasi, namun yang dirotasi adalah system koordinatnya, seperti
diperlihatkan pada gambar 3.5.
Gambar 3.5. Proses rotasi grid |
Cara
yang lain adalah dengan menggunakan lokasi lain untuk dijadikan sebagai pusat
rotasi. Sebagai contoh, objek persegi yang diatas akan diputar 45 derajad
dengan menggunakan titik pusat rotasi adalah pojok kiri atas. Cara yang
digunakan adalah :
1. Translasi
lokasi koordinat (0,0) kearah pusat rotasi, dalam hal ini adalah (40,40)
2. Gunakan
fungsi rotate() dengan parameter 45 derajad untuk memutar grid
3. Gambarkan
kembali objek dengan posisi awal adalah lokasi original grid
4. Kembalikan
posisi grid ke awal dengan menggunakan fungsi popMatric() berikut adalah kode
yang dimaksudkan :
Program 3.4
void
setup()
{
size(200, 200);
background(255);
smooth();
fill(192);
noStroke();
rect(40, 40, 40, 40);
pushMatrix();
translate(40, 40);
rotate(radians(45));
fill(0);
rect(0, 0, 40, 40);
popMatrix();
}
Scalling
Transformasi yang terakhir adalah scalling, yang mana
prosesnya adalah mengubah ukuran objek baik membesara atau pun mengecil. Lihat
contoh program berikut yang mengubah ukuran objek menjadi dua kali lebih besar
dari originalnya.
Program 3.5
void setup()
{
size(200,200);
background(255);
stroke(128);
rect(20, 20, 40,
40);
stroke(0);
pushMatrix();
scale(2.0);
rect(20, 20, 40,
40);
popMatrix();
}
Hasil program 3.5 |
Dari program diatas, maka seolah olah proses scalling memiliki titik prespektif dari pusat (0,0).
EmoticonEmoticon