SourceForge logo
SourceForge logo
Menu

matplotlib-checkins

Revision: 8699
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8699&view=rev
Author: mdboom
Date: 2010年09月14日 15:21:21 +0000 (2010年9月14日)
Log Message:
-----------
Fix semi-transparent Gouraud triangle rendering in SVG backend.
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py
Modified: branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py	2010年09月11日 19:13:32 UTC (rev 8698)
+++ branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py	2010年09月14日 15:21:21 UTC (rev 8699)
@@ -325,6 +325,11 @@
 # opposite edge. Underlying these three gradients is a solid
 # triangle whose color is the average of all three points.
 
+ avg_color = np.sum(colors[:, :], axis=0) / 3.0
+ # Just skip fully-transparent triangles
+ if avg_color[-1] == 0.0:
+ return
+
 trans_and_flip = self._make_flip_transform(trans)
 tpoints = trans_and_flip.transform(points)
 write = self._svgwriter.write
@@ -334,7 +339,7 @@
 x1, y1 = points[i]
 x2, y2 = points[(i + 1) % 3]
 x3, y3 = points[(i + 2) % 3]
- c = colors[i][:3]
+ c = colors[i][:]
 
 if x2 == x3:
 xb = x2
@@ -352,8 +357,8 @@
 
 write('<linearGradient id="GR%x_%d" x1="%f" y1="%f" x2="%f" y2="%f" gradientUnits="userSpaceOnUse">' %
 (self._n_gradients, i, x1, y1, xb, yb))
- write('<stop offset="0" stop-color="%s" stop-opacity="1.0"/>' % rgb2hex(c))
- write('<stop offset="1" stop-color="%s" stop-opacity="0.0"/>' % rgb2hex(c))
+ write('<stop offset="0" style="stop-color:%s;stop-opacity:%f"/>' % (rgb2hex(c), c[-1]))
+ write('<stop offset="1" style="stop-color:%s;stop-opacity:0"/>' % rgb2hex(c))
 write('</linearGradient>')
 
 # Define the triangle itself as a "def" since we use it 4 times
@@ -361,11 +366,11 @@
 (self._n_gradients, x1, y1, x2, y2, x3, y3))
 write('</defs>\n')
 
- avg_color = np.sum(colors[:, :3], axis=0) / 3.0
- write('<use xlink:href="#GT%x" fill="%s"/>\n' %
- (self._n_gradients, rgb2hex(avg_color)))
+ avg_color = np.sum(colors[:, :], axis=0) / 3.0
+ write('<use xlink:href="#GT%x" fill="%s" fill-opacity="%f"/>\n' %
+ (self._n_gradients, rgb2hex(avg_color), avg_color[-1]))
 for i in range(3):
- write('<use xlink:href="#GT%x" fill="url(#GR%x_%d)" filter="url(#colorAdd)"/>\n' %
+ write('<use xlink:href="#GT%x" fill="url(#GR%x_%d)" fill-opacity="1" filter="url(#colorAdd)"/>\n' %
 (self._n_gradients, self._n_gradients, i))
 
 self._n_gradients += 1
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8842
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8842&view=rev
Author: mdboom
Date: 2010年12月17日 17:57:59 +0000 (2010年12月17日)
Log Message:
-----------
Fix Unicode encoding error saving SVGs with Unicode characters on some platforms
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py
Modified: branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py	2010年12月14日 17:37:42 UTC (rev 8841)
+++ branches/v1_0_maint/lib/matplotlib/backends/backend_svg.py	2010年12月17日 17:57:59 UTC (rev 8842)
@@ -860,7 +860,7 @@
 if is_string_like(filename):
 fh_to_close = svgwriter = codecs.open(filename, 'w', 'utf-8')
 elif is_writable_file_like(filename):
- svgwriter = codecs.EncodedFile(filename, 'utf-8')
+ svgwriter = codecs.getwriter('utf-8')(filename)
 fh_to_close = None
 else:
 raise ValueError("filename must be a path or a file-like object")
@@ -869,10 +869,10 @@
 def print_svgz(self, filename, *args, **kwargs):
 if is_string_like(filename):
 gzipwriter = gzip.GzipFile(filename, 'w')
- fh_to_close = svgwriter = codecs.EncodedFile(gzipwriter, 'utf-8')
+ fh_to_close = svgwriter = codecs.getwriter('utf-8')(gzipwriter)
 elif is_writable_file_like(filename):
 fh_to_close = gzipwriter = gzip.GzipFile(fileobj=filename, mode='w')
- svgwriter = codecs.EncodedFile(gzipwriter, 'utf-8')
+ svgwriter = codecs.getwriter('utf-8')(gzipwriter)
 else:
 raise ValueError("filename must be a path or a file-like object")
 return self._print_svg(filename, svgwriter, fh_to_close)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /