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