def draw_strokes_pdf( data, param, factor = 10, svg_filename = 'sample_pdf.svg' ):
min_x, max_x, min_y, max_y = get_bounds( data, factor )
dims = ( 50 + max_x - min_x, 50 + max_y - min_y )
dwg = svgwrite.Drawing( svg_filename, size = dims )
dwg.add( dwg.rect( insert = ( 0, 0 ), size = dims, fill = 'white' ) )
abs_x = 25 - min_x
abs_y = 25 - min_y
num_mixture = len( param[ 0 ][ 0 ] )
for i in range( len( data ) ):
x = float( data[ i, 0 ] )/factor
y = float( data[ i, 1 ] )/factor
for k in range( num_mixture ):
pi = param[ i ][ 0 ][ k ]
if pi > 0.01: # optimisation, ignore pi's less than 1% chance
mu1 = param[ i ][ 1 ][ k ]
mu2 = param[ i ][ 2 ][ k ]
s1 = param[ i ][ 3 ][ k ]
s2 = param[ i ][ 4 ][ k ]
sigma = np.sqrt( s1*s2 )
dwg.add( dwg.circle( center = ( abs_x+mu1*factor, abs_y+mu2*factor ), r = int( sigma*factor ) ).fill( 'red', opacity = pi/( sigma*sigma*factor ) ) )
prev_x = abs_x
prev_y = abs_y
abs_x += x
abs_y += y
dwg.save( )
display( SVG( dwg.tostring( ) ) )
utils.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录