文本文件(txt或者ttt格式)数据导入OpenGL中绘制花房子。

使用“85-84hg.ttt”文件实现如下效果:

经过一步一步的做法,实现了。

没有实现最终的贴图的效果,现公开源代码,请各位朋友帮忙一起解决,一起学习。

#include <GL/glut.h>
#include <iostream>
#include<fstream>
using namespace std;
static int Mpoint,Ntri;
static GLfloat theta[] = {0.0,0.0,0.0};
static GLint axis = 2;
static GLdouble viewer[]= { 539350.0,378520.0,-500.0};
static GLfloat ta[] = { 0.2,0.2,-1.0 };
struct point
{GLdouble x,y,z,w;
};struct trangle
{int a,b,c,d;
};void load()
{int i, j,flag,t,mm,m,n,s;GLdouble k;ifstream in;//in.open("gh.txt",ios::in);//Mpoint = 198;//in.open("result.txt", ios::in);//Mpoint = 16;in.open("85-84hg.ttt",ios::in);Mpoint = 3720;point *points=new point [Mpoint];k = 1.0;t = 364;mm = 0;m = 0;n = 0;while (t>0){for (i = m, j = n; i < Mpoint; i++){in >> points[j].x;if (points[j].x == k){k++;continue;}if (points[j].x == 0){//i++;//in >> points[i].w;t--;mm = 1;break;}in >> points[j].y;in >> points[j].z;in >> points[j].w;j++;}flag = j;glPolygonMode(GL_FRONT, GL_FILL);glBegin(GL_POLYGON);//glBegin(GL_LINES);for (s = n;s < flag; s++){glColor3f(0.0, 1.0, 1.0);glVertex3f(points[s].x, points[s].y, points[s].z);//glVertex3f(points[j].x,points[j].y,points[j].z);//glVertex3f(points[j].x,points[j].y,points[j].z);//printf("%lf %lf %lf\n", points[s].x, points[s].y, points[s].z);}//glEnd();glBegin(GL_POLYGON);//glBegin(GL_LINES);for (s = n; s < flag; s++){glColor3f(0.4,0.6, 0.7);glVertex3f(points[s].x, points[s].y, points[s].z + points[s].w);//glVertex3f(points[j].x,points[j].y,points[j].z);//glVertex3f(points[j].x,points[j].y,points[j].z);//printf("%lf %lf %lf\n", points[s].x, points[s].y, points[s].z);}glEnd();//glPolygonMode(GL_FRONT, GL_FILL);glBegin(GL_POLYGON);//glBegin(GL_LINES);for (s = n; s < flag; s++){glColor3f(0.6, 0.3, 0.5);glVertex3f(points[s].x, points[s].y, points[s].z);glVertex3f(points[s].x , points[s].y, points[s].z + points[s].w);//glVertex3f(points[j].x,points[j].y,points[j].z);//glVertex3f(points[j].x,points[j].y,points[j].z);//printf("%lf %lf %lf\n", points[s].x, points[s].y, points[s].z);}glEnd();mm = 0;m = i;n = j;}in.close();delete[] points;}void display()
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();gluLookAt(viewer[0], viewer[1], viewer[2], 538900.0, 377500.0, 0.0, ta[0], ta[1], ta[2]);glRotatef(theta[0], 1.0, 0.0, 0.0);glRotatef(theta[1], 0.0, 1.0, 0.0);glRotatef(theta[2], 0.0, 0.0, 1.0);//glScalef(5.0,5.0,5.0);//太小了 就放大了5倍load();glFlush();glutSwapBuffers();
}void mouse(int btn, int state, int x, int y)
{if(btn==GLUT_LEFT_BUTTON && state == GLUT_DOWN) axis = 0;if(btn==GLUT_MIDDLE_BUTTON && state == GLUT_DOWN) axis = 1;if(btn==GLUT_RIGHT_BUTTON && state == GLUT_DOWN) axis = 2;theta[axis] += 0.01;if( theta[axis] > 360.0 ) theta[axis] -= 360.0;//glScalef(5.0,5.0,5.0);//太小了 就放大了5倍display();
}void keys(unsigned char key, int x, int y)
{if(key == 'x') viewer[0]-= 10.0;if(key == 'X') viewer[0]+= 10.0;if(key == 'y') viewer[1]-= 10.0;if(key == 'Y') viewer[1]+= 10.0;if(key == 'z') viewer[2]-= 10.0;if(key == 'Z') viewer[2]+= 10.0;if (key == 'q') ta[0] -= 0.1;if (key == 'Q') ta[0] += 0.1;if (key == 'w') ta[1] -= 0.1;if (key == 'W') ta[1] += 0.1;if (key == 'e') ta[2] -= 0.1;if (key == 'E') ta[2] += 0.1;display();
}void myReshape(int w, int h)
{glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION); glLoadIdentity();//if(w<=h) glFrustum(-2.0, 20.0, -2.0 * (GLfloat) h/ (GLfloat) w, //  2.0* (GLfloat) h / (GLfloat) w, 2.0, 20.0);//else glFrustum(-2.0, 20.0, -2.0 * (GLfloat) w/ (GLfloat) h, // 2.0* (GLfloat) w / (GLfloat) h, 2.0, 20.0);//glFrustum(537100, 5410000, -2.0 * (GLfloat)w / (GLfloat)h,//       2.0* (GLfloat) w / (GLfloat) h, 10, 1800);//gluLookAt(10, 10, 20, 0.0, 0.0, -1.0, 0.0, 1.0, 0.0);gluPerspective(60.0, (GLfloat)w / (GLfloat)h, 50, 2500.0);//glTranslatef(0, 0, 5);//glFrustum(0.0, 1000.0, 0.0, 1000.0, 2.0, 800.0);//glOrtho(537100, 539800, 376400, 377900, 10, 8000);glMatrixMode(GL_MODELVIEW);
}void main(int argc, char **argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);glutInitWindowSize(800, 800);glutCreateWindow("fangzi");glEnable(GL_DEPTH_TEST);glutReshapeFunc(myReshape);glutDisplayFunc(display);glutMouseFunc(mouse);glutKeyboardFunc(keys);glutMainLoop();
}

文本文件(txt或者ttt格式)数据导入OpenGL中绘制花房子相关推荐

  1. 如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中

    如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中 2011-05-12 14:19 方法一,使用SQL*Loader      这个是用的较多的方法,前提必须oracle数据中目的表已经 ...

  2. txt中的数据导入matlab中画图,excel怎样导入表格数据-如何将excel表格中大量数据导入matlab中并作图...

    Excel中如何将另一表格中的数据对应导入 1开表格,在上方功能栏点击据". 2.点入数据. 3.点击数据来源. 4择想要的导入的数据文件,就好了. 如何将TXT文档中的数据直接导入到Exc ...

  3. txt的数据导入excel中身份证或银行卡显示成科学计数如何解决

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  4. openrowset excel 科学计数_txt的数据导入excel中身份证或银行卡显示成科学计数如何解决...

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  5. matlab打开矩阵表,如何将Excel数据导入MATLAB中?:EXCLE中通过矩阵表输出选项

    怎么把matlab中处理的数据存入到excel中 可以直接xlswrite命令. data=randn(100,1); % data为需要存储的数 xlswrite('D:\write2Excel.x ...

  6. matlab导入word数据,如何将Excel数据导入MATLAB中?/excel数据导入word模板

    如何将Excel数据导入MATLAB中? 从excel中导入,可以用xlsread()函数. 例如: A=xlsread('C:\Users\Administrator\Desktop\07-29预. ...

  7. matlab读取excel表作图,读取Excel表格数据进行绘图-如何将excel表格中大量数据导入matlab中并作图...

    matlab 读取excel时间数据并绘图 没看懂你的格式是什么意思, 不过我一般读取excel都用xlsread函数,你也可以试一试 [a,b,c]=xlsresd('data.xls');%r如果 ...

  8. 将Excel经纬数据导入ArcGIS中

    我们在将样本数据导入ArcMap中的时候,样本数据经常以Excel的形式存储,这个时候我们就需要将Excel数据导入ArcMap中.导入方法主要有两种. ①方法一 通过ArcGIS中的ExcelToT ...

  9. matlab导入数据作图,如何将excel表格中大量数据导入matlab中并作图:excel表格数据制图软件...

    是否有能替代Excel作图表的软件? 我认为数据观你可以试试,因为它提供多种可视化图表,涵盖所有excel提供的图形,您可以进行任何个性化设置. 将excel数据制作成漂亮图表的软件?做图表用什么软件 ...

  10. 将EXCEL表格数据导入hive中

    将EXCEL表格数据导入hive中 第一步:将excel表格转为.csv格式文件(utf-8格式) 第二步:将建表语句中分隔符改为逗号(英文),格式改为text文本格式 第三步:使用linux rz命 ...

最新文章

  1. EF-Entity Framework 相关技术点收集贴
  2. 2020级HAUT新生周赛(四)@张承树专场
  3. pycharm如何执行高级撤销操作回到历史
  4. Lucene 基础理论
  5. android 线程池
  6. mysql-linux64,Linux64下mysql安装和开辟
  7. Ubuntu链接服务器
  8. 奇安信代码安全实验室招贤纳士
  9. imindmap思维导图免费下载
  10. 北邮iptv用WindowsMediaplayer打不开的解决的方法
  11. 【C++11】之 emplace_back() 与 push_back() 的区别
  12. 【WLAN从入门到精通-基础篇】第9期——直接转发和隧道转发
  13. 数据挖掘-朴素贝叶斯算法的R实现
  14. Python 汽车之家 车型销量--参数分析与实现
  15. 新手学CAD入门到精通,迅捷CAD图库大全免费下载!
  16. java英语句子_经典英语句子 (转) - HelloWorld 善战者,求之于势,不责于人;故能择人而任势。 - BlogJava...
  17. Selenium原理以及Python从零实现
  18. 超详细!!!STM32F407ZGT6HAL库移植STemwin(基于正点原子最小系统板+GUIBuilder)
  19. Eclipse修改为中文版
  20. java对对碰time暂停,优先使用TimeUnit类中的sleep()

热门文章

  1. python分支结构、循环结构
  2. 对反游戏外挂技术的思考及实现
  3. 面试必备:虾皮服务端15连问
  4. 华大单片机-HC32L13X系列芯片OPA配置-芯虎论坛
  5. hutool压缩文件
  6. ZT世界第九大奇迹--北京西直门立交桥〔爆笑〕
  7. 一文读懂Hoo Smart Chain的可视化公链
  8. uniapp中uni.navigateTo传递变量
  9. python 获取MP4视频第一帧 | Python工具类
  10. 一包辣条如何逆袭,从屌丝品牌成为有逼格的产品?