# ---- 3D Tetrahedron -----------------------------------------------
# ---- wire frame (tetrahedron) corner points
pts = [ (0,100,0), (50,0,0), (-50,0,0), (0,0,50) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wireframe (tetrahedron) lines
lns = [ (pts[0],pts[1]), (pts[0],pts[2]), (pts[0],pts[3]),
(pts[1],pts[2]), (pts[2],pts[3]), (pts[3],pts[1]) ]
# ----------3D Square Pyramid ---------------------------------------
# ---- wire frame (square pyramid) corner points
pts = [ (0,100,0), (50,0,-50), (50,0,50), (-50,0,50), (-50,0,-50) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wire frame (square pyramid) lines
lns = [ (pts[0],pts[1]), (pts[0],pts[2]), (pts[0],pts[3]),
(pts[0],pts[4]), (pts[1],pts[2]), (pts[2],pts[3]),
(pts[3],pts[4]), (pts[4],pts[1]) ]
# ----------3D Octahedron -------------------------------------------
# ---- wire frame (octahedron) corner points
pts = [ (0,100,0), (50,0,-50), (50,0,50), (-50,0,50), (-50,0,-50),
(0,-100,0) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wire frame (octahedron) lines
lns = [ (pts[0],pts[1]), (pts[0],pts[2]), (pts[0],pts[3]),
(pts[0],pts[4]),
(pts[1],pts[2]), (pts[2],pts[3]), (pts[3],pts[4]),
(pts[4],pts[1]),
(pts[5],pts[1]), (pts[5],pts[2]), (pts[5],pts[3]),
(pts[5],pts[4]) ]
# ----------3D Cube ------------------------------------------------
# ---- wire frame cube (points, lines, surfaces, normal vectors)
#
# 5+----------+6
# /| /|
# / | / |
# 1+----------+2 |
# | | | |
# | 4+-------|--+7
# | / | /
# |/ |/
# 0+----------+3
#
#
# ---- wire frame (cube) corner points
pts = [ (-50,-50,50), (-50,50,50), # point 0,1
(50,50,50), (50,-50,50), # point 2,3
(-50,-50,-50), (-50,50,-50), # point 4,5
(50,50,-50), (50,-50,-50) ] # point 5,7
#
# ---- pivot point
pivot = (0, 0, 0)
#
# ---- wire frame (cube) lines
lns = [ (pts[0],pts[1]), (pts[1],pts[2]), # line 0,1
(pts[2],pts[3]), (pts[3],pts[0]), # line 2,3
(pts[4],pts[5]), (pts[5],pts[6]), # line 4,5
(pts[6],pts[7]), (pts[7],pts[4]), # line 6,7
(pts[0],pts[4]), (pts[1],pts[5]), # line 8,9
(pts[2],pts[6]), (pts[3],pts[7]) ] # line 10,11
#
# ---- wire frame (cube) surfaces
sur = [ (pts[0],pts[1],pts[2],pts[3]), # surface 0 red
(pts[7],pts[6],pts[5],pts[4]), # surface 1 green
(pts[4],pts[5],pts[1],pts[0]), # surface 2 blue
(pts[3],pts[2],pts[6],pts[7]), # surface 3 cyan
(pts[1],pts[5],pts[6],pts[2]), # surface 4 yellow
(pts[0],pts[3],pts[7],pts[4]) ] # surface 5 white
#
# ---- wire frame (cube) normal vector points for each surface
# ---- (points used to calculate normal vector)
nvpts = [ (pts[0],pts[1],pts[2]), # nv surface 0
(pts[7],pts[6],pts[5]), # nv surface 1
(pts[4],pts[5],pts[1]), # nv surface 2
(pts[3],pts[2],pts[6]), # nv surface 3
(pts[1],pts[5],pts[6]), # nv surface 4
(pts[0],pts[3],pts[7]) ] # nv surface 5
# ----------3D Letter T ---------------------------------------------
# ---- wire frame (letter T) corner points
pts = [ (120,40,20), (120,0,20), (20,0,20), (20,-150,20),
(-20,-150,20), (-20,0,20), (-120,0,20), (-120,40,20),
(120,40,-20), (120,0,-20), (20,0,-20), (20,-150,-20),
(-20,-150,-20), (-20,0,-20), (-120,0,-20), (-120,40,-20) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wire frame (Letter T) lines
lns = [ (pts[0], pts[1]), (pts[1], pts[2]),
(pts[2], pts[3]), (pts[3], pts[4]),
(pts[4], pts[5]), (pts[5], pts[6]),
(pts[6], pts[7]), (pts[7], pts[0]),
(pts[8], pts[9]), (pts[9], pts[10]),
(pts[10],pts[11]), (pts[11],pts[12]),
(pts[12],pts[13]), (pts[13],pts[14]),
(pts[14],pts[15]), (pts[15],pts[8]),
(pts[0], pts[8]), (pts[1], pts[9]),
(pts[2], pts[10]), (pts[3], pts[11]),
(pts[4], pts[12]), (pts[5], pts[13]),
(pts[6], pts[14]), (pts[7], pts[15]) ]
# ----------2D Diamond ----------------------------------------------
# ---- wire frame (2D diamond) corner point
pts = [ (0,0,0), (-50,75,0), (0,150,0) ,(50,75,0) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wire frame (2D diamond) lines
lns = [ (pts[0],pts[1]), (pts[1], pts[2]), (pts[2],pts[3]), (pts[3],pts[0]) ]
# ----------2D Pentagon ----------------------------------------------
# ---- wire frame (2D pentagon) corner point
pts = [ (0,-100,0), (-95,-31,0), (-59,81,0) ,(59,81,0), (95,-31,0) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wire frame (2D pentagon) lines
lns = [ (pts[0],pts[1]), (pts[1], pts[2]), (pts[2],pts[3]), (pts[3],pts[4]),
(pts[4],pts[0]) ]
# ----------3D Diamond With Facets ----------------------------------
# ---- wire frame (3D diamond with facets) corner point
pts = [ (0,-50,0), (-50,50,0), (-25,40,40), (25,40,40), (50,50,0),
(-30,65,0), (-10,60,35), (10,60,35), (30,65,0) ]
# ---- pivot point
pivot = (0, 0, 0)
# ---- wire frame (3D diamond with facets) lines
lns = [ (pts[0],pts[1]), (pts[0],pts[2]), (pts[0],pts[3]),
(pts[0],pts[4]), (pts[1],pts[5]), (pts[2],pts[6]),
(pts[3],pts[7]), (pts[4],pts[8]), (pts[5],pts[6]),
(pts[6],pts[7]), (pts[7],pts[8]), (pts[1],pts[2]),
(pts[2],pts[3]), (pts[3],pts[4]) ]
# ----------3D Wire Frame Mystery Object ----------------------------
# ---- wire frame (3D mystery object) corner points
pts = [ (-50,-50,50), (-50,50,50), (50,50,50), (50,-50,50),
(-50,-50,-50), (-50,50,-50), (50,50,-50), (50,-50,-50),
(-100,0,0), (100,0,0), (0,-100,0), (0,100,0) ]
# ---- pivot point
pivot = (0.0, 0.0, 0.0)
# ---- wire frame (3D mystery object) lines
lns = [ (pts[0],pts[1]), (pts[1],pts[2]),
(pts[2],pts[3]), (pts[3],pts[0]),
(pts[4],pts[5]), (pts[5],pts[6]),
(pts[6],pts[7]), (pts[7],pts[4]),
(pts[0],pts[4]), (pts[1],pts[5]),
(pts[2],pts[6]), (pts[3],pts[7]),
(pts[0],pts[8]), (pts[1],pts[8]),
(pts[5],pts[8]), (pts[4],pts[8]),
(pts[3],pts[9]), (pts[2],pts[9]),
(pts[6],pts[9]), (pts[7],pts[9]),
(pts[1],pts[11]), (pts[5],pts[11]),
(pts[6],pts[11]), (pts[2],pts[11]),
(pts[0],pts[10]), (pts[4],pts[10]),
(pts[7],pts[10]), (pts[3],pts[10]) ]