Selasa, 30 April 2013

Grafika Komputer

MEMBUAT LINGKARAN

SYNTAX : LINGKARAN 




//header file
#include <stdlib.h>
#include <gl/glut.h>
#include <math.h>

//fungsi unutk membuat garis horizontal
void garisHorizontal(int posx, int posy){
      glBegin(GL_LINES);
            glVertex2i(posx, posy+posx);
            glVertex2i(-(posx), posy+posx);
      glEnd();
}

//fungsi untuk membuat garis vertical
void garisVertical (int posx, int posy){
      glBegin(GL_LINES);
            glVertex2i(posx+posy, posy);
            glVertex2i(posx+posy, -(posy));
      glEnd();
}

const double PI = 3.14;
int i;

//fungsi untuk membuat lingkaran
void lingkaran(int radius, int jumlah_titik, int x_tengah, int y_tengah) {
 glBegin(GL_POLYGON);

 //rumus untuk menempatkan vertex agar membentuk sebuah lingkaran
 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,y);
 }
 glEnd();
}

void renderScene() {
 glClear(GL_COLOR_BUFFER_BIT);
 glColor3f(1.,1.,1.);
      garisHorizontal(-320, 320);
      garisVertical(-320, 320);


 glColor3f(0.5, 1, 0.0);
 lingkaran(100,80,0,0);
 glFlush();
}


int main(int argc, char **argv) {
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
 glutInitWindowSize(500, 500);
 glutInitWindowPosition(100, 100);
 glutCreateWindow("Lingkaran");
 gluOrtho2D(-320., 320., -320., 320.);
 glutDisplayFunc(renderScene);
 glutMainLoop();
 return 0;
}

0 komentar:

Posting Komentar