计算机图形学课件(C版)-1.ppt

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

第3章;3.1 直线生成算法; ;P132例: 起点(0,0),终点(- 8,- 4) 显示 (-1,-1) ,(-2,-1) ,(-3,-2), (-4,-2), (-5,-3), (-6,-3), (-7,-4) ,(-8,-4) ;DDA法比直接使用直线方程的方法快,为什么?;;判断e(xi+1)=yi+1-yi,r-0.5 ;e(xi+1)=yi+1-yi,r-0.5 ;Bresenham-line(x1,y1,x2,y2,color) int x1,y1,x2,y2,color; { int x,y, △x, △y; float e,m; x=x1 ; y=y1; △x=x2-x1; △y=y2-y1; m= △y/ △x; e=m-0.5; for(i=1; i= △x; i++) { putpixel( x,y, color); if e=0 { y=y+1; e=e-1; } x=x+1; e=e+m; } } ;P134例:用Bresenham画直线算法生成(0,0)到(8,3)的直线段。 ;当e (xi)0时, (即f(xi)0) f(xi+1)=2*e(xi+1)* △x =2*(e(xi)+ △y/△x))* △x =f(xi)+2 △y;Inter.bresenham-Line(x1,y1,x2,y2,color) int x1,y1,x2,y2,color; { int x,y, △ x, △ y,e; x=x1; y=y1; △ x=x2-x1; △ y=y2-y1; e=2* △ y- △ x; for( i=1; i= △ x; i++) { putpixel (x,y,color); if( e=0) { y=y+1; e=e-2* △ x; } x=x+1; e=e+2* △ y; } } ;Generalized-Integer-Bresenham-Line(x1,y1,x2,y2,color); int x1,y1,x2,y2,color; { int x,y, △x, △y,s1,s2,temp,interchange; x=x1; y=y1; △x=abs(x2-x1); △y=abs(y2-y1); s1=sign(x2-x1); s2=sign(y2-y1); if(△y △x){temp= △x; △x= △y; △y=temp;interchange=1;} else interchange=0; e=2* △y- △x; for( i=1;i= △x; i++) {putpixel(x,y,color); if(e=0) { if(interchange=1)x=x+s1; else y=y+s2; e=e-2* △ x;} if(interchange=1)y=y+s2; else x=x+s1; e=e+2* △ y;} } ;P136例:用一般Bresenham画线算法生成AB线段,起点A(0,0),终点B(- 8,- 4) ,请写出轨迹点的坐标。;如何生成指定宽度的直线?;putpixel(x,y-1,RED); putpixel(x,y,RED); putpixel(x,y+1,RED); 用垂直刷子生成宽度为3的直线段 ;例:如何用线刷子生成宽度为3的直线?;(3)区域填充; Y . (-Y,X) .(Y,X) . (-X,Y) .(X,Y) (0,0) X .(-X,-Y) .(X,-Y) . (-Y,-X) .(Y,-X);方法1:利用圆的方程;; 若 D(Si)=XSi2+YSi2

您可能关注的文档

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档