void CCGPainterView::DrawLine(CDC *pDC, CPoint ptStartPoint, CPoint ptEndPoint, COLORREF cLineColor)
{
/*************************************************************
 write the DDA algorithm for drawing the line
 use function: pDC->SetPixelV (point, cLineColor); to drawing a pixel
编码直线生成算法,调用函数 pDC->SetPixelV (point, cLineColor) 画像素。
*************************************************************/
    int x0 = ptStartPoint.x, y0 = ptStartPoint.y;
    int xEnd = ptEndPoint.x, yEnd = ptEndPoint.y;
    int steps;
    int dx = xEnd - x0;
    int dy = yEnd - y0;
    float x = x0, y = y0, xIn, yIn;
    if (fabs(dx) < fabs(dy))
    {
        steps = fabs(dy);
    }
    else
    {
        steps = fabs(dx);
    }
    xIn = float(dx) / float(steps);
    yIn = float(dy) / float(steps);
    CPoint point(int(x + 0.5), int(y + 0.5));
    pDC->SetPixelV(point, cLineColor);
    for (int i = 0; i < steps; i++)
    {
        x += xIn;
        y += yIn;
        CPoint point(int(x + 0.5), int(y + 0.5));
        pDC->SetPixelV(point, cLineColor);
    }
}
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Lavender 微信支付

微信支付

Lavender 支付宝

支付宝