分享画直线的代码

    技术2022-05-11  55

    这段代码太好了,跟大家一起分享它。

    //左上角到右下角画直线.////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;} 


    最新回复(0)