[SciPy-User] Scipy.spatial.Delaunay

Pauli Virtanen pav at iki.fi
Wed Mar 16 13:31:20 EDT 2011


Wed, 16 Mar 2011 14:57:28 +0000, Dan Richards wrote:
[clip]
> I am sure for here it is very simple, however I have been struggling to
> understand which attributes I need access to get the vertices of
> connecting lines?
> 
> *         x.vertices?
> *         x.neighbors?
> *         x.vertex_to_simplex?
> *         x.convex_hull...?
> 
> If anyone can help or point me in the right direction that would be very
> much appreciated.

The edges are recorded in the `vertices` array, which contains indices of
the points making up each triangle. The overall structure is recorded
`neighbors`.

This is maybe easiest to explain in code. The set of edges is:

	edges = []
	for i in xrange(x.nsimplex):
	    edges.append((x.vertices[i,0], x.vertices[i,1]))
	    edges.append((x.vertices[i,1], x.vertices[i,2]))
	    edges.append((x.vertices[i,2], x.vertices[i,0]))

This however counts each edge multiple times. To get around, that:

	edges = []
	for i in xrange(x.nsimplex):
	    if i > x.neighbors[i,2]:
	        edges.append((x.vertices[i,0], x.vertices[i,1]))
	    if i > x.neighbors[i,0]:
	        edges.append((x.vertices[i,1], x.vertices[i,2]))
	    if i > x.neighbors[i,1]:
	        edges.append((x.vertices[i,2], x.vertices[i,0]))

This counts each edge only once. Note how the `neighbors` array relates
to `vertices`: its j-th entry gives the neighboring triangle on the
other side of the edge formed that remains after the j-th vertex is
removed from the triangle.

-- 
Pauli Virtanen




More information about the SciPy-User mailing list