Этот простой пример триангулирует 10 случайных точек, еще 3 случайных точек генерируются и, если они попадают в треугольнике, вершины приведены:
import numpy as np
from pyhull.delaunay import DelaunayTri
def sign(a,b,c):
return (a[0]-c[0])*(b[1]-c[1])-(b[0]-c[0])*(a[1]-c[1])
def findfacet(p,simplice):
c,b,a = simplice.coords
b1 = sign(p,a,b) < 0.0
b2 = sign(p,b,c) < 0.0
b3 = sign(p,c,a) < 0.0
return b1 == b2 == b3
data = np.random.randn(10, 2)
dtri = DelaunayTri(data)
interpolate = np.random.randn(3, 2)
for point in interpolate:
for triangle in dtri.simplices:
if findfacet(point,triangle):
print "Point",point,"inside",triangle.coords
break
Использование matplotlib
для визуализации (код опущен):

пунктирные голубые линии теперь соединяют точку интерполировать с вершинами треугольника он лежит внутри. Черные линии - это выпуклая оболочка, а сплошные голубые линии - триангуляция delaunay.
Вы задаете тег «триангуляции» на этот вопрос. Означает ли это, что треугольники не пересекаются? Составляют ли они триангуляцию какого-либо объекта (укажите, если это возможно)? – unkulunkulu
Вы можете взглянуть на SciPy, похоже, что у него есть реализация этой проблемы. Вы можете начать здесь http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Delaunay.html – unkulunkulu
Я сделал существенное изменение на ваш вопрос, чтобы сделать его конкретно о триангуляции delaunay (так как это специальный предмет). Конечно, вы можете откатиться, но я считаю это более подходящим :) Существующие ответы все же применимы, конечно, но я считаю, что для треугольных триангуляций существуют более эффективные алгоритмы. – unkulunkulu