Home > Computer, Software > Membuat Lingkaran dengan OpenGL

Membuat Lingkaran dengan OpenGL


Dalam geometri Euklid, sebuah 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.

Pada pembuatan lingkaran ini kita menggunakan rumus-rumus matematika berupa cos dan sin. Berkaitan dengan cos dan sin, maka yang paling penting kita harus mengubah sudut dari dari deg ke radian, yaitu 1 deg = 3.14159/180, untuk 1 lingkaran maka 2 deg.

Program Sederhana Lingkaran

#include <gl/glut.h>
#include <windows.h>
#include <math.h>

const double PI = 3.141592653589793;
int i,radius,jumlah_titik,x_tengah,y_tengah;
void Draw() {
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(1.0, 1.0, 1.0);

	glBegin(GL_LINE_LOOP);
	radius=40;
	jumlah_titik=20;
	x_tengah=50;
	y_tengah=50;
	for (i=0;i<=360;i++){
        float sudut=i*(2*PI/jumlah_titik);
        float x=x_tengah+radius*cos(sudut);
        float y=y_tengah+radius*sin(sudut);
		glVertex2f(x/100,y/100);


	}
	glEnd();


	glFlush();
}

void Initialize() {
	glClearColor(0.0, 0.0, 0.0, 0.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int iArgc, char** cppArgv) {
	glutInit(&iArgc, cppArgv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(250, 250);
	glutInitWindowPosition(200, 200);
	glutCreateWindow("Lingkaran");
	Initialize();
	glutDisplayFunc(Draw);
	glutMainLoop();
	return 0;
}

Hasil Kompile Program di atas

Program Sedikit variasi dengan Lingkaran

#include <gl/glut.h>
#include <windows.h>
#include <math.h>

const double PI = 3.141592653589793;
int i,radius,jumlah_titik,x_tengah,y_tengah;
void Draw() {
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(1.0, 1.0, 1.0);

	glBegin(GL_LINE_LOOP);
	radius=40;
	jumlah_titik=20;
	x_tengah=50;
	y_tengah=50;
	for (i=0;i<=360;i++){
        float sudut=i*(2*PI/jumlah_titik);
        float x=x_tengah+radius*cos(sudut);
        float y=y_tengah+radius*sin(sudut);
		glVertex2f(x/100,y/100);


	}
	glEnd();

    glBegin(GL_TRIANGLE_FAN);
	radius=5;
	jumlah_titik=20;
		x_tengah=30;
	    y_tengah=60;
	for (i=0;i<=jumlah_titik;i++){
        float sudut=i*(2*PI/jumlah_titik);
        float x=x_tengah+radius*cos(sudut);
        float y=y_tengah+radius*sin(sudut);
		glVertex2f(x/100,y/100);


	}
	glEnd();

    glBegin(GL_TRIANGLE_FAN);
	radius=5;
	jumlah_titik=20;
    x_tengah=70;
	y_tengah=60;
	for (i=0;i<=jumlah_titik;i++){
        float sudut=i*(2*PI/jumlah_titik);
        float x=x_tengah+radius*cos(sudut);
        float y=y_tengah+radius*sin(sudut);
		glVertex2f(x/100,y/100);


	}
	glEnd();

    glBegin(GL_LINE_LOOP);
    glVertex2f(0.5,0.6);
    glVertex2f(0.4,0.5);
    glVertex2f(0.6,0.5);
    glEnd();

    glBegin(GL_LINE_LOOP);
	radius=20;
	jumlah_titik=180;
    x_tengah=50;
	y_tengah=40;
	for (i=90;i<=jumlah_titik;i++){
        float sudut=i*(2*PI/jumlah_titik);
        float x=x_tengah+radius*cos(sudut);
        float y=y_tengah+radius*sin(sudut);
		glVertex2f(x/100,y/100);


	}
	glEnd();
	glFlush();
}

void Initialize() {
	glClearColor(0.0, 0.0, 0.0, 0.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int iArgc, char** cppArgv) {
	glutInit(&iArgc, cppArgv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(250, 250);
	glutInitWindowPosition(200, 200);
	glutCreateWindow("Lingkaran senyum");
	Initialize();
	glutDisplayFunc(Draw);
	glutMainLoop();
	return 0;
}

Hasil Kompile Program diatas

 

 

 

About these ads
Categories: Computer, Software
  1. March 8, 2012 at 2:24 am

    makaassssihh tutorialnyaaa..
    barakallah

    • zacknov
      March 14, 2012 at 10:38 am

      sama2, moga bermanfaat

  2. chandra
    November 5, 2012 at 9:45 am

    kalau bikin setengah lingkaran gitu gmn cara’a?

  3. zacknov
    December 23, 2012 at 12:20 am

    ya, 1/2 lingkaran = 180 derajat

  4. January 17, 2013 at 3:14 pm

    kalauu bikin botol gimnaa??bals

  5. naga
    January 21, 2013 at 5:58 am

    kalo pke dev cpp gmna ?

    • zacknov
      January 28, 2013 at 2:04 am

      saya belum pernah pakek dev cpp.

  6. asashin
    October 8, 2013 at 6:41 am

    gan… 1 deg itu apa yh??

  7. January 3, 2014 at 1:26 am

    kok gak mau ya :(

    • zacknov
      January 6, 2014 at 12:10 pm

      apanya tidak mau, error dimana?

  8. March 29, 2014 at 3:23 am

    kalo program bikin elips ada ga?

  9. GILARDI RAKYANDITA EFFENDI
    October 1, 2014 at 11:20 am

    glut.h nya error knp gan ?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: