2015-03-01 6 views
1

У меня есть эта задача для преобразования 3D-объекта из .obj-файла (с использованием Blender) в 2D-изображение с использованием matplotlib в python. Преобразование из 3D в 2D выполняется с использованием матриц, так что это нормально, но я не знаю, как получить координаты из файла. Когда я печатаю содержимое файла, я получаю следующее:Как получить координаты из .obj-файла в 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 

Может кто-нибудь мне помочь? :)

+0

Возможно, вам лучше позволить Blender интерпретировать формат файла .obj для вас, просто импортируя его в Blender и записывая сценарий экспорта, который выполняет итерацию над вершинами. –

ответ

0

Сначала создайте список для хранения всех ваших вершин. Каждый элемент этого списка сам будет списком, содержащим координаты x, y и z как числа с плавающей запятой.

Затем читайте файл .obj по строкам, разбивая каждую строку на список. Если первый элемент этого списка равен 'v', преобразуйте следующие 3 строки в список в float и сохраните их в новом списке. Затем добавьте этот список в список вершин.