У меня есть нерегулярная сетка, которая описывается двумя переменными — массивом граней, в котором хранятся индексы вершин, составляющих каждую грань, и массивом вершин, в котором хранятся координаты каждой вершины. У меня также есть функция, которая считается кусочно-постоянной по каждой грани, и она хранится в виде массива значений для каждой грани.
Я ищу способ построить функцию f
из этих данных. Что-то вроде следующих строк:
faces = [[0,1,2], [1,2,3], [2,3,4] ...]
verts = [[0,0], [0,1], [1,0], [1,1],....]
vals = [0.0, 1.0, 0.5, 3.0,....]
f = interpolate(faces, verts, vals)
f(0.2, 0.2) = 0.0 # point inside face [0,1,2]
f(0.6, 0.6) = 1.0 # point inside face [1,2,3]
Ручной способ оценки f(x,y)
состоит в том, чтобы найти соответствующую грань, в которой находится точка x,y
, и вернуть значение, хранящееся в этой грани. Есть ли функция, которая уже реализует это в scipy (или в matlab)?