当前位置:文档之家› 计算机图形学-第五章-图形变换

计算机图形学-第五章-图形变换

计算机图形学-第五章-图形变换
计算机图形学-第五章-图形变换

第五章图形变换

重点:掌握二维几何变换、二维观察变换、三维几何变换以及三维观察变换。

难点:理解常用的平移、比例、旋转变换,特别是复合变换。

课时安排:授课4学时。

图形变换包括二维几何变换,二维观察变换,三维几何变换和三维观察变换。为了能使各种几何变换(平移、旋转、比例等)以相同的矩阵形式表示,从而统一使用矩阵乘法运算来实现变换的组合,现都采用齐次坐标系来表示各种变换。

齐次坐标系

齐次坐标系:n维空间中的物体可用n+1维齐次坐标空间来表示。例如二维空间直线

ax+by+c=0,在齐次空间成为aX+bY+cW=0,以X、Y和W为三维变量,构成没有常数项的三维平面(因此得名齐次空间)。点P(x、y)在齐次坐标系中用P(wx,wy,w)表示,其中W是不为零的比例系数。所以从n维的通常空间到n+1维的齐次空间变换是一到多的变换,而其反变换是多到一的变换。例如齐次空间点P(X、Y、W)对应的笛卡尔坐标是x=X/W和y=Y/W。将通常笛卡尔坐标用齐次坐标表示时,W的值取1。

采用齐次坐标系可以将平移、比例、旋转这三种基本变换都以相同的矩阵形式来表示,并统一地用矩阵乘法来实现变换的组合。

齐次坐标系在三维透视变换中有更重要的作用,它使非线形变换也能采用线形变换的矩阵表示形式。

5.1 二维几何变换

二维几何变换就是在平面上对二维点的坐标进行变换,从而形成新的坐标。

二维几何变换主要包括:平移、比例、旋转、对称、错切、仿射和复合变换。

5.1.1 二维平移变换

如图所示,它使图形移动位置。新图p'的每一图元点是原图形p中每个图元点在x和y方向分别移动Tx和Ty产生,所以对应点之间的坐标值满足关系式

x'=x+Tx

y'=y+Ty

可利用矩阵形式表示成:

[x' y']=[x y]+[Tx Ty]

简记为:P'=P+T,T=[Tx Ty]是平移变换矩阵(行向量)。

从矩阵形式来看,平移变换是矩阵加法,而比例和旋转变换则是矩阵乘法。若这三种变换都能运用乘法来实现的话,我们就可以实现三种变换的任意组合。为了实现这个目的,一般采用齐次坐标系来表示这三种变换,齐次坐标系中的平移变换矩阵形式是

5.1.2 二维比例变换

如图所示,它改变显示图形的比例。新图形p'的每个图元点的坐标值是原图形p中每个图元点的坐标值分别乘以比例常数Sx和Sy,所以对应点之间的坐标值满足关系式

x'=x·Sx

y'=y·Sy

可利用矩阵形式表示成:

简记成p'=P·S,其中是比例变换矩阵。在齐次坐标系中的比例变换矩阵形式是:

5.1.3 二维旋转变换

二维旋转变换:图形相对坐标原点的旋转如图所示,它产生图形位置和方向的变动。新图形p'的每个图元点是原图形p每个图元点保持离坐标原点距离不变并绕原点旋转θ角产生的,并以逆时针方向旋转为正角度,对应图元点的坐标值满足关系式

x'=xcosθ-ysinθ

y'=xsinθ+ycosθ

用矩阵形式表示成简记为P'=P·R,其中是旋转变换矩阵。在齐次坐标系中的比例变换矩阵形式是

5.1.4 二维对称变换

二维对称变换(或称反射变换)是产生物体镜像的一种变换,该变换实际上是比例变换的几种特殊情况。

1、以y轴为对称线的对称变换

变换后,图形点集的x坐标值不变,但符号相反;y坐标值不变。

矩阵表示形式为:

2、以x轴为对称线的对称变换

变换后,图形点集的x坐标值不变;y坐标值不变,但符号相反。矩阵表示形式为:

3、以原点为对称的对称变换

变换后,图形点集的x和y坐标值不变,但符号相反。

矩阵表示形式为:

4、以直线y=x为对称线的对称变换

变换后,图形点集的x和y坐标对调。

矩阵表示形式为

5、以直线y=-x为对称线的对称变换

变换后,图形点集的x和y坐标对调,但符号相反。

矩阵表示形式为

5.1.5 二维错切变换

二维错切变换:是一种会使物体形状发生变化的变换。常用的错切变换有两种:改变x坐标值和改变y坐标值。

1、图形沿x方向的错切

数学表达式为

x'=x+SH x·y SH x≠0

y'=y

矩阵表示为

2、图形沿y方向的错切

数学表达式为

x'=x

y'=SH y·x+y SH y≠0

矩阵表示为

5.1.6 二维仿射变换二维仿射变换的形式为:

x'=a xx x+a xy y+b x

y'=a yx x+a yy y+b y

变换的坐标x'和y'都是原始坐标x和y的线性函数。参数a

ij 和b

k

是由变换

类型确定的常数。仿射变换具有平行线转换成平行线和有限点映射到有限点的一般特性。

平移、比例、旋转、对称和错切变换是二维仿射变换的特例,任何常用的二维仿射变换总可表示为这五种变换的组合。

5.1.7 二维复合变换

二维复合变换:前面所讨论的图形变换是相对于坐标原点或坐标轴来进行的。在实际中,常常需要相对于任意点或任意轴来进行变换。为了做到这一点,可通过计算多个基本变换矩阵的乘积来得到总的变换矩阵或称为复合变换矩阵,从而实现任意顺序的组合变换。常见的组合变换有:

1、绕任意点的旋转

绕任意点(或称基准点)(x r,y r)的旋转:该变换可分成如图所示的三个步骤来实现

(1)平移物体使基准点位置被移到坐标原点;

(2)绕坐标原点旋转;

(3)平移物体使基准点回到原始位置。

该变换顺序的复合变换矩阵为:

2、相对任意点的比例变换

相对任意点(固定点)(x f,y f)的比例变换:该变换可分成如图所示的三个步骤来实现

(1)平移物体使固定点与坐标原点重合;

(2)相对于坐标原点的比例变换;

(3)平移物体使固定点回到原始位置。

该变换顺序的复合变换矩阵为

3、矩阵的组合特性

即矩阵乘法满足结合率,不满足交换率。在进行连续变换时一定要按变换次序进行变换矩阵的运算,否则不同次序的变换会产生不同的变换结果。如下图所示。

5.2 二维观察变换

在实际应用中,用户要求图形系统具有能从已有的图形显示数据(对应一个完整的图形)中方便地选出数据(对应某一区域的图形)进行显示的能力,我们把在用户坐标系中预先选定的将产生图形显示的区域称为窗口。同样,在使用中用户也要求能控制显示图形在显示屏上的位置和大小,我们把在显示器坐标系中规定的显示图形区域称为视口。观察变换就是把这种用户坐标系中窗口的图形变换到显示器的视口中以产生显示。

计算机图形学-图形的几何变换

贵州大学实验报告 学院:计算机科学与技术专业:软件工程班级:软件132 姓名常伟学号1308060226 实验地点一教704 实验时间2016.5.9 指导教师李智实验成绩 实验项目名称试验四、图形的几何变换 实验目的1.掌握矢量运算。 2.熟练使用齐次坐标。 3.掌握采用齐次坐标进行几何变换。 实验要求1.理解几何图形变换的原理,编程实现图形的几何变换。 2.编程界面友好,实现变换的所有方式,包括平移、缩放、旋转、对称、错切以及基本变换基础上的组合变换。 3.几何变换使用矩阵进行运算。

实验原理 二维齐次坐标变换的矩阵的形式是 ? ? ? ? ? ? ? ? ? ? i h g f e d c b a 这个矩阵的每一个元素都是有特殊含义的。其中,? ? ? ? ? ? e d b a 可以对图形进行缩放、旋 转、对称和错切等变换;? ? ? ? ? ? f c 是对图形进行平移变换;[]h g是对图形作投影变换;[]i 则是对图形进行缩放变换。 下面给出几个基本变换的矩阵运算。 1.平移变换 ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? + + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? 1 ) , ( 1 1 1 1 1 1 ' ' y x T y x y x t t t t t t y x y x y x y x 2.缩放变换 ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 1 ) , ( 1 1 1 1 ' ' y x s s S y s x s y x s s y x y x y x y x 3.旋转矩阵 ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? + - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?- = ? ? ? ? ? ? ? ? ? ? 1 ) ( 1 cos sin sin cos 1 1 cos sin sin cos 1 ' ' y x R y x y x y x y x θ θ θ θ θ θ θ θ θ 4.对称矩阵 ? ? ? ? ? ? ? ? ? ? + + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 1 1 1 1 ' ' ey dx by ax y x e d b a y x 对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。 5.错切变换 ? ? ? ? ? ? ? ? ? ? + + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 1 1 1 1 1 1 ' ' y dx by x y x d b y x

计算机图形学教程课后习题参考答案.

第一章 1、试述计算机图形学研究的基本内容? 答:见课本P5-6页的1.1.4节。 2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。 答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。计算机图形学研究的是从数据描述到图形生成的过程。例如计算机动画制作。 图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。例如工业中的射线探伤。 模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。 3、计算机图形学与CAD、CAM技术关系如何? 答:见课本P4-5页的1.1.3节。 4、举3个例子说明计算机图形学的应用。 答:①事务管理中的交互绘图 应用图形学最多的领域之一是绘制事务管理中的各种图形。通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。 ②地理信息系统 地理信息系统是建立在地理图形基础上的信息管理系统。利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。 ③计算机动画 用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。 5、计算机绘图有哪些特点? 答:见课本P8页的1.3.1节。 6、计算机生成图形的方法有哪些? 答:计算机生成图形的方法有两种:矢量法和描点法。 ①矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。 ②描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。当像素点具有多种颜色或多种灰度等级时,就可以显示彩色图形或具有不同灰度的图形。 7、当前计算机图形学研究的课题有哪些? 答:见课本P10-11页的1.4节。

计算机图形学--图形几何变换实现

实验五 图形几何变换的实现 班级:信计二班 学号: :解川 分数: 一、实验目的 为了掌握理解二维、三维的数学知识、变换原理、变换种类、变换方法;进一步理解采用齐次坐标进行二维、三维变换的必要性;利用VC++语言实现二维、三维图形的基本变换与复合变换。 二、实验容 (1) 理解采用齐次坐标进行图形变换的必要性——变换的连续性,使复合变换 得以实现。 (2) 掌握二维、三维图形基本变换的原理及数学公式。 (3) 利用VC++语言实现二维、三维图形的基本变换、复合变换,在评不上显 示变换过程或变换结果。 三、实验步骤 (1) 预习教材关于二维、三维图形变换的原理与方法。 (2) 使用VC++语言实现某一种或几种基本变换。 (3) 调试、编译、运行程序。 四、原理分析 源程序分别实现了对二维图形进行的平移变换—基本变换;对三维图形进行的绕某一个坐标轴旋转变换以及相对于立方体中心的比例变换—复合变换。 三维几何变换: (1) 比例变换: []1111z y x =[]1z y x T 3D =[]1z y x ????? ?? ?? ???s n m l r j i h q f e d p c b q 局部比例变换: s T =? ? ??? ???? ???1000000000000j e a 其中a 、b 、j 分别为在x 、y 、z 方向的比例系数。

整体比例变换: s T =? ? ??? ???? ???s 000010000100001其中s 为在xyz 方向的等比例系数。S>1时,整体缩小;s<1时,整体放大。 (2) 旋转变换: 旋转变换的角度方向为(沿坐标轴的反方向看去,各轴按逆时针方向旋转) 绕z 轴旋转: RZ T =?? ??? ???? ???-100 010000cos sin 00sin cos θθθθ 绕x 轴旋转: RX T =??????? ?? ???-10 00 0cos sin 00sin cos 000 01 θθθθ 绕y 轴旋转: RY T =????? ???? ???-10 0cos 0sin 00100sin 0cos θθθθ 程序代码: /*三维图形(立方体)旋转变换、比例变换*/ #include #include #include #include #include #include #define ZOOM_IN 0.9 #define ZOOM_OUT 1.1

《计算机图形学》答案,第六章

第六章曲线和曲面 3、参照Hermite三次曲线的几何形式,试用B[P 0 P 1 P u P 1 u P uu P 1 uu]T , 推导相 应五次曲线的调和函数和系数矩阵M。 解:设Hermite五次曲线的几何形式为: P(t)=a5t5 + a4t4 + a3t3 + a2t2 + a1t + a0其中 t∈[0,1] 按题意,已知曲线两端点的坐标值P0 P1 曲线两端点的一阶导数值P0u P1u 曲线两端点的二阶导数值P0uu P1uu 则求出系数a5,a4,a3,a2,a1,a0 则P(t)就可确定; 由于P(t)= a5t5 + a4t4 + a3t3 + a2t2 + a1t + a0其中 t∈[0,1] P’(t)=5a5t4 + 4a4t3 + 3a3t2 + 2a2t + a1 P”(t)=20a5t3+12a4t2+6a3t+2a2 P0=P(0)=a0 P1=P(1)=a5+a4+a3+a2+a1+a0 P0’=P’(0)=a1 P1’=P’(1)=5a5+4a4+3a3+2a2+a1 P0”=P”(0)=2a2 P1”=P”(1)=20a5+12a4+6a3+2a2 所以 a0 = P(0) a1 =P’(0) a2 =P”(0)/2 a3 = 10P(1)- 10P(0) - 4P’(1) - 6P’(0) + P”(1)/2 - 3P”(0)/2 a4 =-15P(1)+ 15P(0) + 7P’(1) + 8P’(0) - P”(1) - 3P”(0)/2 a5 = 6P(1)- 6P(0) - 3P’(1) - 3P’(0) - P”(0)/2 + P”(1)/2 => P(t)=[ -6P(0) + 6P(1) - 3P’(0) - 3P’(1) - P”(0)/2 + P”(1)/2] t5 +[+15P(0) - 15P(1) + 8P’(0) + 7P’(1) + 3P”(0)/2 ] t4 +[-10P(0) + 10P(1) - 6P’(0) - 4P’(1) - 3P”(0)/2 + P”(1)/2] t3 + [ P”(0)/2] t2 + [P’(0)] t +P(0) 整理得: P(t) = (-6t5 + 15t4 - 10t3 + 1) P(0) + (6t5-15t4+10t3) P(1) + (-3t5 + 8t4 -6t3 + t) P’(0) + (-3t5 +7t4-4t3) P’(1) + (-t5/2+ 3t4/2-3t3/2+t2/2) P”(0) + (t5/2-t4+t3/2) P”(1) 故调和函数为: F(0)= -6t5 + 15t4 - 10t3 + 1 F(1)= 6t5 - 15t4 + 10t3 F(2)= -3t5 + 8t4 - 6t3 + t F(3)= -3t5 + 7t4- 4t3 F(4)= -t5/2 + 3t4/2 -3t3/2 + t2/2

计算机图形学第二版课后习题答案

第一章绪论 概念:计算机图形学、图形、图像、点阵法、参数法、 图形的几何要素、非几何要素、数字图像处理; 计算机图形学和计算机视觉的概念及三者之间的关系; 计算机图形系统的功能、计算机图形系统的总体结构。 第二章图形设备 图形输入设备:有哪些。 图形显示设备:CRT的结构、原理和工作方式。 彩色CRT:结构、原理。 随机扫描和光栅扫描的图形显示器的结构和工作原理。 图形显示子系统:分辨率、像素与帧缓存、颜色查找表等基本概念,分辨率的计算 第三章交互式技术 什么是输入模式的问题,有哪几种输入模式。 第四章图形的表示与数据结构 自学,建议至少阅读一遍 第五章基本图形生成算法 概念:点阵字符和矢量字符; 直线和圆的扫描转换算法; 多边形的扫描转换:有效边表算法; 区域填充:4/8连通的边界/泛填充算法;

内外测试:奇偶规则,非零环绕数规则; 反走样:反走样和走样的概念,过取样和区域取样。 5.1.2 中点 Bresenham 算法(P109) 5.1.2 改进 Bresenham 算法(P112) 习题答案

习题5(P144) 5.3 试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。(P111) 解: k<=-1 |△y|/|△x|>=1 y为最大位移方向 故有 构造判别式: 推导d各种情况的方法(设理想直线与y=yi+1的交点为Q): 所以有: y Q-kx Q-b=0 且y M=y Q d=f(x M-kx M-b-(y Q-kx Q-b)=k(x Q-x M) 所以,当k<0, d>0时,M点在Q点右侧(Q在M左),取左点 P l(x i-1,y i+1)。 d<0时,M点在Q点左侧(Q在M右),取右点 Pr(x i,y i+1)。 d=0时,M点与Q点重合(Q在M点),约定取右点 Pr(x i,y i+1) 。 所以有 递推公式的推导: d2=f(x i-1.5,y i+2) 当d>0时, d2=y i+2-k(x i-1.5)-b 增量为1+k =d1+1+k

(计算机图形学)关于任意直线的对称变换

实验3:关于任意直线的对称变换 实验类型:验证、设计 所需时间:3学时 主要实验内容及要求: 对于任意直线的二维图形对称变化的实验,要求输入的直线是任意直线,直线的端点只能由键盘输入或者鼠标拾取,要做对称变换的图形也是一个任意图形(至少应是一个任意多边形)。 对称变换,先分析如何使用一系列简单变换来构造题目要求的复合变换。本体要实现的变换可以用如下一组变换组合来实现: ①将直线任一点移至与坐标原点重合 ②将平移后的直线绕原点旋转至与某一坐标轴重合 ③将题目要求的对称变换转为实现已知图形关于上述坐标轴的对称变换 ④按逆序求上述①、②变换的逆变换 ⑤将上述矩阵依次相乘得到最终的复合变换矩阵 则某一多边形关于任意直线的对称变换就转变为将该多边形的各顶点与上述求得的复合变换进行矩阵乘法,求得变换后的新多边形的各个顶点坐标。 根据上述流程,编程实现,并测试程序功能。 源代码: #include #include using namespace std;

void Initial(void) { glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); } class CPoint { public: int x; int y; CPoint(){} CPoint(int x1,int y1) { x=x1; y=y1; } static CPoint ZeroMoveToXY(CPoint p, CPoint XY);//原始坐标向屏幕坐标XY 的平移 static CPoint ToZero(CPoint p);//关于原点对称 static CPoint XYMoveToZero(CPoint p, CPoint XY);//XY坐标向屏幕坐标的平移

计算机图形学

计算机图形学 姓名:李倩倩 班级:硕研10-14 学号: 第一题: #include <> #include <> void MidpintLine( HDC hDC,int x0,int y0,int x1,int y1,unsigned long 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; SetPixel(hDC,x,y,color); while(x0) xinc=1; else xinc=-1; if(dy>0) yinc=1; else yinc=-1; dx=abs(dx);dy=abs(dy); int x=xs,y=ys; int i=0; if(dx==0&&dy==0) SetPixel(pdc,x,y,color); SetPixel(hDC,x,y,color); else if(dx==0) { for(i=0;i

计算机图形学作业答案

计算机图形学作业答案 第一章序论 第二章图形系统 1.什么是图像的分辨率? 解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。 2.计算在240像素/英寸下640×480图像的大小。 解答:(640/240)×(480/240)或者(8/3)×2英寸。 3.计算有512×512像素的2×2英寸图像的分辨率。 解答:512/2或256像素/英寸。 第三章二维图形生成技术 1.一条直线的两个端点是(0,0)和(6,18),计算x从0变到6时y所对应的值,并画出结果。 解答:由于直线的方程没有给出,所以必须找到直线的方程。下面是寻找直线方程(y =mx+b)的过程。首先寻找斜率: m =⊿y/⊿x =(y 2-y 1 )/(x 2 -x 1 )=(18-0)/(6-0) = 3 接着b在y轴的截距可以代入方程y=3x+b求出 0=3(0)+b。因此b=0,所以直线方程为y=3x。 2.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么? 解答: (1)计算dx:dx=x 2-x 1 。 (2)计算dy:dy=y 2-y 1 。 (3)计算m:m=dy/dx。 (4)计算b: b=y 1-m×x 1 (5)设置左下方的端点坐标为(x,y),同时将x end 设为x的最大值。如果 dx < 0,则x=x 2、y=y 2 和x end =x 1 。如果dx > 0,那么x=x 1 、y=y 1 和x end =x 2 。 (6)测试整条线是否已经画完,如果x > x end 就停止。 (7)在当前的(x,y)坐标画一个点。 (8)增加x:x=x+1。 (9)根据方程y=mx+b计算下一个y值。 (10)转到步骤(6)。 3.请用伪代码程序描述使用斜截式方程画一条斜率介于45°和-45°(即|m|>1)之间的直线所需的步骤。

计算机图形学课后习题答案

第三章习题答案 3.1 计算机图形系统的主要功能是什么? 答:一个计算机图形系统应具有计算、存储、输入、输出、交互等基本功能,它们相互协作,完成图形数据的处理过程。 1. 计算功能 计算功能包括: 1)图形的描述、分析和设计;2)图形的平移、旋转、投影、透视等几何变换; 3)曲线、曲面的生成;4)图形之间相互关系的检测等。 2. 存储功能 使用图形数据库可以存放各种图形的几何数据及图形之间的相互关系,并能快速方便地实现对图形的删除、增加、修改等操作。 3. 输入功能 通过图形输入设备可将基本的图形数据(如点、线等)和各种绘图命令输入到计算机中,从而构造更复杂的几何图形。 4. 输出功能 图形数据经过计算后可在显示器上显示当前的状态以及经过图形编辑后的结果,同时还能通过绘图仪、打印机等设备实现硬拷贝输出,以便长期保存。 5. 交互功能 设计人员可通过显示器或其他人机交互设备直接进行人机通信,对计算结果和图形利用定位、拾取等手段进行修改,同时对设计者或操作员输入的错误给以必要的提示和帮助。 3.2 阴极射线管由哪些部分组成?它们的功能分别是什么? 答:CRT主要由阴极、电平控制器(即控制极)、聚焦系统、加速系统、偏转系统和阳极荧光粉涂层组成,这六部分都在真空管内。 阴极(带负电荷)被灯丝加热后,发出电子并形成发散的电子云。这些电子被电子聚集透镜聚焦成很细的电子束,在带正高压的阳极(实际为与加速极连通的CRT屏幕内侧的石墨粉涂层,从高压入口引入阳极高电压)吸引下轰击荧光粉涂层,而形成亮点。亮点维持发光的时间一般为20~40mS。 电平控制器是用来控制电子束的强弱的,当加上正电压时,电子束就会大量通过,在屏幕上形成较亮的点,当控制电平加上负电压时,依据所加电压的大小,电子束被部分或全部阻截,通过的电子很少,屏幕上的点也就比较暗。所以改变阴极和 控制电平之间的电位差,就可调节电子 束的电流密度,改变所形成亮点的明暗 程度。 利用偏转系统(包括水平方向和 垂直方向的偏转板)可将电子束精确定 位在屏幕的任意位置上。只要根据图形 的几何坐标产生适当的水平和垂直偏转磁场(或水平和垂直偏转板静电场),图 2.2CRT原理图

计算机图形学基础第五章课后习题答案

5.3 试用中点Bresenham 算法画直线段的原理推导斜率在[-1,0]之间的直线段绘制过程(要求写清原理、误差函数、递推公式以及最终画图过程)。 解: 原理:每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别。 ∵斜率k 在[-1,0]之间 ∴x 为最大位移方向,每次在x 加1,而y 或减1或减0。 设直线段的方程F(x,y)=y-kx-b ,假设当前点是P(x i ,y i ),则下一点在P u (x i +1,y i )与P d (x i +1,y i -1)中选一。设M 为P u 和P d 的中点,则M 点的坐标为(x i +1,y i -0.5)。 构造误差判别式: d i =F(x M ,y M )=F(x i +1,y i -0.5)= y i -0.5-k(x i +1)-b 若d i ≥0,取P d (x i +1,y i -1); 若d i <0,取P u (x i +1,y i ); 即有x i+1=x i +1,y i+1=y i -1(d i ≥0)或y i (d i <0)。 误差函数的递推: d i ≥0时,取P d (x i +1,y i -1),再判断下一像素取哪个时,应计算 d i+1=F(x i +2,y i -1.5)= y i -1.5-k(x i +2)-b=d i -1-k ,增量为-1-k 。 d i <0时,取P u (x i +1,y i ),再判断下一像素取哪个时,应计算 d i+1=F(x i +2,y i -0.5)= y i -0.5-k(x i +2)-b=d i -k ,增量为-k 。 (x 0,y

计算机图形学 图形几何变换的实现

计算机图形学图形几何变换的实现

————————————————————————————————作者:————————————————————————————————日期:

实验五图形几何变换的实现 班级08信计2 学号89姓名徐阳分数 一、实验目的和要求: 1、掌握理解二维、三维变换的数学知识、变换原理、变换种类、变换方法;进一步理解采用齐次坐标进行二维、三维变换的必要性;利用Turboc实现二维、三维图形的基本变换和复合变换。 二、实验内容: 1、理解采用齐次坐标进行图形变换的必要性——变换的连续性,使复合变换得以实现。 2、掌握二维、三维图形基本变换(平移、缩放、对称、旋转、错切)的原理及数学公式。 3、利用Turboc实现二维、三维图形的基本变换、复合变换,在屏幕上显示变换过程或变换结果。 三、实验结果分析: 程序代码如下: /*二维图形(直线)平移变换*/ #include #include #include main() {int x0,y0,x1,y1,i,j; int a[3][3]; char key; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=0; for(i=0;i<3;i++) a[i][i]=1; int graphdriver=DETECT; int graphmode=0; initgraph(&graphdriver,&graphmode," "); cleardevice(); x0=250;y0=120;x1=350;y1=220; line(x0,y0,x1,y1); for( ; ;) {outtextxy(100,400,"<-:left->:right^:up v:down Esc->exit"); key=getch();

计算机图形学答案,第七章

习题 2.试证明下述几何变换的矩阵运算具有互换性: (1)两个连续的旋转变换;(2)两个连续的平移变换; (3)两个连续的变比例变换;(4)当比例系数相等时的旋转和比例变换; (1)证明:设第一次的旋转变换为: cosθ1 sinθ1 0 T1= - sinθ1 cosθ1 0 0 0 1 第二次的旋转变换为: Cosθ2 s inθ2 0 T2= - sinθ2 cosθ2 0 0 0 1 则因为 T1*T2 = cosθ1 sinθ1 0 cosθ2 sinθ2 0 - sinθ1 cosθ1 0 - sinθ2 cosθ2 0 0 0 1 0 0 1 = cosθ1 cosθ2+sinθ1 sinθ2 cosθ1 sinθ2+ sinθ1 cosθ2 0 - sinθ1 cosθ2- cosθ1 sinθ2 -sinθ1 sinθ1+ cosθ1 cosθ2 0 0 0 1 Cos(θ1+θ2)sin(θ1+θ2) 0 = - sin(θ1+θ2) cos(θ1+θ2) 0 0 0 1 cosθ2 sinθ2 0 cosθ1 sinθ1 0 T2*T1 = - sinθ2 cosθ2 0 - sinθ1 cosθ1 0 0 0 1 0 0 1

cosθ1 cosθ2+ sinθ1 sinθ2 cosθ1 sinθ2+ sinθ1 cosθ2 0 = - sinθ2cosθ1- cosθ2 sinθ1 -sinθ1 sinθ1+ cosθ1 cosθ2 0 0 0 1 Cos(θ1+θ2)sin(θ1+θ2) 0 = - sin(θ1+θ2) cos(θ1+θ2) 0 0 0 1 即T1*T2= T2*T1, 两个连续的旋转变换具有互换性 (2)证明:设第一次的平移变换为: 1 0 0 T1= 0 1 0 Tx1 Ty1 1 第二次的平移变换为: 1 0 0 T2= 0 1 0 Tx2 Ty2 1 则因为 T1*T2 = 1 0 0 1 0 0 0 1 0 0 1 0 Tx1 Ty1 1 Tx2 Ty2 1 1 0 0 = 0 1 0 Tx1+Tx2 Ty1+Ty2 1 而 T2*T1 = 1 0 0 1 0 0 0 1 0 0 1 0 Tx2 Ty2 1 Tx1 Ty1 1 1 0 0 = 0 1 0

计算机图形学简明教程张彩明版第6章习题参考答案

习题参考答案 6.1交互式绘图系统基本的交互任务有哪些? 答:1定位,2笔画,3定值,4选择,5拾取,6字符串,7三维交互。 6.2编写程序实现橡皮筋技术画直线和圆。 答:思想:首先将绘图模式设定为异或。 画直线时,点击鼠标左键,光标所在位置即为直线的起点,用鼠标牵引光标移动,当前光标所在位置即认为是直线的终点。光标从原位置移动到新位置时,首先在起点与原位置之间画一条直线,因为是异或模式,原有直线变为不可见,然后再在起点与新位置之间画一条直线,作为当前直线。 画圆时,点击鼠标左键,光标所在位置即为圆的圆心,用鼠标牵引光标移动,当前光标所在位置与圆心的距离即被认为是圆的半径。当鼠标牵引光标从原位置移动到新位置时,首先在以圆心与原位置的距离为半径画圆,因为是异或模式,原有的圆变为不可见,然后再以圆点与新位置的距离为半径画圆,作为当前圆。 6.3引力场是人机交互中的常见的辅助技术,它能给用户带来什么便利?设计人员在 设计引力场的时候需要注意什么问题? 答:用户用光标进行选图操作时,引力场的使用可使光标较容易地定位在选择区域小的图形上。设计人员在设计引力场时,引力场的大小要适中,外形应与其所含图形的外形一致。 6.4图形模式和图像模式下,拖拽的处理方法有什么不同? 答:图形模式下的拖拽是在异或的绘图模式下进行的。首先在原位置再次绘制要拖拽图形,由于自身异或的结果为空,原位置处的图形变为不可见,然后在新位置处绘制图形,实现了图形的拖拽。而图像模式下的拖拽,则是进行了图像的整体移动,即首先在要经过位置处按拖动图像大小保存原有屏幕图像,然后将拖动的图像整体移动到该位置,当图像离开该位置而移动到下一个新位置时,再恢复该位置保存的屏幕图像。图形模式不需要保存屏幕图像,只需在原位置重绘图形。 图像模式需要保存图像经过处的屏幕图像,并在移开后重新显示保存的屏幕图像。 6.5请叙述三种输入控制模式的流程。 答:请求模式下,用户在接收到应用程序请求后才输入数据;应用程序等待用户输入数据,输入结束,才进行处理。程序与输入串行运行。 样本模式下,应用程序与输入设备将各自独立运行,信息的输入和程序中的输入命令无关。设置为取样模式的设备将源源不断地把信息送入数据缓存区,取代原有数据,而不必等待应用程序的输入语句。当应用程序执行到输入指令时,就会把相应物理设备当前的输入值作为取样值加以处理。 事件模式下,输入过程和应用程序并发运作。所有输入数据(或事件)都被存放在一个事件队列中,该队列以事件发生的时间排序。用户在输入设备上完成

计算机图形学(第三版)孙家广课后习题答案

第一章:P56 1、列出在你过去学习工作中用过与计算机图形学有关的程序c语言: #include main() { int graphdriver = VGA, graphmode=VGAHI; initgraph(&graphdriver,&graphmode,””); setbkcolor(BLUE); setcolor(WHITE); setfillstyle(1,LIGHTRED); bar3d(100,200,400,350,100,1); floodfill(450,300,WHITE); floodfill(250,450,WHITE); setcolor(LIGHTGREEN); rectangle(450,400,500,450); floodfill(470,420,LIGHTGREEN); getch(); closegraph(); } JA V A语言: 例1、画点 Import java.io.*; Class point { int ax; int ay; int bx; int by; public point(int ax, int ay, int bx, int by) { float k ; //计算斜率 float b; k=(by-ay)/(bx-ax); b=ay-ax*k; system.out.println(“直线的方程为:y=”+k+”x”+”+”+b); } } 例2、画矩形 class DrawPanel extends Jpanel { public void paint(Graphics g)

计算机图形学第6章课后习题参考答案

第六章 1.请简述朗伯(Lambert )定律。 设物体表面在P 点法线为N ,从P 点指向光源的向量为 L ,两者夹角为θ,则点P 处漫反射光的强度为: I d =I p k d cos θ 式中 : I d ——表面漫反射光的亮度; I p ——入射光的光亮度; K d ——漫射系数(决定于表面材料及入射光的波长) 0≤K d ≤l ; θ——入射光线与法线间的夹角,0≤θ≤π/2。 并且,当物体表面垂直于入射光方向时(N 、L 方向一致)看上去最亮,而θ越来越大,接近90°时,则看上去越来越暗。 2.试写出实现哥罗德(Gouraud )明暗处理的算法伪代码。 deltaI = (i2 - i1) / (x2 - x1); for (xx = x1; xx < x2; xx++) { int offset = row * CScene.screenW + xx; if (z < CScene.zBuf[offset]) { CScene.zBuf[offset] = z; CScene.frameBuf[offset] = i1; } z += deltaZ; i1 += deltaI; } 3. 在Phong 模型n s p d p a a V R K I N L K I K I I )()(?+?+=中,三项分别表示何含义?公式 中的各个符号的含义指什么? 三项分别代表环境光、漫反射光和镜面反射光。a I 为环境光的反射光强,p I 为理想漫

反射光强,a K 为物体对环境光的反射系数,d K 为漫反射系数,s K 为镜面反射系数,n 为 高光指数,L 为光线方向,N 为法线方向,V 为视线方向,R 为光线的反射方向。 4.试写出实现Phong (冯)明暗方法的伪代码。 for (xx = x1; xx < x2; xx++) { int offset = row * CScene.screenW + xx; if (z < CScene.zBuf[offset]) { CScene.zBuf[offset] = z; pt = face.findPtInWC(u,v); float Ival = face.ptIntensity; CScene.frameBuf[offset] = Ival; } u += deltaU; z += deltaZ; p1.add(deltaPt); n1.add(deltaN); } 5.请简述自身阴影的生成方法。 自身阴影生成过程如下: (1)首先将视点置于光源位置,以光线照射方向作为观察方向,对在光照模型下的物体实施消隐算法,判别出在光照模型下的物体的“隐藏面”,并在数据文件中加以标识; (2)然后按实际的视点位置和观察方向,对物体实施消隐算法,生成真正消隐后的立体图形; (3)检索数据文件,核查消隐后生成的图形中,是否包含有在光照模型下的“隐藏面”。如有,则加以阴影符号标识这些面。 6.试写出光线跟踪算法的C 语言描述。 /*TraceRay 的三个参数分别是起点start ,跟踪方向direction 和已跟踪的深度depth ,返回的是光线direction 的颜色。*/ Color TraceRay(start,direction,depth) V ector start,direction; Int depth; { if (depth>MAX_DEPTH) color=black; else { 光线与物体求交,找出离start 最近的交点; if (无交点) color=背景色;

计算机图形学--图形几何变换的实现

实验五:图形几何变换的实现 班级08信计2 学号83 姓名王志超分数 一、实验目的和要求: 巩固所学理论知识,加深对二维变换的理解,加深理解利用变换矩阵可由简单图形得到复杂图形。加深对变换矩阵算法的理解。 编制利用旋转变换绘制齿轮的程序。编程实现变换矩阵算法,绘制给出形体的三视图。调试程序及分析运行结果。要求每位学生独立完成该实验,并上传实验报告。 二、实验内容: 在方向、尺寸和形状方面的变换是用改变对象坐标描述的几何变换来完成的。基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、旋转、缩放、反射、错切等。 用直线命令画出一个齿(或六边形的一半)→利用旋转变换或对称变换矩阵实现对其余部分的绘制→调试运行程序→输出图形→分析结果→结束。 编写三维变换算法程序→检查程序的正确性→分段调试程序→输入给出的三维形体各顶点的坐标→执行变换→对算法程序进行必要的调整→更换不同的形体数据继续变换→结束。 三、实验结果分析 . 1该程序实现了图形变换的实现。 2绘制图形,加强对知识的理解。/*二维图形(直线)平移变换*/ #include #include #include main() {int x0,y0,x1,y1,i,j; int a[3][3]; char key; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=0; for(i=0;i<3;i++) a[i][i]=1; int graphdriver=DETECT; int graphmode=0; initgraph(&graphdriver,&graphmode," "); cleardevice(); x0=250;y0=120;x1=350;y1=220; line(x0,y0,x1,y1);

计算机图形学课后题

1.1名词解释:图形、图像、点阵法、参数法。 1.2图形包括哪两方面的因素,在计算机中如何表示它们? 1.3什么叫计算机图形学?分析计算机图形学、数字图像处理和计算机视觉学科间的关系。 1.4有关计算机图形学的软件标准有哪些? 第二章 2.1名词解释:图形显示子系统、显示控制器、像素点、光点、屏幕分辨率、显示分辨率、存储分辨率、组合像素法、颜色位面法、颜色查找表、显示长宽比、屏幕坐标系 2.2一个交互式计算机图形系统必须具有哪几种功能?其结构如何? 2.5阴极射线管有哪几部门组成?它们的功能分别是什么? 2.9简述光栅扫描图形显示器的工作逻辑。 2.11基于光栅扫描的图形显示子系统有哪几个逻辑部件组成?它们的功能分别是什么?

5.1名词解释:区域填充、边界表示、4-邻接点、8-邻接点、4-连通区域、8-连通区域、走样、反走样、过取样、区域取样 5.2 分别利用DDA算法、中点Bresenham算法和Bresenham算法扫描转换直线段P1P2,其中P1为(0,0),P2为(8,6)。 5.6 利用中点Bresenham算法扫描转换圆心在原点、半径为8的圆。 5.11如图5-67所示多边形,若采用扫描转换转换算法(改进的有效边表算法)进行填充,试写出该多边形的ET表和当扫描线y=4时的有效边表(AET表,活性边表)。 5.12简述边缘填充算法,图示其填充过程。 5.13简述栅栏填充算法,图示其填充过程。 5.14简述边标志算法,图示其填充过程。 5.15比较边界填充算法和泛填充算法的异同。 5.16 简述4-连通和8-连通边界填充算法,图示其填充过程。 5.17 试给出沿扫描线填充水平像素段的8-连通边界填充算法,图示其填充过程。 5.18试给出沿扫描线填充水平像素段的4-连通泛充算法,图示其填充过程。 5.19分别构造边界表示的4-连通区域和8-连通区域,并说明两者的区别。 5.20多边形填充算法中如何进行内-外测试?图示奇-偶规则和非零环绕数规则进行内-外测试有何不同? 5.24常用反走样方法有哪些?各有什么特点? 第六章

计算机图形学考核题库

第一章 一、名词解释 图形;图像;点阵表示法;参数表示法; 二、选择题: 1. 下面哪个不是国际标准化组织(ISO)批准的图形标准。() A.GKS B.PHIGS C.CGM D.DXF 2. 下面哪一项不属于计算机图形学的应用范围?(B) A. 计算机动画; B. 从遥感图像中识别道路等线划数据; C. QuickTime技术; D. 影视三维动画制作 3. 关于计算机图形标准化的论述,哪个是正确的(); A. CGM和CGI是面向图形设备的接口标准; B. GKS、IGES、STEP均是ISO标准; C. IGES和STEP是数据模型和文件格式的标准; D. PHIGS具有模块化的功能结构; 4. 与计算机图形学相关的学科有____。 A. 图象处理 B. 测量技术 C. 模式识别 D. 计算几何 E. 生命科学 F. 分子生物学 三、判断题: 计算机图形学和图像处理是两个近似互逆的学科。[] 计算机图形学处理的最基本的图元是线段。[] 四、简答题: 图形包括哪两方面的要素,在计算机中如何表示它们? 阐述计算机图形学、数字图象处理和计算机视觉学科间的关系。图形学作为一个学科得以确立的标志性事件是什么? 试列举出几种图形学的软件标准?工业界事实上的标准有那些?举例说明计算机图形学有哪些应用范围,解决的问题是什么? 第二章 一、选择题: 1. 触摸屏是一种() A. 输入设备;

B. 输出设备; C. 既是输入设备,又是输出设备; D. 两者都不是; 2. 空间球最多能提供()个自由度; A. 一个; B. 三个; C. 五个; D. 六个; 3. 等离子显示器属于() A. 随机显示器; B. 光栅扫描显示器; C. 平板显示器; D. 液晶显示器; 4. 对于一个1024×1024存储分辩率的设备来说,当有8个位平面时,显示一帧图象所需要的内存为() A. 1M字节; B. 8M字节; C. 1M比特; D. 8M比特; 5. 分辨率为1024*1024的显示器,其位平面数为24,则帧缓存的字节数应为() A. 3MB; B. 2MB; C. 1MB; D. 512KB; 6. 下面对光栅扫描图形显示器描述正确的是:() A. 荧光粉涂层均匀离散分布; B. 是一种点画设备; C. 电子束从顶到底扫描; D. 通过控制电子束的强弱实现色彩的强弱; 7. 个逻辑输入设备可以对应()物理输入设备。 A. 仅一个 B. 仅二个 C. 多个 D. 以上都不是 8. 彩色阴极射线管的三基色指得是:() A. 绿色; B. 黄色; C. 蓝色; D. 红色; 9. 计算机显示设备一般使用的颜色模型是() A. RGB B. HSV C. CMY D. 上述都不是

《计算机图形学》答案,第七章

7.6 习题 2.试证明下述几何变换的矩阵运算具有互换性: (1)两个连续的旋转变换;(2)两个连续的平移变换; (3)两个连续的变比例变换;(4)当比例系数相等时的旋转和比例变换;(1)证明:设第一次的旋转变换为: cosθ1 sinθ1 0 T1= - sinθ1 cosθ1 0 0 0 1 第二次的旋转变换为: Cosθ2 sinθ20 T2= - sinθ2 cosθ2 0 0 0 1 则因为 T1*T2 = cosθ1 sinθ1 0 cosθ2 sinθ2 0 - sinθ1 cosθ1 0 - sinθ2 cosθ2 0 0 0 1 0 0 1 = cosθ1 cosθ2+sinθ1 sinθ2 cosθ1 sinθ2+ sinθ1 cosθ2

- sinθ1 cosθ2- cosθ1 sinθ2 -sinθ1 sinθ1+ cosθ1 cosθ2 0 0 0 1 Cos(θ1+θ2)sin(θ1+θ2)0 = - sin(θ1+θ2)cos(θ1+θ2)0 0 0 1 cosθ2 sinθ2 0 cosθ1 sinθ1 0 T2*T1 = - sinθ2 cosθ2 0 - sinθ1 cosθ1 0 0 0 1 0 0 1 cosθ1 cosθ2+ sinθ1 sinθ2 cosθ1 sinθ2+ sinθ1 cosθ2 0 = - sinθ2cosθ1- cosθ2 sinθ1 -sinθ1 sinθ1+ cosθ1 cosθ2 0 0 0 1

Cos(θ1+θ2)sin(θ1+θ2)0 = - sin(θ1+θ2)cos(θ1+θ2)0 0 0 1即T1*T2= T2*T1, 两个连续的旋转变换具有互换性 (2)证明:设第一次的平移变换为: 1 0 0 T1= 0 1 0 Tx1 Ty1 1 第二次的平移变换为: 1 0 0 T2= 0 1 0 Tx2 Ty2 1 则因为 T1*T2 = 1 0 0 1 0 0 0 1 0 0 1 0 Tx1 Ty1 1 Tx2 Ty2 1 1 0 0

相关主题
文本预览
相关文档 最新文档