[Edu-sig] "dynamic geometry" application
Fri, 18 Feb 2000 13:20:24 -0800
At 02:06 PM 02/18/2000 -0500, Arthur Siegel wrote:
>It allows one to create relationships in 3d space between geometric
>"primitives" -points,lines,circles, spheres,etc. - by way of simple Python
>scripts. Points on the initial figure created can then be picked and moved,
>but all defined relationships follow. It's more sophisticated functions -
>the uses of arrays of points and lines for example, can be used to explore
>concepts of Projective Geometry in 3d space.
Sounds very interesting Arthur.
My approach has been to keep things simple in Python by
having it write scripts intelligible to other programs
which already know tons about 3D graphics.
Students write simple Python commands and get .wrl or
.pov files out the back, which then go to a VRML viewer
(usually a web browser plug-in) or to POV-ray, a free,
full-featured ray tracing engine. This approach
typifies what Python is good for: acting as a "glue
language" in collaboration with more specialized
What I give up, by going this route, is any trully "dynamic"
interface, i.e. students can't just grab stuff with a mouse
and twirl it in real time, or add edges/vertices by
simply pointing and clicking (as they can in STRUCK,
freeware written by my colleague, Gerald de Jong, in
I presume because of your OpenGL add-in etc., that you're
somehow making Python do graphical updates in real time,
in response to user-generated events. Personally, I don't
know Tk well enough to know how this is done. Seeing
your program would probably teach me a lot.
At this point in time, I'd be most interested in seeing
screen shots though, since I don't feel ready to digest
complicated source code. I'd like to develop an under-
standing the gist of your technique (without trying to
comprehend an entire application). If you want to share
any "cave painting" snippets that give me a feel for your
strategy, I bet others besides me would be interested.
Mostly, what I'm wondering is whether students with a
modest grasp of Python would be able to abstract generic
strategies and techniques from your tools -- what I'm trying
to impart at my Oregon Curriculum Network, where all my
source code is freely available and dissected in some
detail for the benefit of Oregonians (and other lurkers).
Oregon Curriculum Network