Programmatically generate SVG (vector) images, animations, and interactive Jupyter widgets
at 1.2.1 2.1 kB view raw
1''' 2A library for creating SVG files or just drawings that can be displayed in 3iPython notebooks 4 5Example: 6``` 7 d = draw.Drawing(200, 100, origin='center') 8 9 d.append(draw.Lines(-80, -45, 10 70, -49, 11 95, 49, 12 -90, 40, 13 close=False, 14 fill='#eeee00', 15 stroke='black')) 16 17 d.append(draw.Rectangle(0,0,40,50, fill='#1248ff')) 18 d.append(draw.Circle(-40, -10, 30, 19 fill='red', stroke_width=2, stroke='black')) 20 21 p = draw.Path(stroke_width=2, stroke='green', 22 fill='black', fill_opacity=0.5) 23 p.M(-30,5) # Start path at point (-30, 5) 24 p.l(60,30) # Draw line to (60, 30) 25 p.h(-70) # Draw horizontal line to x=-70 26 p.Z() # Draw line to start 27 d.append(p) 28 29 d.append(draw.ArcLine(60,-20,20,60,270, 30 stroke='red', stroke_width=5, fill='red', fill_opacity=0.2)) 31 d.append(draw.Arc(60,-20,20,60,270,cw=False, 32 stroke='green', stroke_width=3, fill='none')) 33 d.append(draw.Arc(60,-20,20,270,60,cw=True, 34 stroke='blue', stroke_width=1, fill='black', fill_opacity=0.3)) 35 36 d.setPixelScale(2) # Set number of pixels per geometry unit 37 #d.setRenderSize(400,200) # Alternative to setPixelScale 38 d.saveSvg('example.svg') 39 d.savePng('example.png') 40 41 # Display in iPython notebook 42 d.rasterize() # Display as PNG 43 d # Display as SVG 44``` 45''' 46 47from .defs import * 48from .raster import Raster 49from .drawing import Drawing 50from .elements import * 51from .video import ( 52 render_svg_frames, 53 save_video, 54) 55from .animation import ( 56 Animation, 57 animate_video, 58 animate_jupyter, 59) 60 61 62# Make all elements available in the elements module 63from . import defs 64from . import elements 65def registerElement(name, elem): 66 setattr(elements, name, elem) 67elementsDir = dir(elements) 68for k in dir(defs): 69 if k.startswith('_'): continue 70 if k in elementsDir: continue 71 registerElement(k, getattr(defs, k)) 72