python绘制地球

您所在的位置:网站首页 地球绘制方法 python绘制地球

python绘制地球

2024-03-01 02:44| 来源: 网络整理| 查看: 265

采用matplotlib+cv2+地球圆柱投影图(即长方形的一张地球,颜色代表地貌?)

注意cv2为gbr通道,需要反转一下,A[a:b,c:d,::-1],不然好多棕色 !~!

纹理获取时可以将像素变为经纬度:

        a*b像素的图片,(theta=c,phi=d)位置(经纬度)的像素值:

        earth_map[c/你要的区域的经度范围*a][b/你要的区域的经度范围*d]

注意很多坑:

画三角形的话,注意极点或theta/phi 为 0时进行特殊处理,三角形最好每一个单独上色(不知道为啥一起画的时候总是出问题)&&如果用的是plot_trisurf,triangles是二维的数组,color应为由三个0-1的小数组成的元组(归一化一下)。

方法比较简陋,自己用的是三角形剖分的方法,细节不展示了,贴一下关键部位(羞羞)。

ps:gpt坑真的蛮多的,麻麻子。

# 创建3D图形对象 fig = plt.figure() ax = fig.add_subplot(111, projection="3d") # 绘制三角形 # midheart:求重心用的theta、phi用的 rgb_cur_triangle = [] for i in triangle_set: t, p = midheart(point_set[i[0]], point_set[i[1]], point_set[i[2]]) rgb_cur_triangle.append( ( map[int(t / np.pi * 2700)][int(p / np.pi * 2700)][0] / 255, map[int(t / np.pi * 2700)][int(p / np.pi * 2700)][1] / 255, map[int(t / np.pi * 2700)][int(p / np.pi * 2700)][2] / 255, ) ) for i in range(len(rgb_cur_triangle)): ax.plot_trisurf( x, y, z, triangles=[triangle_set[i]], color=rgb_cur_triangle[i], shade=False, ) # 设置坐标轴标签 ax.set_xlabel("X") ax.set_ylabel("Y") ax.set_zlabel("Z") # 显示图形 plt.show()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3