void DrawLine(int x0,int y0,int x1,int y1,int color)
{
int x,y,yStep,t;
double d,k;
bool step;
step=fabs(y1-y0)-fabs(x1-x0)?true:false;
if(step)
{
t=x0;x0=y0;y0=t;
t=x1;x1=y1;y1=t;
}
if(x0>x1)
{
t=x0;x0=x1;x1=t;
t=y0;y0=y1;y1=t;
}
if(y0<y1)
{
yStep=1;
}
else
{
yStep=-1;
}
k=fabs(double(y1-y0)/(x1-x0));
d=0.5;
y=y0;
for(x=x0;x<=x1;x++)
{
if(step)
pDC->SetPixel(y,x,color);
else
pDC->SetPixel(x,y,color);
if(d<0)
{
y+=yStep;
d+=1;
}
}
}
Bresenham 算法 画直线(VC++)
最新推荐文章于 2021-11-07 15:09:14 发布