2009-01-11 102 views
1

据我所知,还有就是Python没有内置的多边形功能。我想创建一个3D地图,并认为多边形是最好的方法。3D多边形在Python

不希望推倒重来我做了一些谷歌上搜索,发现有很多的Python的东西在那里,但我找不到我想要的东西。因此,在我重新发明轮子(或发明它的一个整体)之前,是否有人知道Python的Polygon系统?

请注意,它必须是三维(我发现有不少二维的)。还要注意,我对显示它们并不感兴趣,而是将它们和Python中的数据结构存储起来。

感谢

回答

4

一个可用的Python最完整的地理/制图系统,我知道的是GeoDjango。这适用于MVC框架Django之上。随之而来的是大量的多边形,直线和距离计算工具,如果需要的话,甚至可以考虑到地球表面的曲率。

即便如此,我能想到的用于生成3D地图的最快捷方式是使用高度图。创建包含(x,y,z)坐标的元组的二维列表。每个元组表示一个网格上的均匀间隔点,由数组的维数映射。这会沿着X和Z轴创建一个简单的平面;地平面。构成飞机的多边形是四边形,四边形的多边形。

接着,以产生三维高度,简单地给每个点的Y值。这将在您的地平面创建高峰和低谷。

如何渲染它将取决于你,将点网格转换为OpenGL可以理解的多边形格式可能需要一些工作,但请看Visual Python,它是我最简单的3D库为Python看。

+0

这是一个很好的存储方式和一个系统,对我来说会更好 – Teifion 2009-01-11 11:59:05

2

我想你的意思多面体,不是多边形..,你可能会在vpython