From: <md...@us...> - 2007-08-13 15:31:15
|
Revision: 3706 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3706&view=rev Author: mdboom Date: 2007-08-13 08:19:11 -0700 (Mon, 13 Aug 2007) Log Message: ----------- Make horizontal line drawing more consistent across all backends. Fix but in ft2font glyph rendering for glyphs with a left offset. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mathtext.py trunk/matplotlib/src/ft2font.cpp Modified: trunk/matplotlib/lib/matplotlib/mathtext.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-13 14:32:15 UTC (rev 3705) +++ trunk/matplotlib/lib/matplotlib/mathtext.py 2007-08-13 15:19:11 UTC (rev 3706) @@ -253,9 +253,7 @@ def render_rect_filled(self, x1, y1, x2, y2): font = self.fonts_object.get_fonts()[0] - font.draw_rect_filled( - int(x1 + 0.5), int(y1 + 0.5) - 1, - int(x2 - 0.5), int(y2 - 0.5) - 1) + font.draw_rect_filled(x1, y1, x2, y2 - 1) def get_results(self): return (self.width, @@ -329,7 +327,7 @@ def render_rect_filled(self, x1, y1, x2, y2): self.svg_rects.append( - (x1, self.height - y2, x2 - x1, y2 - y1)) + (x1, self.height - y1 + 1, x2 - x1, y2 - y1)) def get_results(self): svg_elements = Bunch(svg_glyphs = self.svg_glyphs, @@ -559,8 +557,7 @@ def get_underline_thickness(self, font, fontsize, dpi): cached_font = self._get_font(font) - cached_font.font.set_size(fontsize, dpi) - return max(1.0, cached_font.font.underline_thickness / 64.0) + return max(1.0, cached_font.font.underline_thickness / 64.0 / fontsize * 10.0) def get_kern(self, font1, sym1, fontsize1, font2, sym2, fontsize2, dpi): @@ -1102,10 +1099,18 @@ self.height = metrics.ymax - metrics.ymin self.depth = 0 + def shrink(self): + Char.shrink(self) + self._update_metrics() + + def grow(self): + Char.grow(self) + self._update_metrics() + def render(self, x, y): """Render the character to the canvas""" self.font_output.render_glyph( - x, y + (self._metrics.ymax - self.height), + x - self._metrics.xmin, y + self._metrics.ymin, self.font, self.c, self.fontsize, self.dpi) class List(Box): @@ -2264,8 +2269,8 @@ metrics = state.font_output.get_metrics( state.font, '=', state.fontsize, state.dpi) shift = (cden.height - - (metrics.ymax + metrics.ymin) / 2 + - thickness * 2.5) + ((metrics.ymax + metrics.ymin) / 2 - + thickness * 3.0)) vlist.shift_amount = shift hlist = Hlist([vlist, Hbox(thickness * 2.)]) @@ -2316,7 +2321,6 @@ # Negative kerning to put root over tick Kern(-check.width * 0.5), check, # Check - Kern(-thickness * 0.3), # Push check into rule slightly rightside]) # Body return [hlist] Modified: trunk/matplotlib/src/ft2font.cpp =================================================================== --- trunk/matplotlib/src/ft2font.cpp 2007-08-13 14:32:15 UTC (rev 3705) +++ trunk/matplotlib/src/ft2font.cpp 2007-08-13 15:19:11 UTC (rev 3706) @@ -1219,7 +1219,7 @@ FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[glyph->glyphInd]; - draw_bitmap( &bitmap->bitmap, x, y); + draw_bitmap( &bitmap->bitmap, x + bitmap->left, y); return Py::Object(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |