我知道我们可以使用matplotlib
创建简单的三维球体,documentation中包含了这样一个球体的示例。
现在,我们还有一个warp
方法作为matplotlib模块的一部分,它的用法示例是here。
将圆柱形图像扭曲到球体。有没有可能将这些方法结合起来创造出一个3D可旋转的地球?除非我思考这个问题的方式是错的,否则要做到这一点,你必须获取图像的像素数据,然后使用sin和cosine表达式沿着第一个示例中创建的3D球体的表面绘制每个像素。这些柱面Map的一些示例可以在here中找到
我知道其他方法是通过maya
和blender
,但我试图在matplotlib
内完成此操作,因为我希望创建此图,然后能够使用数据数组将地理空间数据绘制到表面。
3条答案
按热度按时间xdnvmnnf1#
有趣的问题。我试着基本上遵循@Skeletor概述的想法,并Map图像,以便它可以用
plot_surface
显示:结果:x1c 0d1x
n3h0vuf22#
这是我几个小时前做的:
首先,我们导入所需的库:
其次,我们制作这些图,并将它们作为png存储在我们的目录中:注意我写了
range(0,330,20)
最后,我们可以将所有图像加入一个动画GIF:
然后享受结果:
gcxthw6b3#
我可以想象以下解决方案:使用numpy.roll,你可以在每次调用时将数组移动一列(或更多)。因此,您可以将地球表面的图像加载到numpy数组中作为模板,并将旋转后的图像导出为jpg。您将按照扭曲示例中所示进行绘制。