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).
CodeEditor
represents basically the left side of the gui (where you type code and press shift + enter to run it)CommandInterpretter
represents 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.Completions
is an autocomplete widget (a widget is a tkinter GUI element)Help
is a widget that displays a quick reference and examples (toggled by pressing f1)QuickReference
is a widget that displays the quick referenceExamples
is a widget that displays example codeconfig.py
doesn't have a class, but contains program-wide (not just module-wide) globalsutilities.py
doesn't have a class, but contains utility functions that the end-user can use (e.g.random_color()
)Gui
represents the GUI as a whole (the code editor and the command interpretter)MathObject
is 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
pyinstaller
andNSIS
installed - run
create_installer.py
to 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.exe
and 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).