Kamis, 08 Juni 2017

Fungsi Rotasi Processing

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

Artikel Terkait


EmoticonEmoticon