科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件分享画直线的代码

分享画直线的代码

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要说明画直线的代码。

作者:caimouse 来源:CSDN 2008年2月7日

关键字: 代码 画直线

  • 评论
  • 分享微博
  • 分享邮件

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

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


查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章