Hi Søren, I've put this back on the list in case it's useful to anyone else, or if there are better suggestions or improvements around. Hope you don't mind.
On 22/01/2008, Søren Nielsen <[EMAIL PROTECTED]> wrote: > Yeah i'd like to see your code if I can.. import numpy as n def get_poly_pts(x, y, shape): """Creates convex polygon mask from list of corners. Parameters ---------- x : array_like x co-ordinates of corners y : array_like y co-ordinates of corners, in order corresponding to x shape : array_like dimension sizes of result Returns ------- build : ndarray 2-D array of shape shape with values True inside polygon Notes ----- Code is constrained to convex polygons by "inside" assessment criterion. """ x = n.asarray(x) y = n.asarray(y) shape = n.asarray(shape) npts = x.size # should probably assert x.size == y.size inds = n.indices( shape ) xs = inds[0] ys = inds[1] xav = n.round(x.mean()).astype(int) yav = n.round(y.mean()).astype(int) for i in xrange(npts): # iterate over pairs of co-ordinates j = (i + 1) % npts m = (y[j] - y[i])/(x[j] - x[i]) c = (x[j] * y[i] - x[i] * y[j])/(x[j] - x[i]) thisone = ( ys > m * xs + c ) if thisone[xav, yav] == False: thisone = ~thisone if i == 0: build = thisone else: build &= thisone return build (released under BSD licence) > I just needed the push over the edge to know how to draw on the canvas, > mapping clicks etc. since i'm still fairly new to matplotlib, so I think > your code will be helpfull. I hope so. As you can see this code doesn't do any of the drawing or click collecting, but the cookbook page should be able to guide you there. Ask again on the list if you have any further questions and we'll see if we can help. Also, the code assumes that the average co-ordinate is inside the shape - that's true for convex polygons, but not necessarily for arbitrary ones. I use if after taking a convex hull of a greater list of points (using the delaunay module in scipy (now in scikits, I hear)), which ensures convexity. You just need to be aware of that limitation. Cheers, A. -- AJC McMorland, PhD candidate Physiology, University of Auckland ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users