首先看一下效果图!!
vs2017做的,我觉得跟vc6上做都是一样的。
在MFC的view.h头文件和view.cpp 里新建自己的函数,
void CMFC1View::Bresenhamline(int x0, int y0, int x1, int y1, int color)
{
{
CDC *p;
p = GetDC();
int x, y, dx, dy, e;
p = GetDC();
int x, y, dx, dy, e;
dx = x1 - x0;
dy = y1 - y0;
dy = y1 - y0;
e = -dx;
x = x0;
y = y0;
x = x0;
y = y0;
if ((dx >= 0 && dy >= 0) || (dx <= 0 && dy <= 0)) //如果k大于0
{
if ((dx<0) || (dx == 0 && dy<0)) //dx小于0说明终点x
{
dx = -dx;//
x = x1;//
dy = -dy;
y = y1;
{
if ((dx<0) || (dx == 0 && dy<0)) //dx小于0说明终点x
{
dx = -dx;//
x = x1;//
dy = -dy;
y = y1;
}
if (dy<dx) //第一种情况,k-(0,1)//////////////
{
e = -dx;
for (int i = 0;i<dx;i++)
{
p->SetPixel(x, y, color);
x++;
e = e + dy + dy;
if (e >= 0)
{
y++;
e = e - dx - dx;
}
}
&
if (dy<dx) //第一种情况,k-(0,1)//////////////
{
e = -dx;
for (int i = 0;i<dx;i++)
{
p->SetPixel(x, y, color);
x++;
e = e + dy + dy;
if (e >= 0)
{
y++;
e = e - dx - dx;
}
}
&