计算机图形学几何变换公式

计算机图形学几何变换公式
计算机图形学几何变换公式

实验步骤算法分析:

图形变换是指对图形的几何信息经过几何变换后产生新的图形。

图形变换既可以看作坐标系不动而图形变动,变动后的图形在坐标系

中的坐标值发生变化;也可以看作图形不动而坐标系变动,变动后,

该图形在新的坐标系下具有新的坐标值。

设(x,y)为图形原坐标值,经几何变换后坐标值变为(**

,

x y)。

以下为四种常用的几何变换公式。

(a) 平移变换:

平移变换在前面的任务中已经用到过,它的变换公式为:

[]

**

100

,,1,,1010,,1

1

x y

x y

x y x y x T y T

T T

??

??

????

==++

????

??

??

??

(b) 旋转变换:

绕原点旋转的变换公式为:

[][] **

cos sin0

,,1,,1sin cos0cos sin,sin cos,1

001

x y x y x y x y

θθ

θθθθθθ

??

??

??=-=?-??+?

????

??

??

(c) 放缩变换:

[]

**

00

,,1,,100,,1

001

x

y x y

S

x y x y S S x S y

??

??

????

==??

??

????

??

??

几种变换可以组合在一起形成复合变换。例如平移变换与旋

转变换组合得到:

(d) 相对点

00

(,)

x y的旋转变换:

[]

**

0000

cos sin0 ,,1,,1sin cos0

(1cos)sin(1cos)sin1 x y x y

x y y x

θθ

θθ

θθθθ

??

????=-

????

??

-?+?-?-?

??

ii、算法程序:

void CZhouView::pingyi()

{

CClientDC dc(this);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y);

dc.MoveTo(m_nPoint1.x+100,m_nPoint1.y+100);

dc.LineTo(m_nPoint2.x+100,m_nPoint2.y+100);

}

void CZhouView::xuanzhuan()

{

CClientDC dc(this);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y);

dc.MoveTo((m_nPoint1.x*cos(0.5))-(m_nPoint1.y*sin(0.5)),(m_nPoint 1.x*sin(0.5))+(m_nPoint1.y*cos(0.5)));

dc.LineTo((m_nPoint2.x*cos(0.5))-(m_nPoint2.y*sin(0.5)),(m_nPoint2 .x*sin(0.5))+(m_nPoint2.y*cos(0.5)));

}

void CZhouView::bili()

{

CClientDC dc(this);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y);

dc.MoveTo(m_nPoint1.x*2,m_nPoint1.y*2);

dc.LineTo(m_nPoint2.x*2,m_nPoint2.y*2);

}

void CZhouView::XCQ()

{

CClientDC dc(this);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x+100,m_nPoint2.y);

}

void CZhouView::DC()

{

CClientDC dc(this);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y);

dc.MoveTo(m_nPoint1.y,m_nPoint1.x);

dc.LineTo(m_nPoint2.y,m_nPoint2.x);

}

dc.MoveTo(m_nPoint1.y,m_nPoint1.x);

dc.LineTo(m_nPoint2.y,m_nPoint2.x);

}

void CZhouView::YCQ()

{

CClientDC dc(this);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y);

dc.MoveTo(m_nPoint1.x,m_nPoint1.y);

dc.LineTo(m_nPoint2.x,m_nPoint2.y+100); }

//OnLButtonUp(UINT nFlags, CPoint point) case 8:

pingyi();

break;

case 9:

xuanzhuan();

break;

case 10:

bili();

break;

case 11:

XCQ();

break;

case 12:

YCQ();

break;

case 13:

DC();

break;

编译,运行:平移:

最新几何图形计算公式汇总

小学数学图形计算公式 (C :周长 S :面积 a :边长、长 、底、上底、棱长 b: 宽 、下底 h: 高 d :直径 r :半径 V:体积 ) 1、长方形周长=(长+宽)×2 C=2(a+b) 长方形面积=长×宽 S=ab 2、正方形周长=边长×4 C = 4a 正方形面积=边长×边长 S = a×a = a 2 3、平行四边形面积=底×高 s=ah 4、三角形面积=底×高÷2 s=ah÷2 三角形高=面积 ×2÷底 h = 2s ÷a 三角形底=面积 ×2÷高 5、梯形面积=(上底+下底)×高÷2 s=(a+b)× h÷2 6、圆的周长=直径×圆周率=2×圆周率×半径 C=лd=2лr d=C π r=C 2π 圆的面积=半径×半径×圆周率 S = πr 2 环形的面积=外圆的面积-内圆的面积 S 环=π(R 2-r 2) 7、长方体的棱长总和 = 长×4 + 宽×4 + 高×4 =(长 + 宽 + 高)×4 长方体表面积=(长×宽+长×高+宽×高)×2 S = 2( ab + ah + bh ) 长方体体积=长×宽×高 = 底面积×高 V=abh = sh 8、正方体的棱长总和=棱长×12 正方体表面积=棱长×棱长×6 S 表 = a×a×6 = 6a 2 正方体体积=棱长×棱长×棱长=底面积×高 V = a×a×a = a 3 = sh 9、圆柱的侧面积=底面周长×高 s 侧=ch=πdh=2πrh 圆柱表面积=侧面积+底面积×2 s 表=s 侧+s 底×2 圆柱体积=底面积×高 V 柱 = sh =πr 2h 10、圆锥体体积=底面积×高×13 V 锥 = 13 sh = 1 3 πr 2h 小学数学图形计算公式 (C :周长 S :面积 a :边长、长 、底、上底、棱长 b: 宽 、下底 h: 高 d :直径 r :半径 V:体积 ) 1、长方形周长=(长+宽)×2 C=2(a+b) 长方形面积=长×宽 S=ab 2、正方形周长=边长×4 C = 4a 正方形面积=边长×边长 S = a×a = a 2 3、平行四边形面积=底×高 s=ah 4、三角形面积=底×高÷2 s=ah÷2 三角形高=面积 ×2÷底 h = 2s ÷a 三角形底=面积 ×2÷高 5、梯形面积=(上底+下底)×高÷2 s=(a+b)× h÷2 6、圆的周长=直径×圆周率=2×圆周率×半径 C=лd=2лr d=C π r=C 2π 圆的面积=半径×半径×圆周率 S = πr 2 环形的面积=外圆的面积-内圆的面积 S 环=π(R 2-r 2) 7、长方体的棱长总和 = 长×4 + 宽×4 + 高×4 =(长 + 宽 + 高)×4 长方体表面积=(长×宽+长×高+宽×高)×2 S = 2( ab + ah + bh ) 长方体体积=长×宽×高 = 底面积×高 V=abh = sh 8、正方体的棱长总和=棱长×12 正方体表面积=棱长×棱长×6 S 表 = a×a×6 = 6a 2 正方体体积=棱长×棱长×棱长=底面积×高 V = a×a×a = a 3 = sh 9、圆柱的侧面积=底面周长×高 s 侧=ch=πdh=2πrh 圆柱表面积=侧面积+底面积×2 s 表=s 侧+s 底×2 圆柱体积=底面积×高 V 柱 = sh =πr 2h 10、圆锥体体积=底面积×高×13 V 锥 = 13 sh = 1 3 πr 2h 中小学教师信息技术考试理论试题 一选择题(40分,每一题1分) 1.下面选项是对信息的实质的理解和说明,其中错误的选项是________. A. 信息就是计算机的处理对象 B. 信息就是关于事物运动的状态和规律的知识 C. 信息就是信息,既不是物质,也不是能量 D. 信息就是人类同外部世界进行交换的内容的名称 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

常见的几何体计算公式

常见几何体的面积、体积求法与应用 要计算某材料的密度、重量,研究某物体性能及其物质结构等,特别对于机械专业的学生,必须要求工件的面积、体积等,若按课本上公式来计算,而课本上公式不统一,不好记住,并且很繁杂,应用时要找公式,对号入座很麻烦。笔者在教学与实践中总结出一种计算常见几何体的面积、体积方法。其公式统一,容易记住,且计算简单。对技校学生来说,排除大部分繁琐的概念、定理,以及公式的推导应用等。 由统计学中的用加权平均数对估计未来很准确。比如,估计某商品下个月销售量,若去年平均销售量为y ,设本月权为4,上月权数为1,下月权数为1,各月权数分别乘销售量相加后除以6等于y 。这样能准确地确定下个月销售量。能不能以这种思想方法用到求几何体的面积、体积呢?通过推导与实践,对于常见的几何体确实可用这种方法来求得其面积、体积。下面分别说明求常见几何体的面积、体积统一公式的正确性与可用性。 常见几何体的面积、体积统一公式: ) 4(6 )4(621002100S S S h V C C C h A ++= ++= (其中A 为几何体侧面积,C 0为上底面周长,C 1为中间横截面周长,C 2 为下底面周长,V 为几何体体积,S 0为上底面面积,S 1为中间横截面面积,S 2为下底面面积,h 为高,h 0为斜高或母线长。注:中间横截面为上、下底等距离的截面。) 一、棱柱、棱锥、棱台、圆柱、圆锥、圆台的面积 、体积用统一公式的正确性 1、棱柱: ⑴据棱柱上底周长、下底周长、中间横截面周长相等,即2 1 C C C ==, 可得: 2020210066 )4(6 C h C h C C C h =?= ++,这与课本中的棱柱侧面积公式等同。 以下每个几何体都能推得与课本中相应公式等同,说明这统一公式的正确性。 ⑵据棱柱上底面、下底面、中间横截面相等,可知:2 1 S S S ==,即: h S S S S h S S S h V 2222210)4(6 )4(6 =++= ++= 。 2、棱锥 ⑴设底边长为a 2,边数为n ,斜高为h 0,侧面三角形中位线为a 1,则

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

第一章绪论 概念:计算机图形学、图形、图像、点阵法、参数法、 图形的几何要素、非几何要素、数字图像处理; 计算机图形学和计算机视觉的概念及三者之间的关系; 计算机图形系统的功能、计算机图形系统的总体结构。 第二章图形设备 图形输入设备:有哪些。 图形显示设备: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坐标向屏幕坐标的平移

各种几何图形计算公式.

不四 s = —+ 爲Mu = =££sin B 2 2 边形 不四 平边 行形 a. b. c. d —各边长險、爲rsi s -面积右、必一对角线 [H^hY^bh + cH 2 H, 曰-面枳 € _ a£K abc % 4」戸(尹_&)〔戸 _&)(尹_亡) P-三边和之半 s-三角形囲积 艮-三角形外接圆半径 外 切 角 形 直 角 角 形 尸=匚石一刁 ■S _ 血 P V F P-三边和之半 2 -三角形面积 r -三角形内切圆半径 以=胪亠阱弘b -直角边 c = 3十戸? _斜边 1 , "尹占-面积 c -J/ ■n?十2&曰a'b^ -各边长

隅 角 0 ]073t a s - 面积 d -短轴D - 长轴匸-短 半轴 R -长半轴 扇 形 ISO* -°01745^ 亠二喫 2 360 半径 圆心角= 0.008727r^* 弓-面积

正 六 E 体 正 十 _____ L 面 体 正 多 边 形 (六个正方形 ) 口 -边 数 a - 一边之长 R -外接圆半径 r 内切圆半径 e-巒 财之 1D 心角 顶 用 官-面 积 D -周良 tzFhj u 〔教目) F=6a 2 棱顶点 12 3 丁 = / C 数 目) 稜腆点 30 20 正 立 方 体 截 头 直 锥 (十二个五甬形)爲 柱 卩二 20.6457^ r= 7.663 la 5 F = 6a 2 C L □ -边 长 d-对角线长 = 7^" = 1732^1 。=扌心1 +比) 尸=#餉+宀) + s i 十巧 衍“2 —两端周 围的长 £ L-S 2 —两端的 面积 $二gk 十邑+ J 远”叼) C* P -宜截断面周长 F = ^/ + 2s h - 高 V = sh 目-底面积

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

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

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

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

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

实验五图形几何变换的实现 班级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();

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

第一章: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常用反走样方法有哪些?各有什么特点? 第六章

各种几何图形面积和周长公式

正方形 面积:边长×边长 周长:边长×4 长方形 面积:长×宽 周长:(长+宽)*2 平行四边形 面积=底边*高/2 周长=(底+高)×2 三角形 面积S=√p(p-a)(p-b)(p-c), p=(a+b+c)/2,为三角形三边 周长c=a+b+c 梯形 面积={(上底+下底)×高}÷2周长=四边之和 圆形 面积=πR2 周长=2πR (R为半径) 椭圆形 面积=A = PI * 半长轴长 * 半短轴长

周长= 4A * SQRT(1-E^SIN^T)的(0 - π/2)积分, 其中A为椭圆长轴,E为离心率精确计算要用到积分或无穷级数的求和 半圆形 周长=2R(丌+1) 面积=(丌R的平方)/2 正多边形 面积: 正多边形内角计算公式与半径无关 要已知正多边形边数为N 内角和=180(N-2) 半径为R 圆的内接三角形面积公式:(3倍根号3)除以4再乘以R方 外切三角形面积公式:3倍根号3 R方 外切正方形:4R方 内接正方形:2R方 五边形以上的就分割成等边三角形再算 内角和公式——(n-2)*180` 我们都知道已知A(x1,y1)、B(x2,y2)、C(x3,y3)三点的面积公式为 |x1 x2 x3| S(A,B,C) = |y1 y2 y3| * = [(x1-x3)*(y2-y3) - (x2-x3)*(y1-y3)]* |1 1 1 | (当三点为逆时针时为正,顺时针则为负的) 对多边形A1A2A3、、、An(顺或逆时针都可以),设平面上有任意的一点P,则有:S(A1,A2,A3,、、、,An) = abs(S(P,A1,A2) + S(P,A2,A3)+、、、+S(P,An,A1))

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

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

一、问答题(25 分,每题 5 分) 1 、列举三种常见的颜色模型,简要说明其原理和特点。 答:所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某 颜色。常用的颜色模型有 R G B 、 C M Y 、H S V 等。 R G B 颜色模型通常用于彩色阴极射线管等彩色光栅图形显示设备中,它 多、最熟悉的颜色模型。它采用三维直角坐标系,红、绿、蓝为原色,各个 可以产生复合色 C MY 颜色模型以红、绿、蓝的补色青( C yan )、品红( Magenta )、黄( Yello w )为原色 构成,常用于从白光中滤去某种颜色,又被称为减性原色系统。印刷行业中 C MY 颜色模型。 H S V ( H ue , Saturation , Value )颜色模型是面向用户的,对应于画家的配色方

习题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)。

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

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

中小学几何图形周长、面积、体积计算公式汇总表

中小学几何图形 重要说明:周长——外周围的长度(单位:如m);体积(容积)——空间(单位:如m3)面积——平面(单位:如m2);侧面积——除底面外的表面积(单位:如m2) 一、平面图形: 1、长方形的周长=(长+宽)×2 C=(a+b)×2 面积=长×宽S=ab 2、正方形的周长=边长×4 C=4a 面积=边长×边长S=a.a= a2 3、三角形的周长=三边长之和C=a+b+d 面积=底×高÷2 S=ah÷2 4、平行四边形的周长=相邻两边之和的2倍C=(a+b)×2 ;面积=一边×这边上的高S=ah 5、梯形的周长=四边长之和C=a+b+d+e 面积=(上底+下底)×高÷2 S=(a+b)h÷2 6、菱形周长=边长×4 C=4a 面积=对角线乘积的一半s=ab÷2 7、圆的周长=圆周率×直径=圆周率×半径×2 c=πd =2πr ;面积=圆周率×半径的平方S=π r2 环形的面积=π×(大半径的平方-小半径的平方) 半圆的周长= 2πr/2 + 直径= πr + 2r 8、扇形周长=半径×2+弧长 C=2r+(n÷360)πR=2r+(n÷180)πr 面积S=πR2n÷360=I/2lR (其中l为弧长) 二、立体图形: 1、长方体的表面积=(长×宽+长×高+宽×高)×2 体积=长×宽×高V =abh 2、正方体的表面积=棱长×棱长×6 S =6a 体积=棱长×棱长×棱长V=a.a .a=a 3 3、圆柱的侧面积=底面圆的周长×高S=ch ;体积=底面积×高V=Sh V=πr h=π(d÷2) h=π(C÷2÷π) h 表面积=上下底面面积+侧面积S=2πr +2πrh=2π(d÷2) +2π(d÷2)h=2π(C÷2÷π) +Ch 4、圆锥的体积=底面积×高÷3 V=Sh÷3=πr h÷3=π(d÷2) h÷3=π(C÷2÷π) h÷3 附: 1、长方体(正方体、圆柱体)的体积=底面积×高V=Sh=π r2 h 2、弧度为弧长与半径之比。

计算机图形学-作业答案-几何变换

几何变换:作业共10题,每题10分,总分100分 1. 有如下使用矩阵表示的三维几何变换: ???? ????????????????-=??????????z y x z y x 100001010''' 辅助说明(不计成绩): 1)3*3矩阵的3个列向量与3个行向量分别形成两个基向量集,即两个坐标系,这里分别称为列坐标系与行坐标系。 2)在矩阵中,列坐标系中各基向量(矩阵的3个列向量)的坐标是在假定行坐标系为单位正交坐标系(基向量的模为1,且基向量两两正交)前提下,由行坐标系测量的坐标;相似地,行坐标系中各基向量(矩阵的3个行向量)的坐标是在假定列坐标系为单位正交坐标系的前提下,由列坐标系测量的坐标。 3)对于此题给出的矩阵,假定行坐标系单位正交,则测量出的列坐标系也单位正交;反之,假定列坐标系单位正交,则测量出的行坐标系也单位正交;此矩阵描述的是两个单位正交坐标系间的坐标系变换,矩阵是一个单位正交阵(旋转矩阵)。 (1) 试解释其中的一种运算:???? ? ?????+??????????-+???? ? ?????=???? ? ?????100001010'''z y x z y x ; 答: 1)使用考察向量在列坐标系下测量的坐标作为系数(线性组合中的各个系数x 、 y 、z 用于调节各列基向量的模,实质上这些系数是坐标变换前,考察向量在列 坐标系下测量的坐标,否则这样的线性组合运算无意义),对矩阵中列坐标系的3个基向量实施线性组合,重新组合为考察向量后(这里理解为向量不变,坐标系、坐标变化),其坐标变换为行坐标系下测量的坐标; 2)此运算的含义是已知考察向量的列坐标系坐标,以坐标和基向量(矩阵中的列)为基础,使用线性组合得到考察向量;(简言之,由坐标计算得到向量) 3)由于3个基向量的坐标为行坐标系下的坐标,则组合后的组合向量坐标亦为行坐标系下的坐标,由此,考察向量的坐标从列坐标系坐标变换到行坐标系坐

相关文档
最新文档