Построение треугольной сетки для трехмерных данных поверхности данных в Python

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

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


person Eliezer    schedule 23.02.2012    source источник
comment
Точки представляют собой поверхность или объем? Однажды я проделал это с триангуляцией Делоне, но сначала потребовалось спроецировать точки на плоскость.   -  person wim    schedule 24.02.2012
comment
Просто решил упомянуть на будущее, что вычислительная наука — хорошее место для подобных вопросов.   -  person David Z    schedule 24.02.2012
comment
Точки представляют собой поверхность. Проекция на плоскость работала хорошо?   -  person Eliezer    schedule 24.02.2012


Ответы (2)


Если точки представляют собой поверхность, вы можете использовать триангуляцию Делоне, предложенную @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' ) ;

Триангуляция Делоне

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

person cjohnson318    schedule 14.10.2013

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

person Martin    schedule 23.02.2012