Minggu, 28 April 2013

Membuat Lingkaran dengan OpenGL



Lingkaran adalah himpunan semua titik pada bidang dalam jarak tertentu, yang disebut jari-jari, dari suatu titik tertentu, yang disebut pusat. Lingkaran adalah contoh dari kurva tertutup sederhana, membagi bidang menjadi bagian dalam dan bagian luar. Salah satu cara membuat lingkaran dengan menggunakan openGL kita dapat membuat fungsi sendiri, contohnya sebagai berikut :


void lingkaran(int jari2, int jumlah_titik, int x_tengah, int y_tengah) {
 glBegin(GL_POLYGON);
 for (i=0;i<=360;i++){
 float sudut=i*(2*PI/jumlah_titik);
 float x=x_tengah+jari2*cos(sudut);
 float y=y_tengah+jari2*sin(sudut);
 glVertex2f(x,y);
 }
 glEnd();
 }


 Terdapat 4 parameter pada fungsi tersebut, yaitu:
jari2 : untuk menentukan jari-jari lingkaran
jumlah_titik : untuk menentukan jumlah titik yang akan dihubungkan pada lingkaran. Semakin banyak titik, maka akan menjadi lingkaran sempurna. Apabila jumlah titiknya 5, maka akan menjadi segilima.
x_tengah dan y_tengah : untuk menentukan titik tengah lingkaran










Pada dasarnya penentuan titik koordinat x,y pada lingkaran dapat dilihat melalui ilustrasi gambar di bawah ini :

Namun pada penerapan program proses penentuan titik koordinat pada lingkaran dapat kita kembangkan seperti kode program di bawah ini :
float x=x_tengah+jari2*cos(sudut);
float y=y_tengah+jari2*sin(sudut);
di mana letak posisi koordinat lingkaran berasal dari penambahan titik tengah lingkaran yang telah ditentukan sebelumnya.
contoh sederhana kode program untuk membuat lingkaran :
#include <stdlib.h>
#include <glut.h>
#include <math.h>

const double PI = 3.141592653589793;
 int i;

void lingkaran(int jari2, int jumlah_titik, int x_tengah, int y_tengah) {
 glBegin(GL_POLYGON);
 for (i=0;i<=360;i++){
 float sudut=i*(2*PI/jumlah_titik);
 float x=x_tengah+jari2*cos(sudut);
 float y=y_tengah+jari2*sin(sudut);
 glVertex2f(x,y);
 }
 glEnd();
 }

void renderScene(void) {
 glClear(GL_COLOR_BUFFER_BIT);
 glColor3f(1.0, 0.0, 0.0); //merah
 lingkaran(30,70,-200,0);
 glColor3f(0.0, 1.0, 0.0); //hijau
 lingkaran(30,70,200,0);
 glColor3f(0.0, 0.0, 1.0); //biru
 lingkaran(100,100,0,0);
 glFlush();
 }

void main(int argc, char **argv) {
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
 glutInitWindowSize(640, 480);
 glutInitWindowPosition(100, 100);
 glutCreateWindow("Lingkaran");
 gluOrtho2D(-320., 320., -240., 240.);
 glutDisplayFunc(renderScene);
 glutMainLoop();
}


Hasil program dari contoh kode program di atas adalah


1 komentar:

Unknown mengatakan...

cara membuat lingkran bergerak gimana>???

Posting Komentar

 
;