Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 1.71 KB

README.md

File metadata and controls

18 lines (14 loc) · 1.71 KB

PyShapes

Simple 3d graphics in python.

To see a demo, run python shapes.py in a terminal (or console if you are in Windows). If you have the pygame module installed, then you can run python shapes_pygame.py file, which is about twice as fast on my MacBook Pro. EDIT: I haven't rewritten the pygame code in a long time, there are bound to be bugs in it's old demo, and the demo is not nearly as pretty as the shapes.py one.

#####TODO: (I will leave the simplistic version up)

  • Switch to using a plain Tkinter canvas instead of turtle!
  • Use numpy to make everything quick!
  • Replace the face ordering function with something that uses the distance to the barycenter or centroid of a face. This page should help.
  • Generalize the '''draw_cube''' function in a function that takes a list, a camera position, and a viewer position as arguments. The list argument should contain a list of points as it's first element, a list of of lists of points that represent the faces as the second element, and a list of colors, one for each face, as the last element.
  • Rewrite '''make_cube''' so that it returns a list like the one expected '''draw_cube'''
  • Implement a function like make_cube, but for tetrahedrons instead.
  • Perspective projection onto an arbitrary plane, more info here and here.
    • Fix perspective projection to work with a camera orientation vector.

If you can think of any other features that would be cool just let me know!