计算机图形学课程设计报告简单图形的绘制-
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机图形学》课程设计
报告
学生姓名:学号:
学院:
班级:
题目: 简单图形的绘制
职称2015年7月1日
目录
目录............................................................................................... I
一、选题背景 (1)
二、算法设计 (2)
2.1 绘制直线、圆、椭圆、抛物线 (2)
2.1.1 绘制直线 (2)
2.1.2 绘制圆 (2)
2.1.3 绘制椭圆 (2)
2.1.4 绘制抛物线 (2)
2.2 三维几何变换 (2)
三、程序及功能说明 (5)
3.1 绘制直线、圆、椭圆、抛物线...... (5)
3.1.1 绘制直线 (5)
3.1.2 绘制圆 (5)
3.1.3 绘制椭圆 (5)
3.1.4 绘制抛物线 (6)
3.2 图形的平移 (6)
3.3 图形的旋转 (6)
3.4 图形的缩放 (7)
四、结果分析 (7)
4.1 绘制直线、圆、椭圆、抛物线 (7)
4.1.1 直线 (7)
4.1.2 圆 (8)
4.1.3 椭圆 (8)
4.1.4 抛物线 (8)
4.2 图形的平移 (9)
4.3 图形的旋转 (10)
4.4 图形的缩放 (11)
五、总结 (10)
六、课程设计心得体会 (14)
参考文献 (15)
源程序 (16)
一、选题背景
二、算法设计
2.1 绘制直线、圆、椭圆、抛物线
2.1.1 绘制直线
通过两个点的坐标来绘制直线。计算机图形学中二维图形在显示输出之前需要扫描转换,生成直线的算法一般有DDA 算法和中点算法。
2.1.2 绘制圆
通过运用圆的参数方程cos ;sin x a r y b r θθ=+=+来绘制圆的图形,其中[0,2]θπ∈,
(a,b )为圆心,r 为半径,运用参数方程,只需要确定半径的长度和圆心的位置,即可绘制出圆。
2.1.3 绘制椭圆
通过运用椭圆的参数方程cos ;sin x a y b θθ==来绘制椭圆的图形,其中
[0,2]θπ∈,是已知的变量,a ,b 分别为长半轴,短半轴,当确定a 和b 后,通过参数方程即可得到这个椭圆的方程。
2.1.4 绘制抛物线
根据点绘制抛物线图像是通过拟合完成,根据三个点的坐标,通过数据拟合,得到经过这三个点的函数关系式,从而再根据这个函数关系式绘制出抛物线上其他的点,形成一条连续的抛物线;或直接根据已知函数绘制图像是通过已知函数画出图像。
2.2 三维几何变换
三维几何变换是二维几何变换的推广。二维几何变换在齐次坐标空间中
可用3⨯3的变换矩阵表示,类似的,三维几何变换在齐次坐标空间中可用4⨯4的变换矩阵表示。三维空间中的点(),,x y z 的齐次坐标定义为(),,h h h x y z ,其中,h 为不等与零的任意常数,h x hx =,h y hy =,h z hz =。亦即点(),,x y z 对应4维齐次坐标空间的一条直线:
h h
h h x hx y hy z hz w hy
=⎧⎪=⎪⎨=⎪⎪=⎩ (2.2.1)
通常为了简单起见,取(),,,1x y z 为(),,x y z 的齐次坐标。 (1)平移变换
平移变换将点(),,P x y z 在三个坐标轴方向上分别移动距离,,x y z t t t ,得到新的一点(),,P x y z '''',它们之间的关系表示为:P P T '=+,其中
,,T
x y z T t t t ⎡⎤=⎣⎦。
三维平移变换在其次坐标下的矩阵表示为:
(),,1000100010
001x y z x y t t t z t t T t ⎡⎤⎢⎥⎢⎥=⎢⎥
⎢⎥
⎣⎦
(2.2.2) (2)放缩变换
三维放缩变换在齐次坐标下的矩阵表示:
(),,0000
000000
1x y z x y s s s z s s S s ⎡⎤
⎢⎥⎢
⎥=⎢⎥⎢⎥⎣⎦
(2.2.3) 此变换的参照点为坐标原点,我们可以按下面步骤建立关于空间任一参
照点(),,r r r r P x y z 的缩放变换:
(1)平移使r P 落于原点,变换为(),,r r r T x y z --; (2)进行放缩变换()
,,x y z S s s s ;
(3)平移r P 回到原先的位置,变换为(),,r r r T x y z 。 从而关于参照点r P 的缩放变换();,,r r r r S P x y z 为
()()()();,,,,,,,,r r r r r r r x y z r r r S P x y z T x y z S s s s T x y z =-- (2.2.4) (3)旋转变换
给定一点(),,P x y z ,首先将P 点y 和z 坐标表示成极坐标,即
()(),,,cos ,sin x y z x r r ϕϕ=
,其中r =
。将P 点绕x 轴旋转θ角后,得到
(),,P x y z ''''。易知:
()()cos sin x x y r z r ϕθϕθ⎧'=⎪
'=+⎨⎪'
=+⎩ (2.2.5)
上式矩阵形式为:
1
000cos sin 0sin cos x x y y z z θθθθ'⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥
'=-⎢⎥⎢⎥⎢⎥'⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ (2.2.6)
从而绕x 轴旋转θ角的变换在齐次坐标下的矩阵表示为:
()1
0000cos sin 00cos sin 00
00
1x R θ
θθθθ⎡⎤
⎢⎥-⎢
⎥=⎢⎥⎢
⎥⎣⎦
(2.2.7) 类似的,绕y 轴和z 轴的旋转θ的变换矩阵分别为:
()cos 0sin 00
100sin 0cos 00
1y R θθθθθ-⎡⎤⎢⎥⎢
⎥=⎢⎥⎢⎥⎣⎦
(2.2.8) ()cos sin 00sin cos 0000100
01z R θθθθθ-⎡⎤⎢⎥⎢⎥=⎢⎥
⎢⎥⎣⎦
(2.2.9) 如果要绕空间任意轴01P P →
旋转θ角,可按如下步骤实现:
(1)以0P 为原点O ,01P P →
为Oz 轴建立新的坐标系Ox yz ;
(2)求出从坐标系Oxyz 到坐标系Ox yz 的变换M ;
(3)将图形对象变换到坐标系Ox yz 中;