2015-03-01 1 views
1

J'ai cette tâche pour convertir un objet 3D à partir d'un fichier .obj (en utilisant Blender) dans une image 2D en utilisant matplotlib en python. Convertir de la 3D en 2D est fait en utilisant des matrices, donc c'est ok, mais je ne sais pas comment obtenir les coordonnées du fichier. Lorsque j'imprime le contenu du fichier, je reçois ceci:Comment obtenir des coordonnées à partir du fichier .obj en python?

# Blender v2.73 (sub 0) OBJ File: '' 
# www.blender.org 
mtllib test.mtl 
o Cube 
v 1.000000 -1.000000 -1.000000 
v 1.000000 -1.000000 1.000000 
v -1.000000 -1.000000 1.000000 
v -1.000000 -1.000000 -1.000000 
v 0.388735 1.108067 -2.206034 
v 1.538758 0.520736 2.855389 
v -0.570206 0.995216 0.054703 
v -0.454593 3.815588 -1.404268 
usemtl Material 
s off 

Quelqu'un peut-il m'aider? :)

+0

Il vaudrait peut-être mieux laisser Blender interpréter le format de fichier .obj pour vous en l'important dans Blender et en écrivant un script d'exportation qui itère sur les sommets. –

Répondre

0

Créez d'abord une liste pour stocker tous vos sommets. Chaque élément de cette liste sera lui-même une liste contenant les coordonnées x, y et z sous forme de nombres à virgule flottante. Puis, lisez le fichier .obj ligne par ligne, en séparant chaque ligne en une liste. Si le premier élément de cette liste est 'v', convertissez les 3 prochaines chaînes de la liste en float et stockez-les dans une nouvelle liste. Ajoutez ensuite cette liste à votre liste de sommets.