Worked on adding zoom functionality. Also changed the main canvas to be a cartesian canvas with (0,0) in the middle. This seems to be working well. I do still have one zooming bug, where the scroll-wheel input seems to be one behind what it should be. Possible a binding problem? I'll need to work on fixing this next.