Rabu, 07 Desember 2011

Membuat Garis Dengan Open GL with C++


Setelah baca postingan gua sebelomnya tentang Membuat Lingkaran Dengan Open GL With C++, sekarang gua akan ngepost buat bikin garisnya nih. masih dengan menggunakan algoritma Midpoint yah.

Listing Kode :

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

void setPixel(int px, int py)
{
    glBegin(GL_POINTS);
        glVertex2i(px, py);
    glEnd();
}

void lineMidpoint(int x0, int y0, int xEnd, int yEnd)
{
     int dx = xEnd - x0;
     int dy = y0 - yEnd;
     int p = 2 * dy - dx;
     int twoDy= 2 * dy;
     int twoDyminusDx = 2 * (dy + dx);
     int x, y;

     x= x0;
     y= y0;

     setPixel(x,y);

     while ( x<xEnd)
     {
           x++;
           y++;
           if (p<0)
           {
                   x++;
                   p +=twoDy;
           }
           else {
               x++;
               y++;
                   p += twoDyminusDx;
           }

           setPixel(x,y);
     }
}

void Display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
 glColor3f(1.0, 1.0, 1.0);
 glPointSize(2.0);
    lineMidpoint(0,0,400,200);
 glFlush();
}
void init(void)
{
    glClearColor(0.0,0.0,0.0,0.0);
    glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
    gluOrtho2D(0.0,500.0,0.0,500.0);
}

void main(int argc,char* argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
    glutInitWindowSize(500,500);
    glutInitWindowPosition(0,0);
    glutCreateWindow("Algoritma Garis dengan Bressenham");
    init();
    glutDisplayFunc(Display);
    glutMainLoop();
}

Dari Source Code diatas maka outputnya akan seperti dibawah ini:






Selamat mencoba :)
Bagi kalian yang ingin mendownload program jadinya, silahkan klik link ini http://www.4shared.com/folder/dRu79cDT/bressenham.html



Tidak ada komentar:

Posting Komentar