您的位置:首页 > 编程语言 > C语言/C++

Bresenham 算法 画直线(VC++)

2011-12-03 15:31 357 查看
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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: