计算机图形学基础教程孔令德课后答案
计算机图形学课后习题答案_4X

第四章:P2151、将中点画线算法推广以便能画出任意斜率的直线算法设计:(1)输入直线的起点坐标P0(x0,y0)和终点坐标P1(x1,y1).(2)定义直线当前点坐标x和y,定义中点偏差判别式d、直线斜率k、像素点颜色rgb(3)x= x0,y= y0计算d=0.5-k,k=( y1-y0)/(x1-x0), rgb=RGB=(0,0,255).(4)绘制点(x,y),判断d的符号,若d<0,则(x, y)更新为(x+1,y+1),d更新为d+1-k,否则(x, y)更新为(x+1,y),d更新为d-k.(5)如果当前点x小于(x1,重复步骤(4),否则结束。
程序主要代码:MidPointLine(x0,y0,x1,y1,color){int a,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;if (a<b)drawpixel(x, y, color);elsedrawpixel(y,x,color);while (x > x1){If (d<0){x++;y++;d+ = delta2;}Else{X++;D+=delta1;}Putpixel(x,y,color);}ElseWhile (x<x1){If (d<0){x--;y++;d-=delta3;}Else{x--;d-=delta1;}Putpixel(x,y,color);}}2、采用整数Bresenham算法,为一台计算机编制直线扫描转换程序。
从键盘敲入两端点坐标,就能在显示器屏幕上画出对应的直线。
Void DrawLine(int color){int x0,y0,x1,y1,color, I;scanf( “%d, %d, %d, %d”, &x0, &y0, &x1, &y1);dx=x1 – x0;dy=y1 – y0;e = -dx;x = x0;y = y0;for ( i=0; i<=dx; i++){putpixel(x, y, color);x=x+1;e=e+2*dy;if (e>=0){y = y + 1;e = e – 2 * dy;}}}4、试编写按逆时针方向生成第二个8分圆的中点算法算法设计:(1)输入圆的半径(2)定义圆当前点坐标x和y、中点偏差判别式d、像素点颜色rgb(3)计算d=1.25-R,x=0,y=R, rgb=RGB=(0,0,255).(4)绘制点(x, y),及其在八分圆中的另外7个对称点‘(5)判断d的符号,若d<0,则(x, y)更新为(x+1,y),d更新为d+2x+3,否则(x, y)更新为(x+1,y-1),d更新为d+2(x-y)+5.(6)当x小于等于y,重复步骤(4)和(5),否则结束。
案例2直线中点Bresenham算法

总结
主教材《计算机图形学基础教程(Visual C++版)》中仅 介绍了斜率0≤k≤1直线段的中点Bresenham扫描转换算法。
本案例基于该算法实现的CLine类的成员函数类似于CDC
类的MoveTo()函数和LineTo()函数,可以使用鼠标绘制任意斜 率的直线段。
案例描述
在窗口客户区内按下鼠标左键选择直线
的起点,移动鼠标指针到直线终点,弹起鼠
标左键绘制任意斜率的直线段。
效果图
图2-1 效果图
原理算法
MFC提供的CDC类的成员函数MoveTo()和LineTo()函
数用于绘制任意斜率的直线段,直线段的颜色由所选用的 画笔指定。MoveTo()函数移动当前点到参数(x,y)所指定 的点,不画线;LineTo()函数从当前点画一直线段到参数( x,y)所指定的点,但不包括(x,y)点。
计算机图形学实践教程(VisualC++版)(第2版)
案例2 直线中点Bresenham算法
孔令德 太原工业学院计算机工程系 2017.1.10
知识点
斜率0≤k≤1直线的中点Bresenham算法。
任意斜率直线段绘制算法。 颜色类的定义与调用方法。 直线类的定义与调用方法。 鼠标按键消息映射方法。
原理算法
图2-2 直线段的斜率对称性
程序代码
d=0.5-k; for(p=P0;p.x<P1.x;p.x++) { pDC->SetPixelV(Round(p.x),Round(p.y), RGB(clr.red*255,clr.green*255,clr.blue*255)); if(d<0) { p.y++; d+=1-k; } else d-=k; } }
计算机图形学基础教程习题课1(第二版)(孙家广_胡事民编著)

1.列举计算机图形学的主要研究内容。
计算机中图形的表示方法、图形的计算、图形的处理和图形的显示。
图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
2.常用的图形输出设备是什么?显示器(CRT、LCD、等离子)、打印机、绘图仪等。
2.常用的图形输入设备是什么?键盘、鼠标、跟踪球、空间球、数据手套、光笔、触摸屏、扫描仪等。
3.列出3种图形软件工具。
AutoCAD、SolidWorks、UG、ProEngineer、CorelDraw、Photoshop、PaintShop、Visio、3DMAX、MAYA、Alias、Softimage等。
错误:CAD4.写出|k|>1的直线Bresenham画线算法。
dddd设直线方程为:y=kx+b,即x=(y-b)/k,有x i+1=x i+(y i+1-y i)/k=x i+1/k,其中k=dy/dx。
因为直线的起始点在象素中心,所以误差项d的初值d0=0。
y下标每增加1,d的值相应递增1/k,即d=d+1/k。
一旦d≥1,就把它减去1,这样保证d 在0、1之间。
●当d≥0.5时,最接近于当前象素的右上方象素(x i+1,y i+1),x方向加1,d减去1;●而当d<0.5时,更接近于上方象素(x i,y i+1)。
为方便计算,令e=d-0.5,e的初值为-0.5,增量为1/k。
●当e≥0时,取当前象素(x i,y i)的右上方象素(x i+1,y i+1),e减小1;●而当e<0时,更接近于上方象素(x i,y i+1)。
void Bresenhamline (int x0,int y0,int x1, int y1,int color){ int x, y, dx, dy;float k, 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=y+1,e=e+1/k;if (e≥0){ x++, e=e-1;}}}4.写出|k|>1的直线中点画线算法。
《计算机图形学》练习试题及参考答案

《计算机图形学》练习试题及参考答案一、选择题1.计算机图形学的研究对象是图形的表示、存储、( )和转换。
A.生成B.显示C.打印D.传输参考答案:B2.在计算机中,图形信息通常以( )形式存储A.数组B.字符串C.树状D.图形块参考答案:A3.下列哪个不属于计算机图形学的应用领域?A.计算机辅助设计B.虚拟现实C.办公自动化D.计算机艺术参考答案:C4.在计算机图形学中,( )是指将一个图形按照一定的比例和方向变换到新的位置。
A.缩放B.平移C.旋转D.镜像参考答案:B5.以下哪个不属于基本的图形变换?A.缩放B.旋转C.剪切D.反射参考答案:C6.在计算机图形学中,( )是指在图形上按照一定的方式进行填充。
A.着色B.填充C.描绘D.渲染参考答案:B7.在计算机图形学中,( )是指将一个图形分解成多个小三角形的过程。
A.细分B.纹理映射C.光照D.阴影参考答案:A8.以下哪个不属于计算机图形学的主要任务?A.图形设计B.图形输入C.图形输出D.图形处理参考答案:A9.在计算机图形学中,( )是指将图形按照一定的方式进行着色。
A.着色器B.渲染器C.显示器D.输入器参考答案:A10.在计算机图形学中,( )是指在图形上施加光照和材质,以产生真实感的效果。
A.渲染B.着色C.细化D.纹理映射参考答案:A二、填空题1.计算机图形学是研究图形的表示、存储、______、______和转换的学科。
参考答案:生成、显示2.在计算机中,图形信息通常以______形式存储。
参考答案:数组3.______是指将一个图形按照一定的比例和方向变换到新的位置。
参考答案:平移4.在计算机图形学中,______是指在图形上按照一定的方式进行填充。
参考答案:填充5.在计算机图形学中,______是指将一个图形分解成多个小三角形的过程。
参考答案:细分6.______是指将图形按照一定的方式进行着色。
参考答案:着色器7.______是指在图形上施加光照和材质,以产生真实感的效果。
计算机图形学基础答案全

计算机图形学作业答案第二章图形系统第二章图形系统1. 什么是图像的分辨率?什么是图像的分辨率?解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。
在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。
2. 计算在240像素像素//英寸下640640××480图像的大小。
图像的大小。
解答:(640/240640/240))×(480/240)(480/240)或者(或者(或者(8/38/38/3)×)×)×22英寸。
英寸。
3. 计算有512512××512像素的2×2英寸图像的分辨率。
英寸图像的分辨率。
解答:512/2或256像素像素//英寸。
英寸。
第三章 二维图形生成技术a) 一条直线的两个端点是(0,0)和(6,18),计算x 从0变到6时y 所对应的值,并画出结果。
并画出结果。
解答:由于直线的方程没有给出,所以必须找到直线的方程。
下面是寻找直线方程(由于直线的方程没有给出,所以必须找到直线的方程。
下面是寻找直线方程(y y =mx mx++b )的过程。
首先寻找斜率:)的过程。
首先寻找斜率: m m == ⊿y/y/⊿⊿x x == (y 2-y 1)/(x 2-x 1) = (1818--0)/(6/(6--0) 0) == 3 接着b 在y 轴的截距可以代入方程y =3x 3x++b 求出求出 0 0 0==3(0)+)+b b 。
因此b =0,所以直线方程为y =3x 3x。
b) 使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么?°之间的直线的步骤是什么? 解答:1.1. 计算dx dx::dx dx==x 2-x 1。
2.2. 计算dy dy::dy dy==y 2-y 1。
3.3. 计算m :m =dy/dx dy/dx。
4.4. 计算b: b b: b==y 1-m ×x 15.5. 设置左下方的端点坐标为(x ,y ),同时将x end 设为x 的最大值。
《计算机图形学》习题

一、名词解释计算机图形学、图形消隐、裁剪、走样、反走样、参数方程、曲线拟合、曲线插值、曲线的参数化、区域填充、扫描转换二、判断正误(正确写T,错误写F)1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为位图。
2.光栅扫描显示器的屏幕分为m行扫描线,每行n个小点,整个屏幕分为m╳n个中点,其中每个小点称为一个像素。
3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制;位图中的1对应未点亮的像素,用背景色绘制。
4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。
5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不会改变点阵字符的显示效果。
6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性值或者它们位于某边界线的内部。
7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。
8.用DDA算法生成圆周或椭圆不需要用到三角运算,所以运算效率高。
9.找出并消除物体中的不可见部分,称为消隐。
10.经过消隐得到的图形称为消隐图。
11.深度缓存算法并不需要开辟一个与图像大小相等的深度缓存数组,深度缓存算法能并行实现,深度缓存算法中没有对多边形进行排序。
12.在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区。
13.Bezier曲线不一定通过其特征多边形的各个顶点,Bezier曲线两端点处的切线方向必须与起特征折线集(多边形)的相应两端线段走向一致,Bezier曲线可用其特征多边形来定义。
14.由三个顶点可以决定一段二次B样条曲线,若三顶点共线时则所得到的曲线褪化为一条直线段。
15.插值得到的函数严格经过所给定的数据点。
16.参数曲线的表示有形式和几何形式两种。
17.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当直线平行于裁剪边界的条件Q k=0。
18.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当P k<0时表示线段从裁剪边界外部指向内部。
《计算机图形学》1-8章习题解答

《计算机图形学》1-8章习题解答《计算机图形学》1-4章习题解答习题11.计算机图形学的研究内容是什么?答:几何模型构造,图形生成,图形操作与处理,图形信息的存储、检索与交换,人机交互及用户接口,动画,图形输出设备与输出技术,图形标准与图形软件包的研究等。
2.计算机图形学与图像处理有何联系?有何区别?答:计算机图形学与图像处理都是用计算机来处理图形和图像,结合紧密且相互渗透,但其属于两个不同的技术领域。
计算机图形学是通过算法和程序在显示设备上构造图形,是从数据到图像的处理过程;而图像处理是对景物或图像的分析技术,是从图像到图像的处理过程。
3.简述计算机图形学的发展过程。
答:略。
(参考:教材P3)4.简述你所理解的计算机图形学的应用领域。
5.如果使用每种基色占10比特的直接编码方式表示RGB 颜色的值,每一像素有多少种可能的颜色?答:824107374110242223101010==⨯⨯6.如果每个像素的红色和蓝色都用5比特表示,绿色用6比特表示,一共用16比特表示,总共可以表示多少种颜色?答:65536222655=⨯⨯7.解释水平回扫、垂直回扫的概念。
答:水平回扫:电子束从CRT 屏幕右边缘回到屏幕左边缘的动作。
垂直回扫:电子束到达每次刷新周期末尾,从CRT 屏幕右下角回到屏幕左上角的动作。
8.为什么很多彩色打印机使用黑色颜料? 答:彩色颜料(青、品红、黄)相对来说较贵,并且在技术上很难通过多种颜色产生高质量的黑色。
9.简述随机扫描显示器和光栅扫描显示器的简单工作原理和各自的特点。
答:随机扫描显示器的工作原理:要显示的图形定义是一组画线命令,存放在刷新缓存中,由显示控制器控制电子束的偏移,周期性地按画线命令依次画出其组成线条,从而在屏幕上产生图形。
特点:其显示的图形质量好,刷新缓存中的内容可局部或动态修改,分辨率和对比度高,并且图形不会产生锯齿状线条。
光栅扫描显示器的工作原理:将CRT屏幕分成由像素构成的光栅网格,其中像素的灰度和颜色信息保存在帧缓存中。
计算机图形学第8章课后习题参考答案

第八章1.传统动画和计算机动画有什么不同?传统动画采用手工方法制作,精度差且效率低;而计算机动画立体感强,可以改变视角、视距、视野及景深,具有明暗光线变化和阴影,使物体产生不同灰度和颜色渐变以及逼真的光照,可以产生纹理质感,且这些特点与效果是手工动画难以实现或不可能实现的。
2.计算机动画研究的内容是什么?从目前国外对计算机动画的研究来看,计算机动画研究的具体内容可分为以下方面:(1)关键帧动画;(2)基于机械学的动画和工业过程动画仿真;(3)运动和路径的控制;(4)动画语言与语义;(5)基于智能的动画,机械人与动画;(6)动画系统用户界面;(7)科学可视化计算机动画表现;(8)特技效果,合成演员;(9)语言、音响合成,录制技术。
3.计算机动画应用前景如何?(1)电影电视动画片制作(2)辅助教学演示(3)仿真模拟(4)指挥调度演习(5)医疗诊断(6)游戏开发4.从物体的物理属性角度出发,可以将动画划分为哪些类型?按照动画物体自身物理属性的不同,三维动画也可以分为:刚体动画、软体动画、关节动画以及粒子动画等。
5.什么叫关键帧动画和算法动画?关键帧动画是通过一组关键帧或关键参数值而得到中间动画帧序列(1)形状插值:从关键帧本身而得到中间动画帧(2)关键参数插值:通过插值物体模型关键参数数值来获得中间动画。
算法动画由算法实现,一般适用于三维情形。
(1)运动学算法:由运动学方程确定物体的运动轨迹和速率。
(2)动力学算法:由力学方程确定物体运动形式。
(3)反向运动学算法:已知链接物末端位置和状态,反求运动方程以确定运动形式。
(4)反向动力学算法:已知链接物末端位置和状态,反求动力学方程以确定运动形式。
(5)随机运动算法:在某些场合下加进运动控制随机因素。
6.动画旋转都有哪些数学表示方式,为何要引入四元数的表示方式?三维空间中的旋转可用(1)旋转矩阵(2)欧拉角(3)四元数(Quaternions)等数学形式来表示。
《计算机图形学》学习资料

《计算机图行学》学习包本课程为有关专业的必修课程(或选修课程)。
通过本课程的教学,学生可以学习、了解和掌握计算机图形学中有关的基本原理、概念、方法和技术,培养和提高交互式图形设计的能力。
计算机图形学与图象处理,计算机图形学的研究内容,计算机图形学的发展简史,计算机图形学的发展方向,本课程教学要求与学习方法。
本章无习题计算机图形系统的组成、功能与分类,计算机图形显示器,图形输入设备,图形输出设备,图形软件系统,图形软件标准。
课后习题1. 某光栅系统中,显示器的分辨率为1280×768,其中每个象素点的颜色深度为12 bit,则该系统需要多大的帧缓存(即多少KB)?2. 有甲乙两台光栅图形显示器,它们的产品说明书介绍均称可以显示4096种颜色,但甲机在显示一幅画面时却只有256种颜色,问其中究竟是什么原因?参考答案1.1280×768×12 / (8×1024) = 1440(KB)2.(1) 甲机:8个位平面,采用一张有256个单元,每个单元有12 bit的彩色查找表。
(2) 乙机:12个位平面,没有采用查找表。
1点的生成,生成直线的DDA算法和Bresenham 算法,二次曲线,区域的简单种子填充算法和扫描线种子填充算法,多边形的扫描转换,字符的生成,反走样技术。
课后习题1. 用对称DDA算法画出A(0,0)到B(5,3)连线的各象素点的位置,并在表内填出相应的中间数据。
rx=5, ry=3,x=0,y=0,steps=5,dx=1,dy=0.6;2. 用Bresenham算法画出A(0,0)到B(5,3)连线的各象素点的位置,并在表内填出相应的中间数据。
dx=5, dy=3, d=2dy-dx=1, x=0, y=0, 2dy-2dx=-4, 3dy=6;23. 用Bresenham算法画出圆心为(0,0),半径为8的顺时针90至45的1/8圆弧上各象素点的位置。
计算机图形学课后答案1

5.3 试用中点Bresenham 算法画直线段的原理推导斜率在[-1, 0]之间的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。
解:-1≤|k |≤0,|△x |/|△y |>=1,所以x 为最大位移方向。
直线的方程:xy x x y y k b kx y y x f ∆∆=--=--=2121,),(故有: ⎪⎩⎪⎨⎧⎩⎨⎧-=+=++1111i ii i i y y y x x 构造判别式:b x k y y x f y x f d i i i i M M i -+--=-+==)1(5.0)5.0,1(),(。
推导d i 的各种情况:⎪⎩⎪⎨⎧⎩⎨⎧>-≤=+=++ )0( 1)0( 111i i i i i i i d y d y y x x递推公式的推导:当d i ≤0时:kd k b x k y b x k y y x f y x f d i i i i i i i i i i -=--+--=-+--=-+==+++)1(5.0 )2(5.0)5.0,2(),(111当d i >0时:kd k b x k y b x k y y x f y x f d i i i i i i i i i i --=---+--=-+--=-+==+++11)1(5.0 )2(5.1)5.1,2(),(111初始值d 0的计算:kk b kx y b x k y y x f d --=----=-+--=-+=5.05.0 )1(5.0)5.0,1(0000000用2d △x 代替d ,令D =2d △x :y x k x xdD ∆-∆-=--∆=∆=2)5.0(220当d i ≤0时,即D ≤0:y D y xd k d x xdD i i i i i ∆-=∆-∆=-∆=∆=++222)(2211当d i >0时,即D >0:y x D y x xd k d x xdD i i i i i ∆-∆-=∆-∆-∆=--∆=∆=++22222)1(2211算法步骤:1. 输入直线的两端点P 0(x 0, y 0)和P 1(x 1,y 1)。
计算机图形学课后题答案

第9章消隐
9.2 答:消隐算法的效率很大程度上取决于排序的效率,而在消隐算法中利用连贯性是提高排序效率的一种重要手段。
所谓连贯性是指所考察的物体或视区内的图像局部保持不变的一种性质。
连贯性利用得越充分、越巧妙,消隐算法的效率也越高。
9.6 答:Z-buffer算法步骤如下:
(1)初始化。
把Z缓存中各(x,y)单元置为z的最小值,而帧缓存各(x,y)单元置为背景色。
(2)在把物体表面相应的多边形扫描算法转换成帧缓存中的信息时,对于多边形内的每一个采样点(x,y)进行以下几步处理:
A.计算采样点(x,y)的深度z(x,y)。
B.如果z(x,y)大于Z缓存中在(x,y)处的值,则把z(x,y)存入Z缓存中的(x,y)处,再把多边形在Z(x,y)处的颜色值存入帧缓存的(x,y)地址中。
光线投射算法步骤如下:
(1)通过视点和投影平面上的所有像素点作一入射线,形成投影线。
(2)将任一投影线与场景中的所有多边形求交。
(3)若有交点,则将所有交点按z值的大小进行排序,取出最近交点所属多边形的颜色;若没有交点,则取出背景的颜色。
(4)将该射线穿过的像素点置为取出的颜色。
异同比较:光线投射算法与Z-buffer算法类似,只不过Z-buffer算法是从多边形出发得到每个投影点的深度值,光线投射算法则是从投影点出发反过来求与多边形的交点。
光线投射算法不需要帧缓存,节约存储单元,但它需要计算交点。
可以利用连贯性、外接矩形以及空间分割技术来加速交点的计算。
另外,光线投射算法对于包含曲面,特别是球面的场景有很高的计算效率,而Z-buffer算法对于曲面的计算效率较低。
《计算机图形学》答案,第四章

第四章:P2151、将中点画线算法推广以便能画出任意斜率的直线算法设计:(1)输入直线的起点坐标P0(x0,y0)和终点坐标P1(x1,y1).(2)定义直线当前点坐标x和y,定义中点偏差判别式d、直线斜率k、像素点颜色rgb(3)x= x0,y= y0计算d=0.5-k,k=( y1-y0)/(x1-x0), rgb=RGB=(0,0,255).(4)绘制点(x,y),判断d的符号,若d<0,则(x, y)更新为(x+1,y+1),d更新为d+1-k,否则(x, y)更新为(x+1,y),d更新为d-k.(5)如果当前点x小于(x1,重复步骤(4),否则结束。
程序主要代码:MidPointLine(x0,y0,x1,y1,color){int a,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;if (a<b)drawpixel(x, y, color);elsedrawpixel(y,x,color);while (x > x1){If (d<0){x++;y++;d+ = delta2;}Else{X++;D+=delta1;}Putpixel(x,y,color);}ElseWhile (x<x1){If (d<0){x--;y++;d-=delta3;}Else{x--;d-=delta1;}Putpixel(x,y,color);}}2、采用整数Bresenham算法,为一台计算机编制直线扫描转换程序。
从键盘敲入两端点坐标,就能在显示器屏幕上画出对应的直线。
Void DrawLine(int color){int x0,y0,x1,y1,color, I;scanf( “%d, %d, %d, %d”, &x0, &y0, &x1, &y1);dx=x1 – x0;dy=y1 – y0;e = -dx;x = x0;y = y0;for ( i=0; i<=dx; i++){putpixel(x, y, color);x=x+1;e=e+2*dy;if (e>=0){y = y + 1;e = e – 2 * dy;}}}4、试编写按逆时针方向生成第二个8分圆的中点算法算法设计:(1)输入圆的半径(2)定义圆当前点坐标x和y、中点偏差判别式d、像素点颜色rgb(3)计算d=1.25-R,x=0,y=R, rgb=RGB=(0,0,255).(4)绘制点(x, y),及其在八分圆中的另外7个对称点‘(5)判断d的符号,若d<0,则(x, y)更新为(x+1,y),d更新为d+2x+3,否则(x, y)更新为(x+1,y-1),d更新为d+2(x-y)+5.(6)当x小于等于y,重复步骤(4)和(5),否则结束。
《计算机图形学》习题与解答

《计算机图形学》习题与解答《计算机图形学》习题与解答第一章概述1. 试描述你所熟悉的计算机图形系统的硬软件环境。
计算机图形系统是计算机硬件、图形输入输出设备、计算机系统软件和图形软件的集合。
例如:计算机硬件采用PC、操作系统采用windows2000,图形输入设备有键盘、鼠标、光笔、触摸屏等,图形输出设备有CRT、LCD等,安装3D MAX图形软件。
2. 计算机图形系统与一般的计算机系统最主要的差别是什么?3. 图形硬件设备主要包括哪些?请按类别举出典型的物理设备?图形输入设备:鼠标、光笔、触摸屏和坐标数字化仪,以及图形扫描仪等。
图形显示设备:CRT、液晶显示器(LCD)等。
图形绘制设备:打印机、绘图仪等。
图形处理器:GPU(图形处理单元)、图形加速卡等等。
4. 为什么要制定图形软件标准?可分为哪两类?为了提高计算机图形软件、计算机图形的应用软件以及相关软件的编程人员在不同计算机和图形设备之间的可移植性。
图形软件标准通常是指图形系统及其相关应用系统中各界面之间进行数据传送和通信的接口标准,另外还有供图形应用程序调用的子程序功能及其格式标准。
5. 请列举出当前已成为国际标准的几种图形软件标准,并简述其主要功能。
(1)CGI(Computer Graphics Interface),它所提供的主要功能集包括控制功能集、独立于设备的图形对象输出功能集、图段功能集、输入和应答功能集以及产生、修改、检索和显示以像素数据形式存储的光栅功能集。
(2)GKS(Graphcis Kernel System),提供了应用程序和图形输入输出设备之间的接口,包括一系列交互和非交互式图形设备的全部图形处理功能。
主要功能如下:控制功能、输入输出功能、变换功能、图段功能、询问功能等。
6. 试列举计算机图形学的三个应用实例。
(1)CAD/CAM(2)VISC(3)VR.第二章光栅图形学1. 在图形设备上如何输出一个点?为输出一条任意斜率的直线,一般受到哪些因素影响?若图形设备是光栅图形显示器,光栅图形显示器可以看作是一个像素的矩阵,光栅图形显示器上的点是像素点的集合。
计算机图形学-习题集(答案)

《计算机图形学》习题集概念、算法与推导题1. 图形系统的功能包括: 计算功能、存储功能、 对话功能、 输入功能、 输出功能 。
2. 图形设备包括: 图形输入设备、 图形输出设备 。
3. 图形程序构造功能模块的基本原则是: 独立性、 抽象性、 开放性、 继承性 。
4. 推导出螺旋图案的程序设计中外接圆的半径的系数比例公式。
5. 图形变换的基本原理是: 图形的拓扑关系不变 和 图形的几何关系可以改变 。
6. 写出二维空间中关于45º线对称的图形变换矩阵。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡100001010 7. 给出对任意直线的对称变换的公式。
直线方程Ax+By+C=0,P(x0,y0)关于直线的对称点为Q(x,y),则:(y-y0)/(x-x0) = B/AA(x+x0)/2+B (y+y0)/2 +C=08. 在平面上,将点(a,b)先进行平移变换⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡132010001,再进行错切变换⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡100012001,求最后点的坐标。
(a+2b+8,b+3)9. 不同顺序的图形变换对图形变换的最终结果是否有影响。
存在影响。
10. 给出绕y 轴旋转的变换公式。
绕y 轴旋转θ角:x=x0*cos θ+z0*sin θ, y=y0, z=z0*cos θ-x0*sin θ。
11. 已知一点A (x0,y0,z0),平面Ax+By+Cz+D=0,求投影变换公式,并给出矩阵形式。
对于空间中任意一点(x,y,z)设其在投影平面上的投影为(xp,yp,zp),则:= R2 R1 cos(π/n) cos(α-π/n) (n>2)f = = 1 cos α +tg (π/n)sin αxp = [(A*x0-C)*x+B*x0*y+C*x0*z+D*x0]/(Ax+By+Cz+D-C)yp = [A*y0*x+(B*y0-C)*y+C*y0*z+D*y0]/(Ax+By+Cz+D-C)zp = [A*z0*x+B*z0*y+(C*z0-C)*z+D*z0]/(Ax+By+Cz+D-C)矩阵:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡C -D z0*D y0*D x0*D C C -z0*C y0*C x0*C B z0*B C -y0*B x0*B A z0*A 0*C -x0*A y A 12. 什么叫视向变换?把世界坐标系中的点P(x,y,z)变换为观察坐标系中的点Q(x*,y*,z*)的过程13. 什么叫灭点?对于透视投影来讲,一束平行于投影平面的平行线的投影可保持平行,不平行与投影平面的平行线的投影会汇聚到一个点,这个点称为灭点。
计算机图形学习题参考答案(完整版)

9、使用中点圆算法,绘制圆心为 (0, 0) ,半径 r 10 的圆在第一象限中的部分。 解:
k (x k, yk) (x k ', yk ') pk 0 (0,10) (10, 0) 1r 9 1 (1,10) (10,1) p0 2x 116 2 (2,10) (10, 2) p12x 2 11 3 (3,10) (10, 3) p2 2x 3 2x 4 12y 4 3 5 (5, 9) (9, 5) p4 2x 5 18 6 (6, 8) (8, 6) p5 2x 6 12y6 5 7 (7, 7)
1
度,可以沿着三个方向移动,也可以沿着三个方位旋转,同时还可以建立与其他三维空间的超链接。 因此 VRML 是超空间的。 7、图形的构成要素有哪些? 解: ① 刻画形状的点、线、面、体等几何要素; ② 反映物体表面属性和材质的灰度、颜色等非几何要素。 8、计算机图形学的最高奖以谁的名字命名,获得第一届和第二届该奖的分别是谁? 解: 计算机图形学的最高奖是以 Coons 的名字命名的, 获得第一届和第二届 Coons 奖的是 Ivan Sutherland 和 Pierre Bézier。
2
11、已知: A(0, 0) 、 B(1, 1) 、 C(2, 0) 、 D(1, 2) ,请判断多边形 ABCD 是否是凹多边形。 解: 多 边 形 的 边 向 量 为 AB (1,1, 0) , BC (1, 1, 0) , CD (1, 2, 0) , DA(1, 2, 0) 。 因 为
第 2 章 基本图元的显示
1、假设 RGB 光栅系统的设计采用 810 英寸的屏幕,每个方向的分辨率为每英寸 100 个像素。如果 每个像素 6 位,存放在帧缓冲器中,则帧缓冲器需要多大存储容量(字节数)? 解: 8100101006/8600000 (字节) 。 2、假设计算机字长为 32 位,传输速率为 1 MIP(每秒百万条指令) 。300 DPI(每英寸点数)的激光打 印机,页面大小为 8.511 英寸,要填满帧缓冲器需要多长时间。 解:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机图形学基础教程孔令德课后答案 【篇一:大学计算机图形学课程设】 息科学与工程学院课程设计任务书 题目: 小组成员:巴春华、焦国栋 成员学号:专业班级: 计算机科学与技术、2009级本2班 课 程: 计算机图形学 指导教师: 燕孝飞 职称: 讲 师 完成时间: 2011年 12 月----2011年 12 月 枣庄学院信息科学与工程学院制 2011年12 月20日 课程设计任务书及成绩评定 1 2 【篇二:计算机动画】
第一篇《计算机图形学》小结 《计算机图形学》 第一章:从计算机的辅助设计,艺术,和虚拟现实技术等方面介绍了计算机图形学的应用领域;接下了解了有关计算机图形学的概念和发展情况和图新显示器的发展和阴极射线管光栅扫描显示等的工作原理;最后介绍了图形学的最新技术。 第二章:介绍了面向对象程序设计,visual c++下的编程,主要基于mfc的编程,更重要的是绘制图形的方法。 第三章:图形的扫描与转换:主要分两部分,一是:直线,圆,和椭圆的扫描和转换中的一些重要而经典的算法。二是:反走样技术,尤其,直线距离加权反走样的算法。 第四章:主要介绍了多边形填充,有多边形的的概述到有效边表填充,边缘填充,最后区域填充的原理和算法 第五章:二维变换和裁剪:主要介绍了裁剪的方法:cohen sutherland算法是最著名的算法,除此之外还有重点分割裁剪算法,梁友栋——barsky算法。 第二篇计算机动画 2.1计算机动画的概念: 计算机动画是指采用图形与图像的处理技术,借助于编程或动画制作软件生成一系列的景物画面,其中当前帧是前一帧的部分修改。计算机动画是采用连续播放静止图像的方法产生 下图1-1几幅图片就是用计算机动画 (a) (b) (c) (d)图2-1 计算机动画示例 2.2 计算机动画的发展: 计算机动画的发展大致分为三阶段: 第一阶段:初出茅庐阶段: 20世纪60年代初。第一部计算机动画片诞生,之后大约20年,二维动画是计算机动画研究的重心,同时,二维动画也被应用于教学演示和辅助传统的动画片制作。当时应用的是二维计算机辅助动画系统,比如加拿大的msgen系统和美国的caas系统。 第二阶段:快速发展阶段 70年代初,关于三维动画的研究拉开了序幕,虽然在当时已经开发了一些动画系统,但是并不具备实时处理能力,因此三维计算机动画并没有大量投入使用,只有一小批领导三维动画与图像的公司出现,在技术上也只完成了一些三维可明暗着色的系统。 80年代,优化了70年代出现的模型和阴影技术。直到80年代中后期,随着超级图形工作站的出现,术才终于达到实用商品化地步。 比如 1993年上映的《侏罗纪公园》 图2-2 《侏罗纪公园》 第三阶段:鼎盛时期 90年代初,随着动力学仿真技术和三维仿真演员系统的出现,计算机动画技术被多次应用于电影特效 中,使得电影更加逼真。因为计算机动画技术的应用,1993年上映的《侏罗纪公园》引起了世界范围的轰动,影片中的特效是逆向运动学与计算机图像技术的完美结合,就算放到如今来看,如此的特效也十分出色。可以说,《侏罗纪公园》能被人奉为最经典的科幻片得益于计算机动画技术的应用。 如今,计算机动画被广泛运用与影视作品中,比如在之前引起强烈反响的《阿凡达》中,由于三维动画特技制作所包含的数字模型构建、动画生成和场景合成三大环节,再加上三维扫描、表演动画等新技术,魔幻般的特技效果和庞大而逼真的动画场景呈现在众人面前。而在最近热映的《蓝精灵》中,那些可爱的蓝精灵也是运用了计算机动画技术制作而成的,从整体形象到脸部表情细节都栩栩如生,活泼逼真,深受大众喜爱。 图2-3 《蓝精灵》剧照 2-4 《最终幻想Ⅶ》 2.3计算机动画的软硬件要求 随着计算机发展,作为其领域的一个分支:计算机动画也不断在发展。在如今的时代,二维动画已不足为奇,三维动画甚至多维动画已日趋显见。下面就以三维动画为例介绍一下计算机动画的软硬件要求。 2.3.1硬件要求 电脑动画对硬件的要求是很高的。要知道,即使是最差的品牌图形工作站都要4.5万元。要是用来制作电影,那就要求更高了。sgi公司出的最新工作站可以支持128个cpu,256g内存,16g显存。这种工作站当然不是用我们一般用的windows和3dsmax,它是用自己的操作系统irix和图形软件) cpu:电脑在进行3d动画的过程中需要大量的运算,它要对三维空间中的每一个点,每一个线和面都要进行计算。它还要计算光影、物体的运动。这就决定了它必须有一个强大的运算器。因此,我们要购买较快的cpu,尤其是浮点运算力强的cpu,最好是双cpu。 显示卡:在3d技术发展的过程中,技术人员对显示卡的要求不再是光显示的作用,它还要分担很多原来cpu的工作。一个好的显示卡并不能对最终的渲染提升速度,但是能够在您进行建模和动画中提高显 示速度和不出现丢帧现象。3d开发者制定了一些标准,要求显示卡要对其进行支持。只有支持这些标准的显示卡才能够流畅的显示出3d效果。 显示器:由于3d动画制作过程中经常要从上中前几个方向观察物体,所以会经常要将一个显示器划分为几个画面,再加上工具栏,显示器需要较大的才行。 鼠标:在显示器:由于01动画制作过程中经常要从上中前几个方向观察物体,所以会经常要将一个显示器划分为几个画面,再加上工具栏,显示器需要较大的才行。 鼠标:在maya和:softimage中鼠标的中键作用非常大,一定要购买真三键的鼠标,而且要灵活。 另外,硬件还包括电光骨骼系统、机械系统,以及三维激光扫描仪等 2.3.2软件的要求 市面上的电脑3d动画软件中低档的有lightwave和3dsmax,高端的有maya和softimage还有hunidi等。于我们国内来说,用得最多的要数3dsmax。 常见的3d软件: 【maya】maya是alias|wavefront(2003年7月更名为alias)公司的产品,是世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等。 【zbrush】zbrush 是一个数字雕刻和绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业。在一个简洁的界面中,zbrush 为当代数字艺术家提供了世界上最先进的工具。 【3ds max】3d studio max,常简称为3ds max或max,是autodesk公司开发的基于pc系统的三维动画渲染和制作软件。其前身是基于dos操作系统的3d studio系列软件,最新版本是2012。 2.4计算机动画的应用 计算机动画的应用领域非常广泛,有动画片制作,广告、电影特技,教学演示,训练模拟,作战演习,艺术品展示,产品模拟试验,电子游戏等。 军事方面,计算机动画可以实时生成具有真实感的周围场景,还可以对军械设备进行模拟实验。 建筑方面,计算机动画可以真实地模拟平面设计上的样图,从而生成三维效果的建筑场景,通过对建筑场景的漫游可以直接了解到建筑的构造和内外结构。 图2-5 戏方面,几乎所有的场景、人物都是由计算机图形生成的,比如任天堂的《final fantasy》,暴雪公 【篇三:第3组(转动的钟表)】
t>课程名称 计算机图形学 课题名称 转动的钟表 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 湖南工程学院 课 程 设 计 任 务 书 课程名称 课 题 专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 任务完成日期 一、设计内容与设计要求 1.设计内容: 在屏幕上设计一个可以转动的“天王”牌钟表,钟表的秒针、分针和时针转 动的时间与标准时间一致。 2.设计要求: 通过运用c语言编程知识,编写一个在桌面可以转动的“天王”牌钟表。图形 中的直线和圆弧曲线bresanham算法实现,钟表中的各指针转动时的坐标函数用三角函数表示,秒针、分针、时针每次转动一下的时间分别为一秒、一分和一小时,表针转动过后会自动消除痕迹。 3.参考文献 [1] 王汝传.黄海平.计算机图形学教程[m]. 北京:人民邮电出版社,2009. [2] 孔令德. 计算机图形学教程[m]. 北京:清华大学出版社,2008. [3] 姜灵芝.c语言课程设计案例精编[m].北京:清华大学出版社.2008. [4] 徐文鹏.计算机图形学.北京:机械工业出版社,2009. 二、进度安排 星期三 14:00——18:00 第 1 周 星期一 8:00——12:00 星期四 14:00——18:00 第 2 周 星期二 14:00——18:00 星期三 14:00——18:00 星期四 14:00——18:00 目录 一、课程设计的目的和要求 ....................................................................... 5 1.1 .课程设计的目的 ............................................................................. 5 1.2 .课程设计实现的要求 ..................................................................... 5 二、课程设计的主要任务 ........................................................................... 5 三、详细设计说明 ....................................................................................... 6 3.1 程序系统的结构 ........................................................................... 6 3.2 模块描述........................................................................................ 6 3.3 输出项 ............................................................................................ 6 3.4 算法 ................................................................................................ 6 3.5 流程图 ............................................................................................ 8 3.6 函数说明........................................................................................ 9 3.7 接口 .............................................................................................. 10 四、调试与分析 ......................................................................................... 11 4.1 软件使用说明及出现的问题 ..................................................... 11 4.2 运行结果........................................................................................ 11 五、总结与体会 ......................................................................................... 12 六、附录 ..................................................................................................... 13