1558.计算机图形学实验报告推荐.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1558.计算机图形学实验报告推荐

计算机图形学实验报告 学 院 班 级 学 号 学生姓名 指导教师 |k|≤1,则取xinc =±1, yinc =±k, yi+1 = yi ±k ; 若 |k|1,则取yinc =±1, xinc =±1/k, yi+1 = yi ±1/k (2)、源程序 #include stdio.h #include math.h #include graphics.h int ADDline(int k,int x1,int y1,int x2,int color) { int curx,cury,k1; curx = x1; cury = y1; k1 = k; k1 = abs(k1); if (k1 = 1) { while(curx!=x2) { curx +=1; cury +=k; putpixel(curx,cury,color); } } else { while(curx!=x2) { cury +=1; curx +=1/k; putpixel(curx,cury,color); } } return(0); } main() { int x1,y1,x2,k; int color = 10; int gdriver=DETECT,gmode; detectgraph(gdriver,gmode); initgraph(gdriver,gmode,); printf(please input begin:); scanf(%d%d,x1,y1); printf(/nplease input end:); scanf(%d%d,x2,k); ADDline(k,320+x1,240+y1,320+x2,color); getch(); cleardevice(); closegraph(); } (3)、运行结果 (二)、Bresenham直线生成算法 (1)、算法 1.Bresenham算法画直线:由Bresenham算法的基本原理是每次在最大位移方向上面走一步,而另一个方向上是走步还是不走步取决于误差项的判别。而在误差项的判别是利用中点来判断的,是否走一步,取决于中点的位置,若如果中点在直线上部,则不需要走一步,如果中点在直线下部,则要走一步。其绘图过程为: (1)输入直线的两端点P0(x0,y0)和P1(x1,y1)。 (2)计算初始值△x, △y,d=△x-2△y,x=x0,y=y0。 (3)绘制点(x,y),判断d的符号。若d0,则(x,y)更新为(x+1,y+1),d更新为d+2△x-2△y;否则(x,y)更新为(x+1,y),d更新为d-2△y. (4)当直线未画完时,重复步骤(3),否则结束。 (2)、源程序 #include stdio.h #include graphics.h #include math.h int Bres_Line(int x1,int y1,int x2,int y2,int color) { int oldcolor,iTag; int dx,dy,tx,ty,inc1,inc2,curx,cury,d; putpixel(x1,y1,color); if (x1==x2 y1==y2) { return(1); } iTag=0; dx = abs(x2-x1); dy = abs(y2-y1); if(dxdy) { iTag =1; iSwap(x1,y1); iSwap(x2,y2); iSwap(dx,dy); } tx=(x2-x1)0?1:-1; ty=(y2-y1)0?1:-1; curx = x1; cury = y1; inc1 = 2*dy; inc2 = 2*(dy-dx); d=inc1-dx; while(curx!=x2) { if (d0) { d+=inc1; } else { cury+=ty; d+=inc2; } if(iTag) putpixel(cury,curx,color); else putpixe

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档