您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 计算机图形学基础教程课件之习题课1(第二版)(孙家广 胡事民编著)
习题课1.列举计算机图形学的主要研究内容。计算机中图形的表示方法、图形的计算、图形的处理和图形的显示。图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。2.常用的图形输出设备是什么?显示器(CRT、LCD、等离子)、打印机、绘图仪等。2.常用的图形输入设备是什么?键盘、鼠标、跟踪球、空间球、数据手套、光笔、触摸屏、扫描仪等。3.列出3种图形软件工具。AutoCAD、SolidWorks、UG、ProEngineer、CorelDraw、Photoshop、PaintShop、Visio、3DMAX、MAYA、Alias、Softimage等。4.写出|k|1的直线Bresenham画线算法。dddd4.写出|k|1的直线Bresenham画线算法。设直线方程为: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之间。dddd当d≥0.5时,最接近于当前象素的右上方象素(xi+1,yi+1),x方向加1,d减去1;而当d0.5时,更接近于上方象素(xi,yi+1)。为方便计算,令e=d-0.5,e的初值为-0.5,增量为1/k。当e≥0时,取当前象素(xi,yi)的右上方象素(xi+1,yi+1),e减小1;而当e0时,更接近于上方象素(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;idy;i++){drawpixel(x,y,color);y=y+1,e=e+1/k;if(e0){x++,e=e-1;}}}4.写出|k|1的直线中点画线算法。MP(xp,yp)P1P2QM1M24.写出|k|1的直线中点画线算法。构造判别式:d=F(M)=F(xp+0.5,yp+1)=a(xp+0.5)+b(yp+1)+c当d0,M在Q点左侧,取右上方P2为下一个象素;当d0,M在Q点右侧,取上方P1为下一个象素;当d=0,选P1或P2均可,约定取P1为下一个象素;MP(xp,yp)P1P2QM1M2增量计算:若d0,取正上方象素P1(xp,yp+1),要判下一个象素位置,应计算d1=F(M1)=F(xp+0.5,yp+2)=a(xp+0.5)+b(yp+2)+c=d+b增量为b。若d0,取右上方象素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。d的初值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;drawpixel(x,y,color);while(yy1){if(d0){x++,y++,d+=d2;}else{y++,d+=d1;}drawpixel(x,y,color);}/*while*/}/*midPointLine*/5.写出下图中多边形的边表(新边表)102345678123456P1(4,1)P2(2,3)P3(2,6)P4(5,4)P5(7,5)P6(8,2)102345678123456P1(4,1)P2(2,3)P3(2,6)P4(5,5)P5(7,6)P6(8,2)5.写出下图中多边形的边表(新边表)。4-134428-1/352065-1.565250123456P1P2P1P6P5P6P2P3P3P4102345678123456P1(4,1)P2(2,3)P3(2,6)P4(5,4)P5(7,5)P6(8,2)5.写出下图中多边形的边表(新边表)。4-134428-1/462065-365260123456P1P2P1P6P5P6P2P3P3P4102345678123456P1(4,1)P2(2,3)P3(2,6)P4(5,5)P5(7,6)P6(8,2)6.已知三角形ABC的各顶点坐标为A(1,2)、B(5,2)、C(3,5),现有直线L,L上的两点P、Q的坐标分别为P(0,-1)和Q(1,0),将三角形ABC相对直线L作对称变换后得到三角形A′B′C′,按步骤列出变换矩阵,并计算三角形A′B′C′各顶点的坐标值。(1)平移坐标系原点到P(0,-1)点;(2)关于直线y=x作对称变换;(3)恢复坐标轴平移。1001100011T1000010102T1001100013T100101110100110001100001010100110001123TTTT103121100101110ATA143125100101110BTB126153100101110CTC6.空间直线AB的两端点坐标为A(0,0,0),B(1,1,1),试写出绕AB旋转45°的三维复合变换矩阵。7.写出以原点为球心,半径为2的球体的旋转生成算法。6.写出以原点为球心,半径为2的球体的旋转生成算法。算法一:以点为基本图元for(j=0;j72;j++){绕Y轴逆时针旋转5度,变换矩阵为Ry;//画出半圆画点(0,2,0);for(i=0;i36;i++){将当前点绕Z轴逆时针旋转5度,矩阵为Rz;画变换后的点(x′,y′,z′);}}其中变换矩阵:1000036cos036sin0010036sin036cosyR100001000036cos36sin0036sin36coszR10201zyRRzyx算法二:以圆弧为基本图元for(j=0;j72;j++){绕Y轴逆时针旋转5度,;画半圆;}1000036cos036sin0010036sin036cosyR
本文标题:计算机图形学基础教程课件之习题课1(第二版)(孙家广 胡事民编著)
链接地址:https://www.777doc.com/doc-6103311 .html