- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数 字 高 程 模 型 程 序 报 告
PAGE 2
目录
TOC \o 1-3 \h \z \u 程序一 Delaunay三角网生成程序 2
一. 程序说明 2
二. 关于Open GL函数库的配置 2
三. 程序源代码及相关注释 2
四. 运行截图 8
程序二 查找与某点距离最近五点程序 9
一. 程序说明 9
二. 程序源代码及相关注释 9
三. 程序运行截图 11
程序三 查找与所有点距离最近五点程序 13
一. 程序说明 13
二. 程序源代码及相关注释 13
三. 运行截图 16
程序一 Delaunay三角网生成程序
一. 程序说明
常用的Delaunay三角网生成算法有:三角网生长算法、凸闭包法、逐点插入法以及含有限制条件的三角网生成算法。这里所使用的程序代码为C语言编写的三角网生长算法,并利用Open GL函数库进行三角网建立结果的可视化输出。因个人水平有限,所以程序中部分代码为在理解已有建立三角网的程序代码的基础上加以借鉴。程序中也对部分代码的使用加以了个人的理解和说明。
二. 关于Open GL函数库的配置
因为是初次接触,所以在使用该函数库的时候都出现了大同小异的问题就是调用失败。这里讲Open GL函数库初次配置的说明总结如下:
下载的程序包包含五个文件,只需按照如下操作:
①将 glut32.dll 和 glut.dll 拷贝到? c:\windows\system32 下面;
②将 glut32.lib 和 glut.lib 拷贝到 VC 安装目录下的 lib 目录下(如:\Microsoft Visual Studio 9.0\VC\lib\下);
③将 glut.h 拷贝到VC安装目录下的 \include\gl\ 目录下(如:\Microsoft Visual Studio 9.0\VC\include\gl\下)。
建立工程后,还需进行下面两步:
①选择项目-属性- C\C++--preprocessor(预处理器)--preprocessor definition(预处理器定义),添加GLUT_BUILDING_LIB,中间用分号隔开;
②点击linker(链接器)-Input(输入)-additional dependencies(附加依赖项)添加glut32.lib Opengl32.lib Glu32.lib 结束。
三. 程序源代码及相关注释
// Delaunay三角网.cpp : 定义控制台应用程序的入口点。
//
#include stdafx.h
#include glut.h//调用Open GL函数库,已提前安装在电脑上
#include stdio.h
#include stdlib.h
#include vector
#include iostream
#include math.h
int number=0;//全局变量
struct zb//读入文件维坐标的结构体,用zuobiao[0]代表X,zuobiao[1]代表Y
{
double zuobiao[2];
};
void checkfile(std::vectorzb kz2d)//打开坐标文件并读取坐标数据
{
FILE *fp;
float temp1[2]={0};
zb pt2d;
if((fp=fopen(D:\\dem数据.txt,r))==NULL)
exit(1);
while (!feof(fp))
{
fscanf(fp,%f %f\n,temp1[0],temp1[1]);
pt2d.zuobiao[0]=temp1[0];
pt2d.zuobiao[1]=temp1[1];
kz2d.push_back(pt2d);
}
fclose(fp);
}
struct triangle//用于存储三角形个顶点的结构体
{
int point1;
int point2;
int point3;
};
std::vectorzb kz2d;
std::vectortriangle peak1;
void display(void)//调用OpenGL函数进行点与点之间的连线成图三角网
{
glColor3f(1.0,1.0,1.0);
glPointSize(0.0);
for (int i=0;inumber;i++)
{
glBegin(GL_TRIANGLES);
glVertex3f(kz2d[peak1[i].point1].zuobiao[0],kz2d[peak1[i].poin
原创力文档


文档评论(0)