def jslider(f,start,end,num_steps):
# Draw a tile for the slider
import Image, ImageDraw
img=Image.new("RGB",(3,20))
draw = ImageDraw.Draw(img)
draw.line(((2,0),(2,19)),(255,255,255))
img.save("data/jslider_tile.png", "PNG")
step_size=(end-start)/num_steps
for i in range(num_steps+1):
f(start+i*step_size).save(DATA+'jslider_%d.png'%i)
html("""
<script>
function jslider_switch(n)
{
document.getElementsByClassName('jslider_image')[0].src='data/jslider_'+n+'.png';
}
</script>
""")
def tile_html(n): #Returns the html code for the (n)th tile of the slider
return '<img src="data/jslider_tile.png" onMouseover="jslider_switch(%d)">'%n
slider_html=""
for i in range(num_steps+1):
slider_html=slider_html+tile_html(i)
html(slider_html)
html('<img src="data/jslider_0.png" class="jslider_image">')
jslider(lambda a:plot(lambda x:sin(a*x),xmin=0,xmax=pi,ymin=-1,ymax=1),0,5,50) # This can take a minute or two.