中点算法生成直线.txt

来自「计算机图形学课程设计,简单图形生成演示.希望对别人有用」· 文本 代码 · 共 103 行

TXT
103
字号
void MidPointLine(int x1,int y1,int x2,int y2,int color)

{

      float x,y,dx,dy;

      float k,d;

      float IncrE,IncrNE;


      dx=x2-x1;

      dy=y2-y1;

      k=dy/dx;


      if(k>=-1 && k<=1)

      {

          d=dx-2*dy;

          IncrE=-2*dy;

          IncrNE=2*(dx-dy);


          x=x1;y=y1;

          putpixel(x,y,color);


          while(x<x2)

          {

              if(d>0)

                  d+=IncrE;

              else

              {

                  d+=IncrNE;

                  y++;

              }

              x++;

              putpixel((int)x,(int)y,color);

          }

      }

      else

      {

          d=dy-2*dx;

          IncrE=-2*dx;

          IncrNE=2*(dy-dx);

          x=x1;y=y1;

          putpixel(x,y,color);

          while(y<y2)

          {

             if(d>0)

                  d+=IncrE;

             else

             {

                  d+=IncrNE;

                  x++;

             }

             y++;

             putpixel((int)x,(int)y,color);

          }

      }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?