内容
在窗口内分别绘制任意斜率(输入起点和终点或者由鼠标定位)的直线,以及任意半径(输入圆心和半径或者由鼠标定位)的圆。
三、步骤:
1、设计一个屏幕窗口;
2、根据直线DDA和Bresenham算法编程实现直线的绘制。
3、根据圆Bresenham算法绘制圆。

解决方案 »

  1.   

    void BresenhamLine (int x0, int y0, int x1, int y1, long color)
    { 
    int x, y, dx, dy;
    float k, e;
    dx = x1-x0;
    dy = y1- y0;
    e=-dx;
    x = x0;
    y = y0;
    if (dx = = 0) 
    {
    for (i=0;i≤dy;i++)
    {
    DrawPixel (x, y+i, color);//画像素(x,y+i)
    }
    return;
    }
    for (i=0;i≤dx;i++)
    {
    DrawPixel (x, y, color);//画像素(x,y)
    x++;
    e += e+2*dy;
    if (e≥0)
    { 
    y++;
    e -= 2*dx;
    }
    }
    }