网站大量收购独家精品文档,联系QQ:2885784924

计算机图形学 DDA算法中点画线算法Bresen.pdf

计算机图形学 DDA算法中点画线算法Bresen.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

计算机图形学DDA算法、中点画线算

法、Bresen

计算机图形学:DDA算法、中点画线算法、Bresenham算法画直线(c语言)2021-

12-0916:00这几个程序是我根据老师的课件编出来的,在这里跟大家分享一下

DDA算法画直线:

#includegraphics.h

#includemath.h

#includeconio.hmain()

intdriver=DETECT,mode;

initgraph(driver,mode,);

setbkcolor(2);

dda_line(250,200,100,120);

getch();

closegraph();

dda_line(x1,y1,x2,y2)

intx1,y1,x2,y2;

{

floatincrex,increy,x,y,length;

inti;

if(abs(x2-x1)abs(y2-y1))

length=abs(x2-x1);

elselength=abs(y2-y1);

increx=(x2-x1)/lengt;

increy=(y2-y1)/lengt;

x=x1;

y=y1;

for(i=1;i=lengt;i++)

{

putpixel((int)(x+0.5),(int)(y+0.5),1);

x=x+increx;

y=y+increy;

}

}

中点画线法:

#includegraphics.

#includemath.

#includeconio.

#includestdio.hvoidMidPoint_Line(intx0,inty0,intx1,inty1,int

color);

main()

{

intdriver=DETECT,mode;

intx0,y0,x1,y1,color;

initgraph(driver,mode,);

setbkcolor(2);

MidPoint_Line(0,0,200,200,1);

getch();

closegraph();

}

voidMidPoint_Line(x0,y0,x1,y1,color)

intx0,y0,x1,y1,color;

{inta,b,delta1,delta2,d,x,y;

a=y0-y1;

b=x1-x0;

d=2*a+b;

delta1=2*a;

delta2=2*(a+b);

x=x0;

y=y0;

putpixel(x,y,color);

while(xx1)

{if(d0)

{x++;y++;

d+=delta2;

}

else

{x++;

d+=delta1;

}

putpixel(x,y,color);

}

Bresenham算法:

#includegraphics.h

#includemath.h

#includeconio.h

#includestdio.hvoidBresenham_Line(intx0,inty0,intx1,inty1,int

value);

main()

{

intdriver=DETECT,mode;

intx0,y0,x1,y1,color;

initgraph(driver,mode,);

setbkcolor(2);

Bresenham_Line(0,0,200,200,1);

getch();

closegraph();

}

voidBresenham_Line(intx0,inty0,intx1,inty1,intvalue)

{

intdx=abs(x0-x1),dy=abs(y0-y1);

intd=2*dy-dx;

inttwody=2*dy,twodydx=2*(dy-dx);

intx,y,xend;

if(x0x1)

{x=x1;

y=y1;

xend=x0;

}

else

{x=x0;

y=y0;

xend=x1;

}

putpixel(x,y,value);

while(xxend)

{

x++;

if(d0)

d+=twody;

else

{

y++;

d+=twodydx;

}

putpixel(x,y,value);

}

}

文档评论(0)

办公服务吧 + 关注
实名认证
服务提供商

专注于文案的个性定制,修改,润色等。本人已有16年相关工作经验,具有扎实的文案功底,可承接演讲稿,读后感,任务计划书,营销方案等方面的工作。欢迎您的咨询~~

1亿VIP精品文档

相关文档