I am interested in writing interactive programs in computational geometry using Python. Here are a couple of nice examples to illustrate what I have in mind.
I want to prototype several heuristics for a research problem I am working on. The following example would be a typical use-case for me.
Once the program runs, a GUI window opens up into which a user can "mouse" in his/her points in the two dimensional plane using mouse-clicks. The user can also move these points to a different position by clicking these points.
I would then like to have several buttons available below to experiment with, say, different convex-hull algorithms -- Each button would run and animate different convex-hull algorithm on the same set of points.
Scipy, Numpy and the CGAL Python bindings contain the necessary algorithmic ingredients but they do not have any visualization tools. I know MATPLOTLIB is a great plotting tool, but AFAIK it cannot do interactive animations of the types above.
I know I would have to base my GUI program on GUI toolkits using WxPython or PyQT. But from what I know, these libraries only provide the GUI part of drawing windows, mouse-clicks, status bars, menu bars etc. -- nothing to draw or handle geometric objects like points, segments, lines, circles, splines etc.
I am guessing some kind of "geometry manager / app" would have to be "embedded" inside a wxPython frame with which the user can interact. Every mouse-click should then translate into a pair/triple of real numbers depending on the dimension of the problem.
But I am not sure, since I have never done GUI programming. The only
animations I have done are non-interactive by using ffmpeg to stitch
.png plot output files from matplotlib at successive time-steps.
**Any recommendations for a good mature library to do this? **