void CImg::Line(POINT ptStart, POINT ptEnd) { CVector2D line; // 获取距离 int l = sqrt((double)(ptStart.x - ptEnd.x) * (ptStart.x - ptEnd.x) + (ptStart.y - ptEnd.y) * (ptStart.y - ptEnd.y)); POINT ptNext = ptStart; if(m_pBMIH->biBitCount == 24) { for(int i=0; i<=l; i++) { line.GetDiscretionalNextPos(ptStart, ptEnd, l, i, ptNext); SetPixel(ptNext.x, ptNext.y, RGB(255, 0, 0)); } } else if(m_pBMIH->biBitCount == 1) { for(int i=0; i<=l; i++) { line.GetDiscretionalNextPos(ptStart, ptEnd, l, i, ptNext); SetPixel(ptNext.x, ptNext.y, RGB(0, 0, 0)); } } else { for(int i=0; i<=l; i++) { line.GetDiscretionalNextPos(ptStart, ptEnd, l, i, ptNext); SetPixel(ptNext.x, ptNext.y, RGB(1, 1, 1)); } } }