山东大学计算机学院实验报告
实验题目:多边形世界 学号:
班级: 学院:计算机科学与技术 姓名:
Email:
实验目的:
写一个可以交互的OpenGL应用程序,支持用户利用鼠标创建和删除2维多边形
对象。基本功能包括:
对象创建:支持用户利用鼠标指定各个顶点位置,创建多边形。
对象删除: 支持用户选择一个多边形(与你的多边形保存的数据结构有关)并
删除。
对象存储: 设计一种数据结构存储每个多边形的顶点与边,支持文件存盘,。
扩展功能可以包括(至少选择其一):
1. 支持用户选择多边形的颜色
2. 支持用户移动多边形
3. 支持用户改变多边形单个顶点的位置
4. 支持3D多边形
5. 其他(需要通过指导老师认可)
完成一份实验报告,着重说明你的对象存储与对象选择方法,或者你所实现的
一个扩展功能。
实验步骤:
一、基本数据结构
首先,确定所编写的多边形世界是二维的多边形世界。因此,它要准备的
数据结构有:
1、坐标结构
2、多边形元素结构
3、多边形数组
4、相应多边形颜色数组——以及颜色结构
5、相应多边形点数的整型数组
坐标结构:两个浮点数字
typedef GLfloat point2D[2];
多边形元素数据结构:二维坐标点的链表
由于多边形的边数是不定的,也就是有用户临时决定的。所以,它的数据
结构可以有两种:申请足够大的数组控件、或者可扩展控件的数据结构。
我们选择后者,也就是链表。它存放二维坐标结构以及下一个结构的指
针。
struct poly2D{
point2D point;
- 1
- 2
前往页