计算机图形学期末考试复习资料2Word文档下载推荐.docx

上传人:b****6 文档编号:17219603 上传时间:2022-11-29 格式:DOCX 页数:57 大小:889.23KB
下载 相关 举报
计算机图形学期末考试复习资料2Word文档下载推荐.docx_第1页
第1页 / 共57页
计算机图形学期末考试复习资料2Word文档下载推荐.docx_第2页
第2页 / 共57页
计算机图形学期末考试复习资料2Word文档下载推荐.docx_第3页
第3页 / 共57页
计算机图形学期末考试复习资料2Word文档下载推荐.docx_第4页
第4页 / 共57页
计算机图形学期末考试复习资料2Word文档下载推荐.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

计算机图形学期末考试复习资料2Word文档下载推荐.docx

《计算机图形学期末考试复习资料2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机图形学期末考试复习资料2Word文档下载推荐.docx(57页珍藏版)》请在冰豆网上搜索。

计算机图形学期末考试复习资料2Word文档下载推荐.docx

【简答题】

(1)计算机图形学研究的主要内容是什么?

其目标是什么?

计算机图形学是研究关于计算机图形对象的建模、处理与绘制等方面的理论和技术。

其基本目标是:

构建图形对象的虚拟世界,并按特定视角将虚拟模型的场景在图形设备上绘制出来。

(2)计算机中图形的表示方法分为哪两类?

分别是什么?

点阵表示:

简称为图像(数字图像)——枚举出图形中所有的点。

参数表示:

简称为图形——由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)+属性参数(颜色、线型等)来表示图形

(3)请分别简述图形和图像的概念:

图形是含有几何属性,更强调场景的几何表示,是由场景的几何模型和景物的物理属性共同组成的。

图像指计算机内以位图(Bitmap)形式存在的灰度信息

(4)计算机图形学的应用领域有哪些,请举不少于4例说明其应用领域。

(1)显示图片、图形、动画

(2)计算机辅助设计与制造。

(3)科学、技术及事务管理中的交互绘图。

(4)绘制勘探、测量图形。

(5)过程控制及系统环境模拟。

(6)图形用户界面(7)游戏(8)虚拟现实。

(5)什么是图像的分辨率?

解答:

在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。

(6)一张分辨率为600*480的图片,请计算使用32位真彩色时,该图片需要占用多大磁盘空间。

(7)在二维绘图环境(2D),针对两个不规则的图形,如何检测它们是否发生碰撞,请提出你自己的方法和检测步骤,并试绘图说明。

(8)在二维绘图环境(2D),针对两个矩形,如何检测它们是否发生碰撞,请写出算法思路,并试绘图说明。

(9)在二维绘图环境(2D),针对两个圆形,如何检测它们是否发生碰撞,请写出算法思路,并试绘图说明。

程序题:

【1】补充程序代码绘制如下饼图,要求饼图的半径至少为100px,饼图的各个块比例为:

绿色(green)5%,黄色(gold)25%,深蓝色(DeepSkyBlue)60%,橙色(Orange)10%

<

!

DOCTYPEHTMLPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

"

http:

//www.w3.org/TR/html4/loose.dtd"

>

html>

head>

<

metacharset="

uft-8"

title>

/title>

/head>

body>

canvasid='

canvas'

width="

600"

height="

560"

/canvas>

script>

varcanvas=document.getElementById('

);

varctx=canvas.getContext("

2d"

/*先绘制绿色部分*/

ctx.fillStyle="

green"

;

ctx.beginPath();

ctx.moveTo(300,240);

//将笔移动到画布的中心

ctx.lineTo(400,240);

//从(300,240)绘制一条线到(400,240)

ctx.arc(300,240,100,0,0.05*Math.PI*2,false);

ctx.closePath();

ctx.fill();

/*先绘制金黄色部分*/

gold"

//将笔移动到画布的中心(扇形的中心)

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,100,0.05*Math.PI*2,0.3*Math.PI*2,false);

/*先绘制蓝色部分*/

DeepSkyBlue"

ctx.lineTo(300+100*Math.cos(0.3*Math.PI*2),240+100*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);

/*先绘制红色部分*/

red"

ctx.lineTo(300+100*Math.cos(0.1*Math.PI*2),240-100*Math.sin(0.1*Math.PI*2));

//从(300,240)绘制一条线到红色扇形开始的位置

ctx.arc(300,240,100,0.9*Math.PI*2,Math.PI*2,false);

/script>

/body>

/html>

【2】补充程序代码绘制如下饼图,要求饼图的半径至少为100px,饼图的各个块比例为:

红色(red)30%,橙色(Orange)70%

//绘制红色部分

ctx.fillStyle="

ctx.moveTo(300,240);

ctx.lineTo(200,240);

ctx.arc(300,240,100,Math.PI,0.2*Math.PI*2,true);

//绘制橘色部分

orange"

ctx.lineTo(300+100*Math.sin(0.05*Math.PI*2),240+100*Math.cos(0.05*Math.PI*2));

ctx.arc(300,240,100,0.2*Math.PI*2,Math.PI,true);

【3】补充程序代码绘制如下三个圆形,实现显示RGB三元色的叠加效果。

canvasid="

canvas"

/canvas>

ctx.globalCompositeOperation="

lighter"

//设置全局合成效果

ctx.arc(300,200,120,0,Math.PI*2,false);

ctx.closePath();

ctx.fill();

ctx.arc(300-0.5*160,200+Math.cos(Math.PI/6)*160,120,0,Math.PI*2,false);

blue"

ctx.arc(300+0.5*160,200+Math.cos(Math.PI/6)*160,120,0,Math.PI*2,false);

【4】如下图所示三角形ABC,将其以A点为中心,逆时针旋转90度。

varcanvas=document.getElementById("

varctx=canvas.getContext("

functionmain(){

ctx.moveTo(400,300);

ctx.lineTo(200,380);

ctx.lineTo(170,260);

ctx.lineTo(400,300);

ctx.stroke();

ctx.closePath();

ctx.rotate(90*Math.PI/180);

}

main();

【5】补充程序代码,实现在Canvas中绘制如下图形

varg=ctx.createRadialGradient(150,150,10,150,150,50);

g.addColorStop(0,"

yellow"

g.addColorStop(1,"

ctx.fillStyle=g;

ctx.arc(150,150,50,0,Math.PI*2,false);

【6】

补充程序代码,按如下要求实现在Canvas中绘制图片

(1)将文件夹pic下的图片horse1.jpg绘制在(10,10)坐标位置

utf-8"

varimg=newImage();

img.src="

pic/horse1.jpg"

img.onload=function(){

ctx.drawImage(img,10,10);

(2)将文件夹pic下的图片horse2.jpg绘制在(40,40)坐标位置,图片缩放为原来的1/4大小。

完成后效果图如下所示

varimg1=newImage();

varimg2=newImage();

img1.src="

img2.src="

pic/horse2.jpg"

img1.onload=function(){

ctx.drawImage(img1,10,10,img1.width,img1.height);

img2.onload=function(){

ctx.drawImage(img2,40,40,img2.width/4,img2.height/4);

【7】补充程序代码,按如下要求实现图片的处理和绘制:

读取pic文件夹下的street.jpg图片,获取图片的像素后,修改像素为灰度黑白后并将结果绘制在画布上。

varctx=canvas.getContext('

2d'

pic/street.jpg"

ctx.drawImage(img,0,0);

varimgData=ctx.getImageData(0,0,img.width,img.height);

ctx.clearRect(0,0,600,560);

varpixs=imgData.data;

varcd=pixs.length;

for(vari=0;

i<

cd;

i++)

{

varavg=(pixs[4*i+0]+pixs[4*i+1]+pixs[4*i+2])/3;

pixs[4*i+0]=avg;

pixs[4*i+1]=avg;

pixs[4*i+2]=avg;

ctx.putImageData(imgData,0,0);

【8】补充程序代码,实现在Canvas中绘制如下图形。

已知内圆的圆心坐标为(50,50),半径为25。

外圆的圆心坐标为(100,100),半径为100。

下图中渐变色效果使用的颜色有rgb(255,0,0)和rgb(0,255,0)两种。

//定义放射性渐变色

vargr=ctx.createRadialGradient(50,50,25,100,100,100);

gr.addColorStop(0,"

rgb(255,0,0)"

gr.addColorStop(0.5,"

rgb(0,255,0)"

//定义好色彩以后,把色彩用到画笔的填充效果

ctx.fillStyle=gr;

//绘制圆形

ctx.beginPath();

ctx.arc(100,100,100,0,Math.PI*2,false);

【9】补充程序代码,实现在Canvas中绘制如下边长为80的正方形。

注意有阴影效果。

ctx.shadowColor="

black"

ctx.shadowOffsetX=4;

//阴影向什么方向偏移(X轴)

ctx.shadowOffsetY=4;

//阴影向什么方向偏移(Y轴)

ctx.shadowBlur=5;

//设置模糊效果

ctx.fillRect(10,10,100,100);

【10】补充程序代码,实现在Canvas中绘制如下边长为80的正方形。

ctx.shadowOffsetX=-4;

ctx.shadowOffsetY=-4;

【11】补充程序代码,实现在Canvas中绘制如下半径为50的圆形形。

varcanvas=document.getElemen

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1