Interactively play with/visualize matrices, vectors, transformations, points, polygons, circles, etc. Can run a function periodically to animate things.
If you just wanna use it, go to the releases and download the installer. Once installed/launched, read the quick-reference/examples pane on the right of the application's window to learn how to use it.
You don't need to read the rest of this document unless you want to develop/build the application itself.
- python 3
- numpy
- jedi (used for autocomplete)
The functionality is split into a bunch of classes. Generally 1 class per file (file has same name as class).
CodeEditorrepresents basically the left side of the gui (where you type code and press shift + enter to run it)CommandInterpretterrepresents the thing that executes code typed in the CodeEditor (and also draws visual representations on a tkinter canvas). Basically the right side of the screen.Completionsis an autocomplete widget (a widget is a tkinter GUI element)Helpis a widget that displays a quick reference and examples (toggled by pressing f1)QuickReferenceis a widget that displays the quick referenceExamplesis a widget that displays example codeconfig.pydoesn't have a class, but contains program-wide (not just module-wide) globalsutilities.pydoesn't have a class, but contains utility functions that the end-user can use (e.g.random_color())Guirepresents the GUI as a whole (the code editor and the command interpretter)MathObjectis the base class of all things you can create (Vectors, Points, Polygons, matrices, etc)Vector- a 2d vectorPoint- a 2d pointPolyline- a sequence of connected pointsPolygon- like Polyline, but closed (i.e. last point is connected to first)LinearT- represents a 2d linear transformation (i.e. does not have a translation component)AffineT- represents a 2d affine transformation (i.e. does have a translation component)
- need the dependencies noted above as well as
pyinstallerandNSISinstalled - run
create_installer.pyto create a standalone installer that you can distribute- This script uses pyinstaller first to create a standalone folder, then makes an installer from that folder using NSIS. The installer is called
install_matrix_playground.exeand is place at the root of the project folder.
- This script uses pyinstaller first to create a standalone folder, then makes an installer from that folder using NSIS. The installer is called
Thanks to python, jedi (python smart autocomplete library), and NSIS for making creating this easy(ish).
