#include<GL/GLUT.H>
#include<stdio.h>
#include<math.h>
int xs,ys,xe,ye;
void BresenhamLine(int x0,int y0,int x1,int y1)
{
if((x0!=x1)&&(y0!=y1))
{
int x,y,dx,dy,e,i;
dx=x1-x0;
dy=y1-y0;
e=-dx;
x=x0;
y=y0;
for(i=0;i<=dx;i++)
{
glVertex2i(x,y);
x=x+1;
e=e+dy+dy;
if(e>=0)
{
y=y+1;
e=e-dx-dx;
}
}
}
else
{
int min,d;
if(x0==x1)
{
int x=x0,y;
y=(y0<=y1)?y0:y1;
d=fabs((double)(y0-y1));
while(d>=0)
{
glVertex2i(x,y+d);
d--;
}
}
if(y0==y1)
{
int x,y=y0;
x=(x0<=x1)?x0:x1;
d=fabs((double)(x0-x1));
while(d>=0)
{
glVertex2i(x+d,y);
d--;
}
}
}
}
void lineSegment()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,0.0);
glBegin(GL_POINTS);
BresenhamLine(xs,ys,xe,ye);
用OPenGL实现 Bresenham画线算法
最新推荐文章于 2023-06-13 23:53:46 发布