TO DO: IF NOT ALREADY IN YOUR FOLDER
CUT AND PASTE THE SOURCE CODE BELOW TO AN OPEN FILE WINDOW IN IDLE
AND SAVE IT AS
ballpack.py
""" ballpack.py by K. Urner for Saturday Academy, Martian Math Summer camp 2010 @ Reed College http://www.4dsolutions.net/ocn/satacad/martianmath/ """ from stickworks import Qray, Edge, getedges from visual import * def setscene ( ): """set the stage for our little drama""" scene2 = display(title='Drawing a 12-around-1 packing', fullscreen= True, autoscale = False, background=color.white, scale = vector(0.1, 0.1, 0.1)) return scene2 def ccp( ): """ draw 12 spheres around 1 """ scene = setscene( ) scene.select( ) # 26 points in space (as sums of Qrays) a, b, c, d = Qray((1,0,0,0)), Qray((0,1,0,0)), Qray((0,0,1,0)), Qray((0,0,0,1)) e, f, g, h = -a, -b, -c, d i,j,k,l,m,n = a+b, a+c, a+d, b+c, b+d, c+d o,p,q,r,s,t = i+j, i+k, i+l, i+m, n+j, n+k u,v,w,x,y,z = n+l, n+m, j+l, l+m, m+k, k+j # 12 around... for locus in [o,p,q,r,s,t,u,v,w,x,y,z]: ball = sphere(pos = locus.xyz, color = color.orange, radius = 0.5) # 1 at the center (nuclear ball) center = sphere(pos = (0,0,0), color = color.red, radius = 0.5) print "OK, done..." return if __name__ == "__main__": ccp( ) |