From: <md...@us...> - 2007-11-30 15:51:20
|
Revision: 4525 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4525&view=rev Author: mdboom Date: 2007-11-30 07:51:18 -0800 (Fri, 30 Nov 2007) Log Message: ----------- Fix shadows (see pie_demo.py) Modified Paths: -------------- branches/transforms/lib/matplotlib/patches.py Modified: branches/transforms/lib/matplotlib/patches.py =================================================================== --- branches/transforms/lib/matplotlib/patches.py 2007-11-30 15:50:35 UTC (rev 4524) +++ branches/transforms/lib/matplotlib/patches.py 2007-11-30 15:51:18 UTC (rev 4525) @@ -71,7 +71,7 @@ self._hatch = hatch self._combined_transform = transforms.IdentityTransform() self.fill = fill - + if len(kwargs): artist.setp(self, **kwargs) __init__.__doc__ = cbook.dedent(__init__.__doc__) % artist.kwdocd @@ -105,7 +105,7 @@ def get_extents(self): return self.get_path().get_extents(self.get_transform()) - + def get_transform(self): return self._combined_transform @@ -116,10 +116,10 @@ def get_data_transform(self): return artist.Artist.get_transform(self) - + def get_patch_transform(self): return transforms.IdentityTransform() - + def get_antialiased(self): return self._antialiased @@ -155,7 +155,7 @@ ACCEPTS: any matplotlib color """ self._facecolor = color - + def set_linewidth(self, w): """ Set the patch linewidth in points @@ -212,7 +212,7 @@ if cbook.is_string_like(self._edgecolor) and self._edgecolor.lower()=='none': gc.set_linewidth(0) - else: + else: gc.set_foreground(self._edgecolor) gc.set_linewidth(self._linewidth) @@ -226,7 +226,7 @@ rgbFace = None else: rgbFace = colors.colorConverter.to_rgb(self._facecolor) - + if self._hatch: gc.set_hatch(self._hatch ) @@ -234,7 +234,7 @@ transform = self.get_transform() tpath = transform.transform_path_non_affine(path) affine = transform.get_affine() - + renderer.draw_path(gc, tpath, affine, rgbFace) #renderer.close_group('patch') @@ -322,25 +322,25 @@ def _update_transform(self): self._shadow_transform = transforms.Affine2D().translate(self._ox, self._oy) - + def _get_ox(self): return self._ox def _set_ox(self, ox): self._ox = ox self._update_transform() - + def _get_oy(self): return self._oy def _set_oy(self, oy): self._oy = oy self._update_transform() - + def get_path(self): return self.patch.get_path() def get_patch_transform(self): - return self._shadow_transform - + return self.patch.get_patch_transform() + self._shadow_transform + class Rectangle(Patch): """ Draw a rectangle with lower left at xy=(x,y) with specified @@ -385,7 +385,7 @@ x, y = self.get_transform().inverted().transform_point( (mouseevent.x, mouseevent.y)) return (x >= 0.0 and x <= 1.0 and y >= 0.0 and y <= 1.0), {} - + def get_x(self): "Return the left coord of the rectangle" return self._bbox.x0 @@ -480,9 +480,9 @@ self._path = Path.unit_regular_polygon(numVertices) self._poly_transform = transforms.Affine2D() self._update_transform() - + Patch.__init__(self, **kwargs) - + __init__.__doc__ = cbook.dedent(__init__.__doc__) % artist.kwdocd def _update_transform(self): @@ -504,7 +504,7 @@ self._orientation = xy self._update_transform() orientation = property(_get_orientation, _set_orientation) - + def _get_radius(self): return self._radius def _set_radius(self, xy): @@ -518,13 +518,13 @@ self._numVertices = numVertices self._path = Path.unit_regular_polygon(numVertices) numvertices = property(_get_numvertices, _set_numvertices) - + def get_path(self): return self._path def get_patch_transform(self): return self._poly_transform - + class PathPatch(Patch): """ A general polycurve path patch. @@ -535,7 +535,7 @@ def __init__(self, path, **kwargs): """ path is a Path object - + Valid kwargs are: %(Patch)s See Patch documentation for additional kwargs @@ -574,7 +574,7 @@ def _set_xy(self, vertices): self._path = Path(vertices) xy = property(_get_xy, _set_xy) - + class Wedge(Patch): def __str__(self): return "Wedge(%g,%g)"%self.xy[0] @@ -612,7 +612,7 @@ [ 0.8, -0.1 ], [ 0.8, -0.3], [ 1.0, 0.0 ], [ 0.8, 0.3], [ 0.8, 0.1 ], [ 0.0, 0.1] ] ) - + def __init__( self, x, y, dx, dy, width=1.0, **kwargs ): """Draws an arrow, starting at (x,y), direction and length given by (dx,dy) the width of the arrow is scaled by width @@ -636,7 +636,7 @@ def get_patch_transform(self): return self._patch_transform - + class FancyArrow(Polygon): """Like Arrow, but lets you set head width and head height independently.""" @@ -744,7 +744,7 @@ def get_path(self): # Since this is dpi dependent, we need to recompute the path # every time. - + # the base vertices x1, y1 = self.xytip x2, y2 = self.xybase @@ -767,7 +767,7 @@ def get_patch_transform(self): return transforms.IdentityTransform() - + def getpoints(self, x1,y1,x2,y2, k): """ for line segment defined by x1,y1 and x2,y2, return the points on @@ -845,7 +845,7 @@ .scale(self._width * 0.5, self._height * 0.5) \ .rotate_deg(self._angle) \ .translate(*self._center) - + def get_path(self): """ Return the vertices of the rectangle @@ -854,12 +854,12 @@ def get_patch_transform(self): return self._patch_transform - + def contains(self,ev): if ev.x is None or ev.y is None: return False,{} x, y = self.get_transform().inverted().transform_point((ev.x, ev.y)) return (x*x + y*y) <= 1.0, {} - + def _get_center(self): return self._center def _set_center(self, center): @@ -880,8 +880,8 @@ self._angle = angle self._recompute_transform() angle = property(_get_angle, _set_angle) - - + + class Circle(Ellipse): """ A circle patch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |