Question

Pour autant que je sache, il n’existe pas de fonctionnalité de polygone intégrée pour Python. Je veux créer une carte 3D et pensé que les polygones seraient le meilleur moyen de s'y prendre.

Ne voulant pas réinventer la roue, j’ai fait quelques recherches sur Google et j’ai trouvé qu’il y avait beaucoup de choses en Python, mais je ne trouvais pas ce que je voulais. Ainsi, avant de réinventer la roue (ou de l’inventer dans son ensemble), est-ce que quelqu'un connaît un système Polygon pour Python?

Notez qu’il doit être en 3D (j’en ai trouvé quelques-uns en 2D). Notez également que je ne suis pas intéressé par leur affichage mais par leur stockage et la structure de données au sein de Python.

Merci

Était-ce utile?

La solution

L’un des systèmes de géographie / de cartographie les plus complets disponibles pour Python que je connaisse est GeoDjango . Cela fonctionne par-dessus du Django , un framework MVC. Il propose une vaste collection d’outils de calcul de polygones, de lignes et de distances qui peuvent même prendre en compte la courbure de la surface de la Terre, si besoin est.

Cela dit, le moyen le plus rapide de créer une carte en 3D consiste à utiliser une carte en hauteur. Créez une liste à deux dimensions de nuplets contenant des coordonnées (x, y, z). Chaque tuple représente un point uniformément espacé sur une grille, cartographié par les dimensions du tableau. Cela crée un plan simple le long des axes X et Z; le plan de sol. Les polygones qui composent le plan sont des quadruples, un polygone à quatre côtés.

Ensuite, pour obtenir la hauteur tridimensionnelle, attribuez simplement à chaque point une valeur Y. Cela créera des pics et des vallées dans votre plan de sol.

La façon dont vous allez rendre le rendu dépend de vous et convertir votre grille de points en un format de polygone compréhensible par quelque chose comme OpenGL peut prendre un certain travail, mais jetez un oeil à Visual Python , c'est la bibliothèque 3D la plus simple que j'ai vue pour Python.

Autres conseils

Je pense que vous voulez dire polyèdre, pas polygone .. et vous voudrez peut-être consulter vpython

CGAL est une bibliothèque de géométrie C ++ qui modélise, entre autres, Polyhedra (formes 3D à surface plane)

Des liaisons Python sont disponibles. La documentation de la classe Polygon3 est ici: http://cgal-python.gforge.inria.fr/Manual /CGAL.Polyhedron.html#Polyhedron_3

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top