Bonjour, Habr! Une fois que j'avais besoin de créer un modèle 3D du bas,
plus dans cet article . Aujourd'hui, je veux parler de la façon dont vous pouvez créer des modèles 3D de Python 3. Il existe de nombreuses façons de le faire: blender python api, Vpython ... Mais je veux dire comment créer des modèles en utilisant uniquement Python.

→
Lien vers GithubSTL
Pour ce faire, vous devez comprendre le fonctionnement du format stl (un format de fichier 3D populaire).
Le modèle entier dans ce format se compose de nombreux triangles, donc le fichier se compose de coordonnées tridimensionnelles de leurs sommets.
Fichier STLsolide
facette normale 0 0 0
boucle extérieure
sommet 0 0 0
sommet 1 0 0
sommet 1 1 0
boucle
endfacet
facette normale 0 0 0
boucle extérieure
sommet 1 1 0
sommet 0 0 0
sommet 0 1 0
boucle
endfacet
Endolid
Exemple
Je voudrais montrer comment implémenter la création d'un modèle 3D par la luminosité des pixels de la photo. J'ai pris cette photo ci-dessous.

L'image est traitée (légèrement floue pour qu'il n'y ait pas de sauts nets de luminosité) à l'aide de la bibliothèque opencv.
import cv2 import numpy as np cd_1=['0', '0', '0']
Ci-dessous, une fonction qui prend 3 tableaux avec les coordonnées des sommets d'un triangle et écrit 1 face triangulaire dans le fichier.
def face_file_stl(cd_1, cd_2, cd_3): op_stl.write("facet normal 0 0 0") op_stl.write("outer loop") op_stl.write("vertex " + " ".join(cd_1))
Maintenant, le plus important est de créer les coordonnées correctes des sommets des triangles qui composent le modèle 3D.

Le morceau de code qui crée les coordonnées.
for i in range(size.shape[1]):
Modèle 3D crééEn fait, c'est tout ce que je voulais écrire avant le prochain article.
Code entier import cv2 cd_1=['0', '0', '0']