地学可视化与景观模拟实验报告(编辑修改稿)内容摘要:

x3f(7,6,0)。 glVertex3f(7,8,0)。 glEnd()。 glFlush()。 } void myReshape(GLsizei w,GLsizei h) { glViewport(0,0,w,h)。 glMatrixMode(GL_PROJECTION)。 glLoadIdentity()。 if(w = h) gluOrtho2D(,*(GLfloat)h/(GLfloat)w)。 else gluOrtho2D(,*(GLfloat)w/(GLfloat)h,,)。 glMatrixMode(GL_MODELVIEW)。 glTranslatef(,)。 //平移 glScalef(,)。 //缩放 } int main(int argc, char* argv[]) { /*初始化 */ glutInit(amp。 argc,argv)。 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB)。 glutInitWindowSize(500,500)。 glutInitWindowPosition(200,200)。 /*创建窗口168。 178。 */ glutCreateWindow(实验二 )。 /*绘制与显示*/ background()。 glutReshapeFunc(myReshape)。 glutDisplayFunc(myDisplay)。 glutMainLoop()。 return 0。 } 实验结果 实验体会 理解图元定义 , 并基于图元绘制各种复杂图形 ,理解各种图元定义函数并能灵活运用。 学习到了很多知识,非常不错的一次实验。 实验三 /四 /五 利用 OpenGL 绘制三维地形 实验目的 利用 OpenGL 对给定的 DEM 数据进行三维可视化。 实验内容 分别做如下操作: 1) 用 ARCGIS 将 转换为 ASCII 格式 2) 使用 C 语言将 DEM 数据读入 3) 显示地形 4) 使用投影变换、几何变换并设置各参数。 5) 通过 gluLookAt 改变默认视点位置 6) 增加光照效果,设置光源。 实验要求 每人提交一份实验报告(封面、实验目的、实验内容、实验步骤、实验结果、实验体会)。 实验步骤 Dem 数据转换 编程将转换的数据载入 实验代码 ifndef GLUT_DISABLE_ATEXIT_HACK define GLUT_DISABLE_ATEXIT_HACK endif include include includeGL/ includeGL/ includeGL/ includefstream includestring using namespace std。 pragma ment(lib,) pragma ment(lib,) pragma ment(lib,) void display(void)。 void init(void)。 void reshape(int w, int h)。 void keyboard(unsigned char key, int x, int y)。 int dx = 0, dy = 0, bigger = 0, smaller = 0, MAX = 0。 long ncols。 long nrows。 long **data。 //定义为全局变量,方便 display 调用 int main(int argc,char*argv[]) { ifstream ifile()。 //为原始 DEM数据经处理后得到的文本数据,可自己定义路径 string temp。 double xllcorner, yllcorner, cellsize, NODATA_value。 ifile temp ncols。 ifile temp nrows。 ifile temp xllcorner。 ifile temp yllcorner。 ifile temp cellsize。 ifile temp NODATA_value。 // 读取头文件数据 data = (long **)malloc(ncols*sizeof(long *))。 for (long j = 0。 jncols。 j++) { data[j] = (long*)malloc(nrows*sizeof(long))。 }//动态二维数组定义 for (long i = 0。 inrows。 i++) { //printf(\n\n\n)。 for (long j=0。 jncols。 j++) { ifiledata[i][j]。 //printf(%d ,data[i][j])。 } }//读取灰度值数据,初始化。 glutInit(amp。 argc, argv)。 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)。 glutInitWindowSize(500, 500)。 glutInitWindowPosition(50, 50)。 glutCreateWindow(argv[0])。 init()。 glutDisplayFunc(display)。 glutReshapeFunc(reshape)。 glutKeyboardFunc(keyboard)。 glutMainLoop()。 return 0。 } void init(void) { glClearColor(0, 0, 0, 0)。 glMatrixMode(GL_PROJECTION)。 glLoadIdentity()。 glOrtho(0, 1, 0, 1, 1,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。