计算机图形学期末考试复习资料(二).pdf
《计算机图形学期末考试复习资料(二).pdf》由会员分享,可在线阅读,更多相关《计算机图形学期末考试复习资料(二).pdf(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、考试说明:试题类型:(1)填 空 题(9 空 18分)(2)问 答 题(3题 12分)(3)程序题(6 题 70分 其 中 1-4题每题10分,5-6题每题15分)【填空题】(1)直线的属性包括线型、线宽和颜色等none(没有边框,无论边框宽度设为多大)dotted(点线式边框)dashed(破折线式边框)solid(直线式边框)groove(槽线式边框)ridge(脊线式边框)double(双线式边框)inset(内嵌效果的边框)(2)计算机所使用的RGBA颜色指的是:红(Red)、绿(Green)、蓝(Blue)和透明度(Alpha)。(3)如下图所示,界面上已有黑色矩形,需要按照如图所示
2、效果在界面上绘制四个红色矩形,则左上角的矩形使用的参数是(),左下角矩形使用的参数是()(4)请实现绘制如卜图形(6)请实现绘制如下图形【简答题】(1)计算机图形学研究的主要内容是什么?其目标是什么?计算机图形学是研究关于计算机图形对象的建模、处理与绘制等方面的理论和技术。其基本目标是:构建图形对象的虚拟世界,并按特定视角将虚拟模型的场景在图形设备上绘制出来。(2)计算机中图形的表示方法分为哪两类?分别是什么?点阵表示:简称为图像(数字图像)枚举出图形中所有的点。参数表示:简称为图形由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)+属性参数(颜色、线型等)来表示图形(3)请分别简述
3、图形和图像的概念:图形是含有几何属性,更强调场景的几何表示,是由场景的几何模型和景物的物理属性共同组成的。图像指计算机内以位图(Bitmap)形式存在的灰度信息(4)计算机图形学的应用领域有哪些,请举不少于4 例说明其应用领域。(1)显示图片、图形、动画(2)计算机辅助设计与制造。(3)科学、技术及事务管理中的交互绘图。(4)绘制勘探、测量图形。(5)过程控制及系统环境模拟。(6)图形用户界面(7)游 戏(8)虚拟现实。(5)什么是图像的分辨率?解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。(6)一张分辨率为600*480的图片,请计算使用32位真彩色时、该图片需要占用多大
4、磁盘空间。(7)在二维绘图环境(2D),针对两个不规则的图形,如何检测它们是否发生碰撞,请提出你自己的方法和检测步骤,并试绘图说明。(8)在二维绘图环境(2D),针对两个矩形,如何检测它们是否发生碰撞,请写出算法思路,并试绘图说明。(9)在二维绘图环境(2D),针对两个圆形,如何检测它们是否发生碰撞,请写出算法思路,并试绘图说明。程序题:1 补充程序代码绘制如下饼图,要求饼图的半径至少为lOOpx,饼图的各个块比例为:绿色(green)5%,黄色(gold)25%,深蓝色(DeepSkyBlue)60%,橙色(Orange)10%var canvas=document.getElementBy
5、Id(,canvas);var ctx=can vas.getContext(n2d);/*先绘制绿色部分力ctx.fillStyle=greenM;ctx.beginPath();ctx.moveTo(300,240);将笔移动到画布的中心ctx.lineTo(400,240);从(300,240)绘制 条线至U (400,240)ctx.arc(300,240,l 00,0,0-05*Math.PI*2,false);ctx.closePath();ctx.fill();/*先绘制金黄色部分*/ctx.fillStyle=gold;ctx.beginPath();ctx.moveTo(30
6、0,240);将笔移动到画布的中心(扇形的中心)ctx.lineTo(300+100*Math.cos(0.05*Math.PI*2),240+100*Math.sin(0.05*Math.PI*2);从(300,240)绘制一条线到黄色扇形开始的位置ctx.arc(300,240/00,0.05*Math.PI*2,0.3*Math.PI*2,false);ctx.closePath();ctx.fill();/*先绘制蓝色部分*/ctx.fillStyle=DeepSkyBlue,;ctx.beginPath();ctx.moveTo(300,240);将笔移动到画布的中心(扇形的中心)c
7、tx.lineTo(300+100*Math.cos(0.3*Math.PI*2),240+1 00*Math.sin(0.3*Math.PI*2);/从(300,240)绘制一条线到蓝色扇形开始的位置ctx.arc(300,240,100,0.3*Math.PI*2,0.9*Math.PI*2,false);ctx.closePath();ctx.fill();/*先绘制红色部分*/ctx.fillStyle=nred;ctx.beginPath();ctx.moveTo(300,240);将笔移动到画布的中心(扇形的中心)ctx.lineTo(300+100*Math.cos(0J*Mat
8、h.PI*2),240-1 00*Math.sin(0.1 *Math.PI*2);从(300,240)绘制一条线到红色扇形开始的位置ctx.arc(300,240,100,0.9*Math.PI*2,Math.PI*2,false);ctx.closePath();ctx.filK);121补充程序代码绘制如下饼图,要求饼图的半径至少为100px,饼图的各个块比例为:红色(red)30%,橙色(Orange)70%var canvas=document.getElementById(,canvas,);var ctx=canvas.getContext(2d);绘制红色部分ctx.fillS
9、tyle=,redH;ctx.beginPath();ctx.moveTo(300,240);ctx.lineTo(200,240);ctx.arc(300,240,100,Math.PI,0.2*Math.PI*2,true);ctx.closePath();ctx.fill();/绘制橘色部分ctx.fillStyle=orange;ctx.beginPath();ctx.moveTo(300,240);ctx.lineTo(300+100*Math.sin(0.05*Math.PI*2),240+100*Math.cos(0.05*Math.PI*2);ctx.arc(300,240,1
10、00,0.2*Math.PI*2,Math.PI,true);ctx.closePath();ctx.fill();3 补充程序代码绘制如卜三个圆形,实现显示RG B三元色的叠加效果。var canvas=document.getElementById(,canvas,);var ctx=can vas.getContext(2d);ctx.globalCompositeOperation=lightern;设置全局合成效果ctx.fillStyle=redu;ctx.beginPath();ctx.arc(300,200,120,0,Math.PI*2,false);ctx.closePat
11、h();ctx.fill();ctx.fiHStyle=green”;ctx.beginPath();ctx.arc(300-0.5*l 60,200+Math.cos(Math.PI/6)*160,120,0,Math.PI*2,false);ctx.closePath();ctx.fill();ctx.fillStyle=nbluen;ctx.beginPath();ctx.arc(300+0.5*160,200+Math.cos(Math.PI/6)*160,120,0,Math.PI*2,false);ctx.closePath();ctx.fill();【4】如下图所示三角形A B
12、C,将其以A 点为中心,逆时针旋转90度。A (2,5)C(6,3)B(l,1)var canvas=document.getElementById(ncanvasH);var ctx=canvas.getContext(2du);function main()ctx.beginPath();ctx.moveTo(400,300);ctx.lineTo(200,380);ctx.lineTo(l 70,260);ctx.lineTo(400,300);ctx.stroke();ctx.closePath();ctx.rotate(90*Math.PI/l 80);)main();5 补充程序代
13、码,实现在Canvas中绘制如下图形var canvas=document.getElementById(canvas);var ctx=canvas.getContext(n2dn);var g=ctx.createRadialGradient(150,150,10,150,150,50);g.addColorStop(0,yellow);g.addColorStop(1 /green*);ctx.fillStyle=g;ctx.beginPath();ctx.arc(l 50,150,50,0,Math,PI*2,false);ctx.fill();6补充程序代码,按如下要求实现在Canv
14、as中绘制图片(1)将文件夹pic下的图片horsel.jpg绘制在(10,10)坐标位置var canvas=document.getElementById(,canvas,);var ctx=canvas.getContext(n2dn);var img=new Image();img.src=npic/horsel.jpgn;img.onload=function()ctx.drawlmage(img,10,10);(2)将文件夹pic下的图片horse2.jpg绘制在(40,40)坐标位置,图片缩放为原来的1/4大小。完成后效果图如下所示var canvas=document.getE
15、lementById(,canvas);var ctx=canvas.getContext(,2d);var imgl=new Image();var img2=new Image();img l.src=pic/horse l.jpg1;img2.src=npic/horse2.jpgn;img 1 .onload=function()ctx.drawlmage(img 1,10,10,img 1 .width,img 1 .height);)img2.onload=function()ctx.drawImage(img2,40,40,img2.width/4,img2.height/4);
16、)【7】补充程序代码,按如下要求实现图片的处理和绘制:读 取 pic文件夹下的street.jpg图片,获取图片的像素后,修改像素为灰度黑白后并将结果绘制在画布上。var canvas=document.getElementById(,canvas,);var ctx=canvas.getContext(,2d,);var img=new Image();img.src=,pic/street.jpgH;img.onload=function()ctx.drawImage(img,O,O);var imgData=ctx.getImageData(O,O,img.width,img.heigh
17、t);ctx.clearRect(0,0,600,560);var pixs=imgData.data;var cd=pixs.length;for(var i=0;icd;i+)(var avg=(pixs4*i+0+pixs4*i+l+pixs4*i+2)/3;pixs4*i+0=avg;pixs4*i+l=avg;pixs4*i+2J=avg;)ctx.putImageData(imgData,O,O);)【8】补充程序代码,实现在Canvas中绘制如下图形。已知内圆的圆心坐标为(50,50),半径为 25。外圆的圆心坐标为(100,100),半径为100。卜图中渐变色效果使用的颜色有r
18、gb(255,0,0)和 rgb(0,255,0)两种。var canvas=document.getElementById(,canvas,);var ctx=canvas.getContext(“2d);定义放射性渐变色var gr=ctx.createRadialGradient(50,50,25,100,100,100);gr.addColorStop(0;rgb(255,0,0)H);gr.addColorStop(0.5,Mrgb(0,255,0)n);gr.addColorStop(0/rgb(255,0,0)u);定义好色彩以后,把色彩用到画笔的填充效果ctx.fillStyl
19、e=gr;绘制圆形ctx.beginPath();ctx.arc(l 00,100,100,0,Math.PI*2,false);ctx.closePath();ctx.fill();9 补充程序代码,实现在Canvas中绘制如下边长为80的正方形。注意有阴影效果。var canvas=document.getElementById(,canvas,);var ctx=canvas.getContext(n2d);ctx.fillStyle=nred;ctx.shadowColor=MblackM;ctx.shadowOffsetX=4;阴影向什么方向偏移(X 轴)ctx.shadowOffs
20、etY=4;阴影向什么方向偏移(Y 轴)ctx.shadowBlur=5;设置模糊效果ctx.fillRect(10,10,100,100);1 0 补充程序代码,实现在Canvas中绘制如下边长为80的正方形。注意有阴影效果。var canvas=document.getElementById(,canvas,);var ctx=canvas.getContext(M2dn);ctx.fillStyle=,redH;ctx.shadowColor=nblackH;ctx.shadowOffsetX=-4;阴影向什么方向偏移(X 轴)ctx.shadowOffsetY=-4;阴影向什么方向偏移
21、(Y 轴)ctx.shadowBlur=5;设置模糊效果ctx.fillRect(10,10,100,100);1 1 补充程序代码,实现在Canvas中绘制如卜半径为50的圆形形。注意有阴影效果。var canvas=document.getElementById(canvas);var ctx=canvas.getContext(n2dn);ctx.fillStyle=red;ctx.shadowColor=rgb(120,120,120)”;ctx.shadowOffsetX=8;阴影向什么方向偏移(X 轴)ctx.shadowOffsetY=8;阴影向什么方向偏移(Y 轴)ctx.sh
22、adowBlur=5;设置模糊效果ctx.beginPath();ctx.arc(300,240,100,0,Math.PI*2,false);ctx.closePath;ctx.fill();1 2 补充程序,按如下要求实现使用渐变色完成如下图形:(1)使用四种颜色创建渐变色magenta,blue,green,yellow,redo各种颜色按五等分。渐变色圆心位置为(300,300),半径为300。(2)使用渐变色填充(0,0)(400,400)的矩形。矩形的边框为蓝色blue,宽度为5。var canvas=document.getElementById(,canvasn);var ct
23、x=canvas.getContext(2d);var gr=ctx.createRadialGradient(50,50,25,l00,100,100);gr.addColorStop(0,rgb(255,0,0)u);gr.addColorStop(0.5,rgb(0,255,0);gr.addColorStop(1 /,rgb(255,0,0);ctx.fillStyle=gr;ctx.fillRect(l,1,100,100);【13】补充程序代码,绘制如下所示笑脸var canvas=document.getElementById(,canvas,);var ctx=canvas.g
24、etContext(n2dH);ctx.beginPath();ctx.arc(75,75,50,0,Math.PI*2,true);/Outer circlectx.moveTo(l 10,75);ctx.arc(75,75,35,0,Math.PI,false);/Mouth(clockwise)ctx.moveTo(65,65);ctx.arc(60,65,5,0,Math.PI*2,true);/Left eyectx.moveTo(95,65);ctx.arc(90,65,5,0,Math.PI*2,true);/Right eyectx.stroke();14var canvas=
25、document.getElementById(Hcanvas);var ctx=canvas.getContext(2dH);ctx.fillStyle=nrgba(0,255,0,03)n;ctx.font=nbold 20pt 宋体”;ctX.fillTextC学 J00100);ctx.fillStyle=Mrgba(0,255,0,0.4)n;ctx.font=nbold 30pt 宋体”;或乂 1 仃 乂 1(“文”,120,100);ctx.fillStyle=rgba(0,255,0,0.5)H;ctx.font=bold 40pt 宋体”;f1仃 乂 1(“感”,150,10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 期末考试 复习资料
限制150内