计算机图形学实验报告

发布时间:2017-05-27 10:18:29   来源:文档文库   
字号:

****计算机学院

《计算机图形学》课程报告

院:计算机科学与工程

业:计算机科学与技术

级:***

号:**********

名:******

绩:


一、了解OpenGL编程步骤及直线生成算法

3.1理解OpenGL的程序结构:

掌握OpenGL提供的基本图形函数,尤其是生成简单几何元素的函数。

3.1基本数据结构描述:

逐点比较法:

A(200,200)B(2000,2000)

DDA

A(200,200)B(2000,2000)

Brasenham:

A(0,0)B(200,200)

3.2算法描述:

逐点比较法:

对于第一象限直线OA上任一点(X,Y):X/Y = Xe/Ye  

若点为PiXiYi),则该点的偏差函数Fi可表示为

Fi= 0,表示加工点位于直线上;

Fi> 0,表示加工点位于直线上方;

Fi< 0,表示加工点位于直线下方。

2)偏差函数字的递推计算

采用偏差函数的递推式(迭代式)

既由前一点计算后一点

 

Fi =Yi Xe -XiYe

Fi>=0,规定向 +X 方向走一步

      Xi+1 = Xi +1

      Fi+1 = XeYi –Ye(Xi +1)=Fi –Ye

 

 

Fi<0,规定 +Y 方向走一步,则有

      Yi+1 = Yi +1

      Fi+1 = Xe(Yi +1)-YeXi =Fi +Xe

3)终点判别

直线插补的终点判别可采用三种方法。

1)判断插补或进给的总步数;

2)分别判断各坐标轴的进给步数;

3)仅判断进给步数较多的坐标轴的进给步数。  

DDA算法:

(1)已知过端点P0 (x0, y0), P1(x1, y1)的直线段L y=kx+b

(2)直线斜率为 :k=(y1-y0)/(x1-x0)

(3)Xi+1=Xi+ε*ΔX

Yi+1=Yi+ε*ΔY 其中,

ε=1/max(|ΔX|,|ΔY|)

max(|ΔX|,|ΔY|)= |ΔX| (|k|<=1)

|ΔY| (|k|>1)

(4)|k|<=1时:Xi+1=Xi+(-)1

Yi+1=Yi+(-)k

|k|>1时:Xi+1=Xi+(-)1/k

Yi+1=Yi+(-)1

Brasenham算法:

设直线起点P0x0y0),终点P1x1y1),令e0=2 y - x作为判别函数,根据e0的正负,可以确定走向:

e00Y 方向不走步

e0=0Y方向走一步

递推公式:

对于第i +1步(i=0l2……n

如果ei 0,则Y方向走一步:

Xil Xi+1 Yi1 =Yi+1

ei1= ei + 2 y - 2 x

如果ei0,则Y方向不走步:

Xil Xi+1 Yi1 =Yi

ei1= ei+ 2 y

3.3结果显示:

逐点比较法(图1.1):

1.1

DDA算法(图2):

1.2

Brasenham算法(图3):

1.3

二、二维图形几何变换

1.1基本数据结构描述:

点坐标:

A0(100.00,0.00) B0(50.00,86.60) C0(-50.00,86.60) D0(-100.00,0.00) E0(-50.00,-86.60) F0(50.00,-86.60)

A1(81.38,29.62) B1(15.04,85.29) C1(-66.34,55.67) D1(-81.38,-29.62) E1(-15.04,-85.29) F1(66.34,-55.67)

A2(57.45,48.21) B2(-13.02,73.86) C2(-70.48,25.65) D2(-57.45,-48.21) E2(13.02,-73.86) F2(70.48,-25.65)

A3(32.48,56.25) B3(-32.48,56.25) C3(-64.95,0.00) D3(-32.48,-56.25) E3(32.48,-56.25) F3(64.95,-0.00)

A4(9.77,55.40) B4(-43.09,36.16) C4(-52.86,-19.24) D4(-9.77,-55.40) E4(43.09,-36.16) F4(52.86,19.24)

A5(-8.46,47.97) B5(-45.78,16.66) C5(-37.32,-31.31) D5(8.46,-47.97) E5(45.78,-16.66) F5(37.32,31.31)

A6(-21.09,36.54) B6(-42.19,0.00) C6(-21.09,-36.54) D6(21.09,-36.54) E6(42.19,-0.00) F6(21.09,36.54)

A7(-27.99,23.48) B7(-34.33,-12.50) C7(-6.34,-35.98) D7(27.99,-23.48) E7(34.33,12.50) F7(6.34,35.98)

A8(-29.73,10.82) B8(-24.24,-20.34) C8(5.49,-31.16) D8(29.73,-10.82) E8(24.24,20.34) F8(-5.49,31.16)

A9(-27.40,0.00) B9(-13.70,-23.73) C9(13.70,-23.73) D9(27.40,-0.00) E9(13.70,23.73) F9(-13.70,23.73)

1.2算法描述:

在齐次坐标理论下,二维图形几何变换矩阵可用下式表示:

平移变换:[x* y* 1] =[x y 1] * =[t*x s*y 1]

旋转变换:在 平面上的二维图形饶原点逆时针旋转Ө角,变换矩阵为

[x* y* 1]=[x y 1] * = [x*cosө-y*sinө]

比例变换:[x* y* 1]=[x y 1] * =[m+x n+y 1]

错切变换:

 

根据上述矩阵假设P(x1, y1)为错切变换之前的像素点,则错切变换以后对应的像素

P’(x2, y2)X方向错切变换时:

Y方向错切变换时:

1.3结果显示:

原始图形(图2.1):

2.1

X方向向左移动100个单位,Y方向向上移动100个单位(图2.2):

2.2

原地顺时针旋转30度(图2.3):

2.3

原地缩小1倍(图2.4)和放大1倍(图2.5):

2.4

2.5

错切:

2.6

三、三维图形几何变换

2.1基本数据结构描述:

顶点坐标:

{ -X, 0.0, Z }, { X, 0.0, Z }, { -X, 0.0, -Z }, { X, 0.0, -Z }

{ 0.0, Z, X }, { 0.0, Z, -X }, { 0.0, -Z, X }, { 0.0, -Z, -X }

{ Z, X, 0.0 }, { -Z, X, 0.0 }, { Z, -X, 0.0 }, { -Z, -X, 0.0 }

面表:

{1, 4, 0}, {4, 9, 0}, {4, 5, 9}, {8, 5, 4}, {1, 8, 4}

{1, 10, 8}, {10, 3, 8}, {8, 3, 5}, {3, 2, 5}, {3, 7, 2}

{3, 10, 7}, {10, 6, 7}, {6, 11, 7}, {6, 0, 11}, {6, 1, 0}

{10, 1, 6}, {11, 0, 9}, {2, 11, 9}, {5, 2, 9}, {11, 2, 7}

2.2算法描述:

平移:

Tx,Ty,Tz是物体在三个坐标方向上的移动量,则有公式:

      x′=xTx

      y′=yTy

      z′=zTz

矩阵运算表达为:

x  y  z  1]=[x  y  z  1  

简记为:T(Tx,Ty,Tz)

 

旋转:

旋转分为三种基本旋转:绕z轴旋转,绕x轴旋转,绕y轴旋转。在下述旋转变换公式中,设旋转的参考点在所绕的轴上,绕轴转θ角,方向是从轴所指处往原点看的逆时针方向。                    

z轴旋转的公式为:

         x′=xcosθ-ysinθ

         y′=xsinθ+ycosθ

         z′=z

矩阵运算的表达为:

x  y  z  1]=[x  y  z  1 

简记为Rz(θ)

x轴旋转的公式为:

         x′=x

         y′=ycosθ-zsinθ

         z′=ysinθ+zcosθ

矩阵运算的表达为:

x  y  z  1]=[x  y  z  1 

简记为Rx(θ)

y轴旋转的公式为:

         x′=zsinθ+xcosθ

         y′=y

         z′=zcosθ-xsinθ

         矩阵的运算表达式为:

x  y  z  1]=[x  y  z  1 

简记为Ry(θ)

2.3结果显示:

正二十面体(图3.1):

3.1

原图像向XYZ负方向轴各移动一个单位(图3.2):

3.2

原地缩小一倍(图3.3):

3.3

图形绕Y轴旋转(图3.4):

3.4

错切:

3.5

对称(图3.6):

3.6

四、心得体会

在这次的课程中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。课程是我们理论课程知识综合应用的训练,在这次学习过程中,了解了计算机图形的基础,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时的不足和薄弱环节,从而加以弥补.从这次的课程学习让我们知道了自己的不足,学习的知识不够充分,对于计算机了解狭隘的缺点,对今后的学习和工作进步都有非常大的帮助。

教师评语:

评定成绩:

教师签字:

本文来源:https://www.2haoxitong.net/k/doc/50fee1d28ad63186bceb19e8b8f67c1cfad6ee02.html

《计算机图形学实验报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式