Hallo Habr! Sobald ich ein 3D-Modell des Bodens erstellen musste,
mehr in diesem Artikel . Heute möchte ich darüber sprechen, wie Sie 3D-Modelle von Python 3 erstellen können. Es gibt viele Möglichkeiten, dies zu tun: Blender Python API, Vpython ... Aber ich möchte erklären, wie Modelle nur mit Python erstellt werden.

→
Link zu GithubSTL
Dazu müssen Sie verstehen, wie das STL-Format (ein beliebtes 3D-Dateiformat) funktioniert.
Das gesamte Modell in diesem Format besteht aus vielen Dreiecken, sodass die Datei aus dreidimensionalen Koordinaten ihrer Scheitelpunkte besteht.
STL-Dateifest
Facette normal 0 0 0
äußere Schleife
Scheitelpunkt 0 0 0
Scheitelpunkt 1 0 0
Scheitelpunkt 1 1 0
Endloop
Endfacet
Facette normal 0 0 0
äußere Schleife
Scheitelpunkt 1 1 0
Scheitelpunkt 0 0 0
Scheitelpunkt 0 1 0
Endloop
Endfacet
Endsolid
Beispiel
Ich möchte zeigen, wie die Erstellung eines 3D-Modells anhand der Helligkeit der Pixel auf dem Foto implementiert wird. Ich habe dieses Foto unten gemacht.

Das Bild wird mithilfe der opencv-Bibliothek verarbeitet (leicht unscharf, damit keine scharfen Helligkeitssprünge auftreten).
import cv2 import numpy as np cd_1=['0', '0', '0']
Unten finden Sie eine Funktion, die 3 Arrays mit den Koordinaten der Eckpunkte eines Dreiecks verwendet und 1 Dreiecksfläche in die Datei schreibt.
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))
Das Wichtigste ist nun, die richtigen Koordinaten der Eckpunkte der Dreiecke zu erstellen, aus denen das 3D-Modell besteht.

Der Code, der die Koordinaten erstellt.
for i in range(size.shape[1]):
Erstelltes 3D-ModellDas ist eigentlich alles, was ich vor dem nächsten Artikel schreiben wollte.
Ganzer Code import cv2 cd_1=['0', '0', '0']