# Sage Interactions - Graphics

## Curves of Pursuit

by Marshall Hampton. {{{#!sagecell#!sagecell npi = RDF(pi) from math import cos,sin def rot(t):

def pursuit(n,x0,y0,lamb,steps = 100, threshold = .01):

html('<h3>Curves of Pursuit</h3>') @interact def curves_of_pursuit(n = slider([2..20],default = 5, label="# of points"),steps = slider([floor(1.4^i) for i in range(2,18)],default = 10, label="# of steps"), stepsize = slider(srange(.01,1,.01),default = .2, label="stepsize"), colorize = selector(['BW','Line color', 'Filled'],default = 'BW')):

• outpaths = pursuit(n,0,1,stepsize, steps = steps) mcolor = (0,0,0) outer = line([q for q in outpaths]+[outpaths], rgbcolor = mcolor) polys = Graphics() if colorize=='Line color':
• colors = [hue(j/steps,1,1) for j in range(len(outpaths))]
elif colorize == 'BW':
• colors = [(0,0,0) for j in range(len(outpaths))]
else:
• colors = [hue(j/steps,1,1) for j in range(len(outpaths))] polys = sum([polygon([outpaths[(i+1)%n][j+1],outpaths[(i+1)%n][j], outpaths[i][j+1]], rgbcolor = colors[j]) for i in range(n) for j in range(len(outpaths)-1)]) #polys = polys colors = [(0,0,0) for j in range(len(outpaths))]
nested = sum([line([q[j] for q in outpaths]+[outpaths[j]], rgbcolor = colors[j]) for j in range(len(outpaths))]) lpaths = [line(x, rgbcolor = mcolor) for x in outpaths] show(sum(lpaths)+nested+polys, axes = False, figsize = [5,5], xmin = -1, xmax = 1, ymin = -1, ymax =1)

}}} ## Catalog of 3D Parametric Plots ## Interactive rotatable raytracing with Tachyon3d ## Interactive 3d plotting ## Somewhat Silly Egg Painter

by Marshall Hampton (refereed by William Stein) ## Plot Coloring

by Timothy Clemans ## Interactive 2D Plotting

by Timothy Clemans ## Interact with matplotlib ## Spirograph 