Menggambar Lingkaran dengan Persamaan Matematis

Prev : Simulasi Mekanika – Pendahuluan

Hal pertama yang akan kita lakukan dalam membuat simulasi mekanika adalah menggambar objek yang akan kita buat. Kita bisa saja mengambil file .png atau .jpeg ke dalam program yang akan kita buat, namun kita dapat menggambarnya langsung ke dalam program tanpa harus memanggil file apapun dari luar. Caranya adalah dengan menggunakan persamaan matematika, atau dengan kata lain, kita dapat membuat gambar menggunakan grafik.

Hampir semua bahasa pemrograman menggunakan koordinat Kartesius untuk memplotting grafik, misal dalam Matlab atau Python, kita menggunakan sintaks plot(x, y) untuk melakukan hal tersebut. Dengan kata lain, semua hasil perhitungan harus diubah ke dalam koordinat Kartesius terlebih dahulu sebelum dilakukan plotting oleh perintah tersebut, apabila perhitungan yang kita lakukan menggunakan koordinat polar. Kita akan membahas tentang ini selanjutnya.

Kembali ke gambar, hal pertama yang akan kita lakukan adalah membuat lingkaran. Untuk melakukannya, tentunya kita harus mengetahui persamaan matematisnya untuk lingkaran terlebih dahulu. Dalam koordinat Kartesius, kita umumnya menuliskannya dengan persamaan berikut.

Kita bisa saja menerapkan persamaan di atas untuk membuat lingkaran. Namun perlu diperhatikan bahwa nilai akar memiliki dua nilai, yaitu nilai positif dan negatif, dan komputer umumnya hanya memberikan hasil positif untuk operasi di atas. Dengan kata lain, kita perlu melakukan plotting dua kali untuk memperoleh hasil lingakaran yang utuh, atau perintah yang lebih panjang. Namun, ada satu cara yang jauh lebih sederhana dari persamaan di atas, yaitu dengan meninjau persamaan dengan koordinat polar.

Kita akan meninjau sedikit tentang koordinat polar. Perhatikan gambar berikut.

Dalam koordinat polar, kita menggunakan informasi panjang garis OP (r) dan sudut yang dibuat olehnya dari sumbu x positif (θ). Perhatikan bahwa apabila kita buat nilai r konstan, maka apabila kita ubah nilai θ mulai dari 0 hingga 2π, maka kita akan peroleh bahwa garis OP akan berputar dengan sumbu rotasi berada di titik O. Dengan demikian, yang kita perlukan hanyalah garis atau kurva yang melewati titik (r, θ) dengan θ dari 0 hingga 2π, dan kemudian mengubahnya ke koordinat Kartesius, sehingga persamaan yang kita perlukan adalah

untuk sumbu x, dan

untuk sumbu y, dengan θ kita nyatakan dalam bentuk array yang bernilai dari 0 hingga 2π.

Banyaknya nilai yang terkandung dalam array ini cukup penting dalam menggambar lingkaran. Untuk memperoleh gambar lingkaran yang halus kita perlu jumlah nilai yang banyak dalam array, namun hal tersebut memakan waktu yang cukup lama bagi komputer untuk menggambarnya. Apabila kita membutuhkan performa yang baik maka kita perlu menggunakan array yang tidak terlalu banyak. Banyaknya nilai ini bergantung pada jari-jari lingkaran yang akan kita buat. Untuk lingkaran yang kecil maka kita tidak perlu nilai array yang sangat banyak, dan sebaliknya.

Kita akan mensimulasikan pengaruh jumlah nilai dalam array N dengan lingkaran yang kita peroleh untuk nilai jari-jari sebesar 4. Berikut adalah lingkaran yang kita peroleh apabila kita array yang kita gunakan sebanyak lima, atau N = 5.

lingkaran1.png

Seperti yang telah kita lihat, lingkaran yang kita peroleh dengan N = 5 menghasilkan empat titik saja atau N – 1, karena titik terakhir terletak pada θ2π yang memiliki nilai yang sama dengan θ = 0.  Selanjutnya apabila N = 10 dan N = 20, maka lingkaran yang kita peroleh berturut-turut adalah sebagai berikut.

N = 10 :

lingkaran2

N = 20 :

lingkaran3

Disini dapat kita lihat bahwa semakin besar nilai N, lingkaran yang kita peroleh semakin mulus, karena titik-titik yang kita berikan lebih banyak, sehingga proses penggambaran menjadi lebih teliti. Gambar selanjutnya adalah gambar lingkaran untuk N = 40 dan N = 50 sebagai berikut.

N = 40 :

lingkaran4

N = 50 :

lingkaran5

Dari dua gambar ini kita peroleh bahwa dengan nilai N yang lebih besar dalam hal ini adalah 40 dan 50, lingkaran yang kita peroleh lebih teliti sehingga lingkaran tersebut terlihat benar-benar seperti lingkaran penuh.

Selanjutnya kita akan mencoba untuk jari-jari sebesar 0.5. Berikut adalah lingkaran yang kita peroleh untuk N = 5, 10, 15, dan 20.

Seperti yang kita lihat, apabila kita perkecil jari-jari lingkaran, maka lingkaran sudah terlihat mulus ketika N = 15. Oleh karena itu, pemilihan banyaknya nilai dalam array perlu untuk dipertimbangkan berdasarkan ukuran lingkaran yang akan kita buat.