Cuadrícula ortogonal regularmente espaciada Triangulación de Delaunay (Cálculo de los coeficientes paraboloides)

Estoy tratando de construir una triangulación de Delaunay para el caso muy específico donde las coordenadas x e y de entrada son ortogonales y relativamente equidistantes.

Dado que el tamaño de los datos es relativamente grande (1000x1200 puntos de triangulación) y que el algoritmo Qhull no conoce mi condición ortogonal adicional, la triangulación es relativamente lenta (25 segundos en mi máquina).

Como tal, me gustaría construir manualmente una triangulación de Delaunay con cada uno de mis quads conocidos subdivididos en dos triángulos. Aprecio que esto no siempre resultará en una triangulación de Delaunay válida (por ejemplo, cuando los pasos xey son significativamente diferentes), pero en mi caso estoy bastante seguro de que el enfoque de subdivisión producirá una buena triangulación.

En la siguiente gráfica, he etiquetado cada uno de los triángulos con un índice, el vértice inicial y la dirección de definición del vértice:

En este caso tengo coordenadas x e y de[-1, 1.33, 3.67, 6] y[2, 4.5, 7, 9.5, 12] respectivamente.

Actualmente estoy usando los envoltorios de SciPy para Qhull, y he podido construir vértices e información de vecinos apropiada, pero tengo dificultades para definir elequations atributo (como se menciona brevemente enhttp://docs.scipy.org/doc/scipy-dev/reference/generated/scipy.spatial.ConvexHull.html)

Esencialmente, creo que estos valores son parámetros de la normalidad de cada triángulo al paraboloide definido por elparaboloid_scale yparaboloid_shift atributos, pero no puede encontrar los números mágicos adecuados para la interpretación de Qhull. Debería habern_dimensions + 1 valores por vértice y hay un código en SciPy que calcula la distancia de cada vértice desde un punto dado:

dist = d.equations[isimplex*(d.ndim+2) + d.ndim+1]
for k in xrange(d.ndim+1):
    dist += d.equations[isimplex*(d.ndim+2) + k] * point[k]

Entonces mis preguntas son:

¿He interpretado elequation atribuir correctamente?¿Ya existe una herramienta que hace esto por mí?¿Puedo calcular elequation valores de parámetros dados mi caso ortogonal y en su mayoría equidistante sin pasar por Qhull?

Respuestas a la pregunta(1)

Su respuesta a la pregunta