开源我的3D库WxGL:40行代码将疫情地图变成三维地球模型

时间:2020-03-23 来源: 国际新闻

原标题:开源我的3D库WXGL: 40行代码将流行地图变成3D地球模型

这是CSDN博主天元浪子

原创链接

文章目录

1的原创文章。序言

2。安装

3。类和方法

4。应用示例

1的原创文章。序言

在我自己编写3D库之前,我总是使用可视化来满足3D需求。这是一个高性能的交互式2D/3D视觉函数库,但在后端显示器上,我仍然无法轻松处理它。在2019年元旦假期,我想出了写自己的3D应用程序库的想法,并立即付诸实施。三周后,WxGL诞生了。WxGL是一个基于PyOpenGL的三维数据显示库,以wx为显示后端,以加速渲染为首要追求目标。在WxPython的帮助下,WxGL可以集成其他数据显示技术,如Matplotlib。

2。安装

My GitHub有完整的WxGL模块的源代码文件。您也可以直接使用下面的命令来安装我打包的whl安装文件。当前版本是0.5.4。如果有必要,我会继续更新它。

python -m pip install -i WxGL

WxGL依赖于PyOpenGL,因此请在安装WxGL之前安装PyOpenGL。但是,如果直接使用pip安装,可能会有一些问题。在我以这种方式安装之后,我运行了OpenGL代码并得到了这个错误消息:

空函数:尝试调用一个未定义的函数GLUNIT,在调用之前检查BOOL(GLUNIT)

最初,pip默认安装了32位版本的PoPengl,而我的操作系统是64位的。建议单击此处下载适合您的版本并安装。直接存档。最后,我这样安装它:

pipinstall pyo pengl-3 . 1 . 3 B2-cp37-cp37m-win _ amd64 . whl

3。类和方法

WxGL的容器名是WxGLScene,我称之为场景。每个场景都可以使用addRegion()来生成多个WxGLRegion对象,我称之为视口。可以在查看区域创建模型。每个模型由一个或多个组件组成,形成个所谓的组件,可以理解为子模型。WxGLRegion提供了以下创建模型或组件的方法:

wxgl region . DrawText()draw text

wxgl region . DrawPoint()draw point

wxgl region . DrawLine()draw线段

wxgl region . Draw surface()Drawmesh()Draw mesh

wxgl region . Draw volume()Draw volume数据

wxgl region . Draw mesh()Draw coordinates

wxgl region . DrawColorBar()Draw

应用示例

4。应用示例

2019-nCoV流行病地图(全局等边投影模式)

EARTH _ 2019 NCoV . py

#-*-Coding : UTF-8-*-

import numpy as NP

import numpy as NP

from wxgl . scene import *

from wxgl . scene import *

from wxgl . colormap import *

class MAChine(wx .框架):

' ' '程序主窗口类,继承自WX . frame ' ' '

def _ _ init _ _(self):

WX . frame . _ _ init _ _(self,none,-1,' 2019-nCoV地球流行病地图模型',Style=WX . default _ frame _ STYLe)

self . maximize()

#从经纬度网格中读取颜色

c=NP . array(image . open(' RES/E0 . jpg ')/255

#计算空间坐标(x,y,z)

lats,lons=NP。米格里德[。pi/2:-NP。pi/2:复合材料(0,c形[0]), * NP。pi : complex (0,c . shape[1])]

x=NP . cos(lats)* NP . cos(lons)

y=NP . cos(lats)* NP . sin(lons)

z=NP . sin(lats)

self . scene=Wxglscene(self,r ' c : \ Windows \ Fonts \ simfang . TTF ',bg=[0,0,0,0])

self.scene.setPosture(仰角=0,方位角app):

app=main app()

self。Frame=大型机()

self。框架。Show()

returntrue

if _ _ name _ _=' _ _ main _ _ ' :

app=main app()

app . main loop()

效果如下:

如需更复杂的应用,请参考另一篇博文:返回搜狐查看更多“负责任的编辑”:

新闻排行
  1. 当他们爬过墙时,羊发现了一个老妇人,然后他们对她的美貌和衣服上瘾了。没什么好说的,我们先拍几张照片,

    当他们爬过墙时,羊发现了一个老妇人,然后他们对她的美貌和衣服上瘾了。没什么好说的,我们先拍几张照片,...

  2. 今天有趣的历史编辑给我们带来了一篇关于曹操的文章。欢迎阅读~曹操喜欢捡漏洞。杀了吕布之后,他为什么不?

    今天有趣的历史编辑给我们带来了一篇关于曹操的文章。欢迎阅读~曹操喜欢捡漏洞。杀了吕布之后,他为什么不?...

  3. 任嘉伦因其2017年电视剧《《大唐荣耀》》而备受关注。他与着名女演员田静合作,在剧中扮演CP。对可爱的狗的

    任嘉伦因其2017年电视剧《《大唐荣耀》》而备受关注。他与着名女演员田静合作,在剧中扮演CP。对可爱的狗的...

  4. 日前,长安铃木官方宣布长安铃木S-CROSS于风已经开始预售,价格区间为112,800-158,800元。新车将在广州车

    日前,长安铃木官方宣布长安铃木S-CROSS于风已经开始预售,价格区间为112,800-158,800元。新车将在广州车...

  5. 过去“这种直接垃圾排放通道非常方便”,但随着人们生活环境要求的提高,“这种直接垃圾排放通道不再实用”

    过去“这种直接垃圾排放通道非常方便”,但随着人们生活环境要求的提高,“这种直接垃圾排放通道不再实用”...

  6. 原标题:1月14日,13名前美国发言人敦促恢复例行记者会白宫发言人许云CNKI.com综合报道,7名前美国白宫发言?

    原标题:1月14日,13名前美国发言人敦促恢复例行记者会白宫发言人许云CNKI.com综合报道,7名前美国白宫发言?...

  7. 原题:将5G仿真卡放入无人机是否可行?沈无人驾驶飞机玩家会期待这样的一天吗:把你的无人驾驶飞机内置的SIM?

    原题:将5G仿真卡放入无人机是否可行?沈无人驾驶飞机玩家会期待这样的一天吗:把你的无人驾驶飞机内置的SIM?...

  8. 不同年龄的鸡有最适合的温暖环境。在此环境下,鸡的生理功能和生产性能处于最佳状态,饲料利用率高,饲养成

    不同年龄的鸡有最适合的温暖环境。在此环境下,鸡的生理功能和生产性能处于最佳状态,饲料利用率高,饲养成...

  9. 为将各类应急救援力量纳入调度指挥体系,形成统一指挥、反应灵敏、上下联动、各负其责的应急救援格局,山东

    为将各类应急救援力量纳入调度指挥体系,形成统一指挥、反应灵敏、上下联动、各负其责的应急救援格局,山东...

  10. 很紧急,很紧急,很特别。为了更好地为防控新冠状病毒肺炎疫情服务,市财政局根据中央、省、市政府的工作部

    很紧急,很紧急,很特别。为了更好地为防控新冠状病毒肺炎疫情服务,市财政局根据中央、省、市政府的工作部...

友情链接