⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 直线的bresenham算法.txt

📁 计算机图形学课程设计,简单图形生成演示.希望对别人有用
💻 TXT
字号:
void line (x1, y1, x2, y2, c)

int x1, y1, x2, y2, c;

{

int dx;

int dy;

int x;

int y;

int p;

int const1;

int const2;

int inc;

int tmp;

dx=x2-x1;

dy=y2-y1;

if (dx*dy>=0) /*准备x或y的单位递变值。*/

          inc=1;

else

inc=-1;

if (abs(dx)>abs(dy)){

      if(dx<0){

               tmp=x1; /*将2a, 3a象限方向*/

               x1=x2; /*的直线变换到1a, 4a*/

               x2=tmp;

               tmp=y1; /*象限方向去*/

               y1=y2;

               dx=-dy;

               dy=-dy;

           }

      p=2*dy-dx;

      const1=2*dy; /*注意此时误差的*/

      const2=2*(dy-dy); /*变化参数取值. */

      x=x1;

      y=y1;

      set_pixel(x, y, c);

      while (x<x2){

          x++;

          if (p<0)

                       p+=const1;

             else{

                       y+=inc;

                       p+=const2;

                    }

             set_piexl(x, y, c);

         }

}

else {

       if (dy<0){

                    tmp=x1; /* 将3b, 4b象限方向的*/

                    x1=x2; /*直线变换到2b, 1b */

                    x2=tmp; /*象限方向去. */

                    tmp=y1;

y1=y2;

dx=-dy;

dy=-dy;

}

p=2*dx-dy; /*注意此时误差的*/

const1=2*dx; /*变化参数取值. */

const2=2*(dx-dy);

x=x1;

y=y1;

set_pixel (x, y, c);

      while (y<y2){

             y++;

             if(p<0)

                    p+=const1;

             else{

x+=inc;

p+=const2;

set_pixel (x, y, c);

}

              }

}

⌨️ 快捷键说明

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