探析计算机图形学算法演示系统设计

减小字体 增大字体 作者:刘华勇 张大明李璐  来源:www.zhonghualunwen.com  发布时间:2012-09-07 16:18:25

2.系统综述

我们所开发的教学系统,采用面向对象的设计技术其界面,利用VC++的MFC类库;作图显示,借助OpenGL的API函数由MFC产生界面比较方便,因为它具有相当好的消息处理机制,可以节省很多时间;而OpenGL的绘图功能,用于三维作图近乎完美

软件分成以下三大模块:

1)系统框架模块主要实现文件存取、数据输入、绘图环境设置、对图形的操作消息输入等功能

2)通用图形模块主要实现对几何物体属性的包装

3)几何对象模块包括几个子模块:二维图元的生成、二维填充的一些算法,直线剪裁算法和多边形裁剪算法、二维图形的基本变换、三维图形的平移、旋转、缩放、多节点Bezier曲线的绘制等,这些几何体采用OpenGL的命令直接绘制

3.环境配置

下载一个安装GLUT工具包,在Windows环境下安装GLUT的步骤:

1)将下载的压缩包解开,将得到5个文件(glut.h glut.lib glut32lib glut.dll glut32.dll)

2)把解压得到的glut.h复制到VC的“include\ gl”文件夹下

3)把解压得到的glut.lib和glut32.lib复制到静态函数库所在文件夹“VC\lib”文件夹

4)把解压得到的glut.dll和glut32.dll复制到操作系统目录下面的sy stem32文件夹内(典型的位置为:C:\Windows\System32)

4.几何数据结构模型

本软件使用的数据结构中,所包含的几何信息有:曲面Surface、曲线Curve、离散点Point所包含的拓扑信息有:物体MyObject、图元Unit、控制顶点Ve rt ex具体含义说明如下,离散点Point:三维空间中的一个位置;画线:直线的光栅化;画面:曲面看作把离散点网格用线段连接(或并填充)而成;图元Unit:可作图的单元,标记曲线曲面的特性,用以标记一个可作图几何对象;填充:求出位于其内部的各个象素,并给帧缓冲器内的各个对应元素设置相应的灰度和颜色

5.界面描述

1)总体界面

2)为了更方便地进行交互操作,我们加上快捷菜单,提供当前状态下的可以进行的常用操作例如,在选中了一个图元时,右击鼠标可以弹出快捷菜单,此时进行平移、旋转、伸缩、设置变换基准(基准有X、Y、Z、XY、YZ、ZX坐标轴)、显示图元属性、设置选择的层次

3)选择的方式要对几何对象进行操作,当然要先选定它们在屏幕上双击鼠标左键,可选中所绘的几何对象我们设定了三个选择层次:选择物体( Select MyObject)、选择图元(Select Unit)、选择顶点(Select Vertex)例如,如果当前的选择层次是选择顶点,则在绘制了几何图元的区域内双击,可以选中在光标附近的顶点,该顶点所在图元以红色画出,该顶点以粗大的尺寸画出,随后就可以针对该顶点进行各种操作了选择的方式之二是在控制区内进行,在控制区内以组合框列举出了已画出的几何物体

4)对图形的操作可以用鼠标拖动对图形进行移动、旋转、伸缩等操作另外,为了方便观察,可以用键盘的方向键旋转视点(但不改变图形的几何数据),按Home键或h或H键可以恢复到缺省的视点位置

5.总结

本文针对计算机图形学基本图元的研究做了如下工作:

1引入了各种基本的图形算法,通过算法与数据的分析阐述关于直线与圆的作图实现过程;

2引入了区域填充的基本概念,几种常用的基于内点的区域填充算法以及扫描线种子填充算法;

4通过数据与作图的形式分析了图元裁剪的基本思想,提出常用的Cohen - Sutherland算法、梁友栋 Bars ky直线段裁剪算法以及多边形剪裁算法;

5.对二维图形的变换做了详细的介绍,并实现了二维图形的平移、旋转及缩放;

6同时介绍并具体实现了三维图像的变换,包括平移,旋转和放缩变换;

7针对曲线的绘制,通过简单的鼠标单击取点获得控制顶点绘制Bezier曲线

(基金项目:2010年校级质量工程基金项目 2010YX17)

【参考文献】

[1]jG Rokne,B Wyvill,Wu Xiaolin. Fast line scan- conversion[J]. ACMTransactions on Graphics.1990.9(4)

[2]唐荣锡,汪嘉业,彭群生计算机图形学教程[M]科学出版社北京

1990

[3]倪明田,吴良芝计算机图形学[M]北京大学出版社1999

[4]施法中,CAGD&NURBS[M]北京航空航天大学出版社1994

Tags:系统设计

作者:刘华勇 张大明李璐
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论