电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

作业一:直线的画法VIP免费

作业一:直线的画法_第1页
1/7
作业一:直线的画法_第2页
2/7
作业一:直线的画法_第3页
3/7
计算机图形学作业科目:计算机图形学学号:1060414014016姓名:秦红志一、作业要求1.根据直线方程y=kx+b,使用C语言绘制直线。2.考虑直线的斜率为0<=k<=1时的直线DDA方法。3.任意斜率直线的DDA方法。4.直线的斜率为0<=k<=1时,直线的中点画线法。5.斜率为0<=k<=1时,直线的布兰森汉姆画线法。二、实现OnDraw部分代码及运行结果截图1.根据直线方程y=kx+b,使用C语言绘制直线。代码:intx0=0,y0=0;intx1=200,y1=200;doublek=(y1-y0)/(x1-x0);doubleb=y0-k*x0;for(x0=0;x0<=400;x0++){pDC->SetPixel(x0,k*x0+b,RGB(0,0,255));}运行结果:2.考虑直线的斜率为0<=k<=1时的直线DDA方法。代码:intx0=0,y0=0,x1=200,y1=200;intx;floatdx,dy,y,k;dx=x1-x0,dy=y1-y0;k=dy/dx,y=y0;for(x=x0;x<=x1;x++){pDC->SetPixel(x+100,int(y+0.5)+100,RGB(0,0,255));y=y+k;}运行结果:3.任意斜率直线的DDA方法。代码:intx0=0,y0=0,x1=-200,y1=-200;inty;floatdx,dy,x,k;dx=x1-x0,dy=y1-y0;intx0=-200,y0=0,x1=200,y1=0;inty;floatdy,dx,x,k;dx=x1-x0,dy=y1-y0;if(dy>0)//当直线处于一、二象限时或与y轴平行时{k=dy/dx,x=x0;for(y=y0;y<=y1;y++){pDC->SetPixel(int(x+0.5)+400,y+200,RGB(0,0,255));x=x+k;}}if(dy<0)//当直线处于三、四象限时或与y轴平行时{k=dy/dx,x=x0;for(y=y0;y>=y1;y--){pDC->SetPixel(-int(x+0.5)+400,y+200,RGB(0,0,255));x=x+k;}}else//当直线与x轴平行时{if(dx>0)//绘制直线的正方向部分{k=dy/dx,y=y0;for(x=x0;x<=x1;x++){pDC->SetPixel(x+400,int(y+0.5)+200,RGB(0,0,255));y=y+k;}}if(dx<0)//绘制直线的正方向部分{k=dy/dx,y=y0;for(x=x0;x>=x1;x--){pDC->SetPixel(x+400,int(y+0.5)+200,RGB(0,0,255));y=y+k;}}}运行结果:4.直线的斜率为0<=k<=1时,直线的中点画线法。代码:intx0=0,y0=0,x1=400,y1=200;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;pDC->SetPixel(x,y,RGB(255,0,0));while(xSetPixel(x,y,RGB(255,0,0));}运行结果:5.斜率为0<=k<=1时,直线的布兰森汉姆画线法。代码:intx1=0,y1=0,x2=400,y2=200;intdx,dy;intx,y;intd,d1,d2;intinc,tmp;dx=x2-x1;dy=y2-y1;if(dx*dy>=0)inc=1;elseinc=-1;if(abs(dx)>abs(dy)){if(dx<0){tmp=x1;x1=x2;x2=tmp;tmp=y1;y1=y2;dx=-dy;dy=-dy;}d=2*dy-dx;d1=2*dy;d2=2*(dy-dy);x=x1;y=y1;pDC->SetPixel(x,y,RGB(255,0,0));while(xSetPixel(x,y,RGB(255,0,0));}}else{if(dy<0){tmp=x1;x1=x2;x2=tmp;tmp=y1;y1=y2;dx=-dy;dy=-dy;}d=2*dx-dy;d1=2*dx;d2=2*(dx-dy);x=x1;y=y1;pDC->SetPixel(x,y,RGB(255,0,0));while(ySetPixel(x,y,RGB(255,0,0));}}}运行结果:

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

作业一:直线的画法

文章天下+ 关注
实名认证
内容提供者

各种文档应有尽有

相关文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部