Opengl绘制地图
#include<iostream>
#include<fstream>//文本读写头文件
#include<vector>//在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
#include<GL/glut.h>
using namespace std;
class MapPoint//声明一个名为MapPoint的类
{
public:
double longitude;//数据成员 经度
double latitude;//纬度
};
class Polygon
{
public:
vector<MapPoint>points; //多边形的顶点序列
};
vector<Polygon*> polys; //多边形集合
vector<Polygon*> ReadMapData(char* filename)//文件名
{
int PointCount;//计算点的个数
vector<Polygon*>polygons;
ifstream fs(filename);//寻找filename文件是否为空
while (fs.eof() != true)
{
Polygon* poly = new Polygon;//定点个数
fs >> PointCount;//定点个数赋值给fs
cout << PointCount << endl;
for (int i = 0; i < PointCount; i++)//做循环,定义p
{
MapPoint p;//地图名
fs >> p.longitude >> p.latitude;
poly->points.push_back(p);
}
polygons.push_back(poly);
}
return polygons;
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT); //用蓝色色绘制各省边界
glColor3f(0.0, 0.0, 1.0);//设置正面为填充模式
glPolygonMode(GL_BACK, GL_LINE);
for (int i = 0; i < polys.size(); i++)
{
vector<MapPoint>points = polys[i]->points;
glBegin(GL_LINE_LOOP);//使用闭合曲线方式绘制各省边界
for (int j = 0; j < points.size(); j++)
{
glVertex3f(points[j].longitude, points[j].latitude, 0.0);
}
glEnd();
}
glFlush();
}
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);//设置背景颜色//初始化观察值
glMatrixMode(GL_PROJECTION);//将矩阵模式设为投影
glLoadIdentity();//对矩阵进行单位化
glOrtho(70.0, 140.0, 0.0, 60.0, -1.0, 1.0); //构造平行投影矩阵
}
int main(int argc,char *argv[])
{
char*filename = "D:HENG.txt";//文件名与文件目录对应
polys = ReadMapData(filename);//读定义的文件给polys
glutInit(&argc, argv);//初始化
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓存和RGB
glutInitWindowSize(250, 250);//窗口大小
glutInitWindowPosition(100, 100);//窗口位置
glutCreateWindow("hello");//窗口标题
init();
glutDisplayFunc(display); //显示回调函数
glutMainLoop();//进行消息循环
return 0;
}
Opengl绘制地图相关推荐
- BaiduMap---百度地图官方Demo之OpenGL绘制功能(介绍如何使用OpenGL绘制在地图中进行绘制)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...
- android opengl 百度地图,androidsdk | 百度地图API SDK
更新时间:2020-06-23 OpenGL绘制(绘制3D模型) 百度地图SDK为开发者开放了OpenGL绘制接口,以帮助开发者在地图上实现灵活的样式绘制,丰富地图的显示效果和使用体验. 自V4.2. ...
- 如何用 OpenGL 绘制雪花?
作者 | 许向武 责编 | 张红月 出品 | CSDN博客 看冬奥才知道,阿勒泰不但是中国的"雪都",还是"人类滑雪起源地".这个说法是否成立,姑且不论,阿勒泰 ...
- 使用OpenGL绘制圆环体(Torus)
本篇介绍一下使用OpenGL绘制圆环体的方法.程序是在C#和OpenTK环境下编译的. 代码: /// <summary> /// 绘制圆环体 /// </summary> / ...
- 【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )
文章目录 一.绘制三角形 二.三角形绘制顺序 1.绘制正面 2.三个点逆时针方向排列 3.三个点顺时针方向排列 4.设置点的正面方向 三.绘制多个三角形 四.相关资源 一.绘制三角形 三角形绘制即绘制 ...
- 【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
文章目录 一.绘制单个点 二.绘制多个点 三.相关资源 在上一篇博客 [OpenGL]十.OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | ...
- 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )
文章目录 一.初始化 OpenGL 矩阵 1.设置投影矩阵 2.设置模型视图矩阵 二.绘制点 1.清除缓冲区 2.设置当前颜色值 3.设置绘制点的大小 4.绘制点 5.将缓冲区绘制到前台 三.部分代码 ...
- 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )
文章目录 一.OpenGL 状态机概念 二.OpenGL 矩阵概念 上一篇博客 [OpenGL]八.初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗 ...
- Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图
Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图 目录 利用pyecharts绘制地图十多个地区流动轨迹动态图 Geo(GeoChartBase)函数 相关文章 ...
最新文章
- 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决
- 微服务架构及其最重要的 10 个设计模式!
- 二章: CentOS6.5 连接FTP服务器、部署telnet服务、安装SCP、服务端FTP、SFTP部署
- linux 0.11 内核学习 -- rs_io.s,串口汇编代码
- mysql行级安全_MySQL学习笔记(五):MySQL表级锁和行级锁
- 管理你的代码——Git学习(一)
- html设置百度协议,网站HTML结构SEO要求说明(含移动站)
- java main方法里调用mapper
- .net core学习
- 怎样用计算机记账,仓管员怎么用电脑记账?简单实用的电脑操作方式一览!
- 分库分表解决方案之ShardingSphere
- Spring Security 中的执行原理流程分析
- 好用且种类多的Unity3d游戏特效素材推荐,都在这里
- Linux开发板循环显示红绿蓝
- R语言:方差分析,单因素方差分析,单个协变量的单因素方差分析,双因素方差分析,多元方差分析
- iPhone启动页尺寸
- 抛出异常关键字throw与定义异常关键字throws
- gazebo设置_gazebo的学习与使用
- 如何用MATLAB把一个三维矩阵里的数据中的一页画成三维图并加密网格
- win7中能对窗口的排列方法是_win7系统窗口智能排列的操作方法
热门文章
- SG-UAP平台 : MX框架总结
- EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES 论文笔记
- 【漫画科普】什么是POL?什么是全光?
- android 后台运行 保活
- 每个初学JAVA者都应该搞懂的问题
- 我国成功发射第七颗北斗导航卫星
- Velocity模板语言(VTL):说明
- 老司机 iOS 周报 #66 | 2019-05-06
- 如何使用阿里云服务器快速搭建个人网站?
- dx.jar bad class file magic (cafebabe) or version (0034.0000)