这段代码太好了,跟大家一起分享它。
//左上角到右下角画直线.////caimouse 2007/02/11//bool CSurface::LeftTopToRightBottom(int nXStart,int nYStart,int nDeltaX,int nDeltaY){ // int nDelta = CNOS_NS::Max(nDeltaX,nDeltaY);
//计算判断符号,除2. int nError = nDelta>>1;
// if (nDeltaX < nDeltaY) { for (int i = 0; i < nDelta; i++) { //画点. SetPixel(nXStart,nYStart,m_crCurColor);
//向下移动一步。 nYStart++;
//dy/2 <= dx 判断选择那一点。 nError += nDeltaX; if (nDeltaY <= nError) { //向左移动一步。 nXStart++; nError -= nDeltaY; } } } else { for (int i = 0; i < nDelta; i++) { //画点. SetPixel(nXStart,nYStart,m_crCurColor);
// nXStart++; nError += nDeltaY; if (nDeltaX <= nError) { nYStart++; nError -= nDeltaX; } } }
return true;}