
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
tetrahedron.py
"""
tetrahedron.py
by K. Urner for Saturday Academy, Martian Math
Summer camp 2010 @ Reed College
http://www.4dsolutions.net/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 Duo-Tet Cube',
fullscreen= True, autoscale = False,
background=color.white, scale = vector(0.1, 0.1, 0.1))
return scene2
def duotet( ):
"""
draw a two tetrahedra (orange and black) in
a green cube using Qrays from stickworks.py
"""
scene = setscene( )
scene.select( )
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 # dual tetrahedron
for stick in (a,b,c,d):
stick.draw()
for edge in ((a,b), (a,c), (a,d), (b,c), (c,d), (d, b)):
stick = Edge(*edge)
stick.color = color.orange
stick.draw()
for edge in ((e,f), (e,g), (e,h), (f,g), (g,h), (h, f)):
stick = Edge(*edge)
stick.color = color.black
stick.draw()
cube_faces = [(a,h,c,f),(a,h,b,g),(b,e,c,h),(b,e,d,g),(d,g,a,f),(c,e,d,f)]
for edge in getedges ( cube_faces ):
stick = Edge(*edge)
stick.color = color.green
stick.draw()
print "OK, done..."
return
if __name__ == "__main__":
duotet( )
|



