В настоящее время я использую функцию Delaunay в scipy.spatial.Delaunay, так же (упрощенно):
import numpy as np
from scipy.spatial import Delaunay
points1 = np.random.rand(10,2)
points2 = np.random.rand(10,2)
tri = Delaunay(points1)
# tri2 = tri(points2)? - need help here
Я хотел бы, чтобы одна и та же триангуляция применялась к point2 - если я снова запустил Delaunay, я мог бы получить другую триангуляцию.
Можно ли "скопировать" одну триангуляцию и применить ее к другому набору точек того же размера?
Для полноты, основанной на ответе Дэвиса Херринга в comments-
tri.simplices
содержит отношение между индексами ввода и не полагается на фактические значения.
если, например, я получил треугольник между points[0]
, points[3]
и points[4]
, tri.simplices
будут содержать [0,3,4]
.
поэтому для доступа к той же триангуляции с разными "точками" я могу просто получить к ним доступ так:
points2[tri.simplices]