资源描述:
《计算机图形学基础教程习题课1(第二版)(孙家广-胡事民编著)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、备注教案用纸教学内容1.列举计算机图形学的主要研究内容。计算机中图形的表示方法、图形的计算、图形的处理和图形的显示。图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。2.常用的图形输出设备是什么?显示器(CRT、LCD、等离子)、打印机、绘图仪等。2.常用的图形输入设备是什么?键盘、鼠标、跟踪球、空间球、数据手套、光笔、触摸屏、扫描仪等。3.列出3种图形软件工具。AutoCAD、SolidWorks、UG、ProEngineer、CorelDraw、Photo
2、shop、PaintShop、Visio、3DMAX、MAYA、Alias、Softimage等。错误:CAD4.写出
3、k
4、>1的直线Bresenham画线算法。dddd设直线方程为:y=kx+b,即x=(y-b)/k,有xi+1=xi+(yi+1-yi)/k=xi+1/k,其中k=dy/dx。因为直线的起始点在象素中心,所以误差项d的初值d0=0。y下标每增加1,d的值相应递增1/k,即d=d+1/k。一旦d≥1,就把它减去1,这样保证d在0、1之间。l当d≥0.5时,最接近于当前象素的右上方象素(xi+1,yi+1),x方向加1,d减去1;l而当d<0.5时,更接
5、近于上方象素(xi,yi+1)。第5页备注教案用纸教学内容为方便计算,令e=d-0.5,e的初值为-0.5,增量为1/k。l当e≥0时,取当前象素(xi,yi)的右上方象素(xi+1,yi+1),e减小1;l而当e<0时,更接近于上方象素(xi,yi+1)。voidBresenhamline(intx0,inty0,intx1,inty1,intcolor){intx,y,dx,dy;floatk,e;dx=x1-x0,dy=y1-y0,k=dy/dx;e=-0.5,x=x0,y=y0;for(i=0;i£dy;i++){drawpixel(x,y,color);y=
6、y+1,e=e+1/k;if(e³0){x++,e=e-1;}}}4.写出
7、k
8、>1的直线中点画线算法。MP(xp,yp)P1P2QM1M2构造判别式:d=F(M)=F(xp+0.5,yp+1)=a(xp+0.5)+b(yp+1)+cl当d<0,M在Q点左侧,取右上方P2为下一个象素;l当d>0,M在Q点右侧,取上方P1为下一个象素;l当d=0,选P1或P2均可,约定取P1为下一个象素;增量计算:第5页备注教案用纸教学内容l若d³0,取正上方象素P1(xp,yp+1),要判下一个象素位置,应计算d1=F(M1)=F(xp+0.5,yp+2)=a(xp+0.5)+b(y
9、p+2)+c=d+b增量为b。l若d<0,取右上方象素P2(xp+1,yp+1)。要判断再下一象素,则要计算d2=F(M2)=F(xp+1.5,yp+2)=a(xp+1.5)+b(yp+2)+c=d+a+b增量为a+b。ld的初值d0=F(x0+0.5,y0+1)=F(x0,y0)+0.5a+b=0.5a+b用2d代替d的算法:voidMidpointLine(intx0,inty0,intx1,inty1,intcolor){inta,b,d1,d2,d,x,y;a=y0-y1,b=x1-x0,d=a+2*b;d1=2*b,d2=2*(a+b);x=x0,y=y0;
10、drawpixel(x,y,color);while(y11、345678123456P1(4,1)P2(2,3)P3(2,6)P4(5,5)P5(7,6)P6(8,2)4-134428-1/462065-365260123456P1P2P1P6P5P6P2P3P3P4P4P5第5页备注教案用纸教学内容5.写出以原点为球心,半径为2的球体的旋转生成算法。算法一:以点为基本图元for(j=0;j<72;j++){绕Y轴逆时针旋转5度,;//画出半圆画点(0,2,0);for(i=0;i<36;i++){将当前点绕Z轴逆时针旋转5度,;画变换后的点;}}算法二:以圆弧为基本图元for(j=0;j<72;j++){绕