Построение треугольной сетки для трехмерных данных на поверхности данных в Python - PullRequest
1 голос
/ 24 февраля 2012

У меня есть набор данных из трехмерных точек, для которых я хотел бы построить сетку, используя python. Все программное обеспечение, которое я видел, требует, чтобы вы предоставили края. Есть ли в Python программа, которая принимает в качестве входных данных набор точек в 3D и выводит набор треугольных сеток? Если возможно, я бы хотел, чтобы сетка была однородной.

Спасибо, - Эли.

Ответы [ 2 ]

1 голос
/ 14 октября 2013

Если точки представляют поверхность, вы можете использовать триангуляцию Делоне в соответствии с предложением @ wim.

import numpy as np
import scipy.spatial
import pylab

data = np.random.random((12,3))            # arbitrary 3D data set
tri = scipy.spatial.Delaunay( data[:,:2] ) # take the first two dimensions

pylab.triplot( data[:,0], data[:,1], tri.simplices.copy() )
pylab.plot( data[:,0], data[:,1], 'ro' ) ;

Delaunay triangulation

Оттуда можно получить доступ к треугольникам или упрощениямчерез атрибут simplices объекта tri.Например, tri.simplices[0] относится к первому треугольнику или симплексу и возвращает массив из трех целых чисел, скажем, [ 10, 0, 5 ].Это означает, что точки, составляющие первый симплекс, находятся по индексам 10, 0 и 5 в массиве data.

0 голосов
/ 24 февраля 2012

Я не знаю, насколько легко вы можете использовать существующие библиотеки Java в Python, но Jzy3d может помочь вам генерировать сетки из точек: есть ортогональный тесселятор для входных данных, основанный на точках, стоящих на регулярнойсетка и тесселятор Делоне для неизвестных точечных структур.(отказ от ответственности: я автор)

...