This project is read-only.

Ideas for Transformations

Mar 17, 2010 at 3:04 PM
Edited Mar 17, 2010 at 3:04 PM

I'm looking for suggestions or feedback regarding transformations.  I checked in code that allows a user to translate a figure based on the new vector.  Alternatively translation values can be entered in the properties grid.  If a point is translated by values, these values can be edited at any time.  I know translation is somewhat trivial but it is an important part of math education.

Rotation and dilation values can also be made dependent on figures in the drawing.  A rotation could use an angle measurement and a dilation could use two length measurements (to get a ratio).  The user could optionally make the measurements invisible.  If the measurements that a transformed point depend on are deleted then the point could switch to depending on values.  But just like translation, values for rotation and dilation can be entered in the properties grid.

I still think a scale transformation would be a nice addition.  I added dilation first because in most american math classrooms, dilation is studied first.  Scale is slightly more complicated in that it can have different factors for each orthogonal direction.

Mar 21, 2010 at 11:16 PM

David, your transformations are just great. Sorry I didn't have time so far to follow up in detail, but at first sight it looks terrific. Makes me think that one of the next steps we should implement is a slider control that has a value, and then one could use that value in any expressions. One could also type in an expression for transformation parameters that depends on one or more sliders. This is how line and circle equations are implemented now (you can specify any expressions for m and b in y = m * x + b line equation, and those expressions can depend on points, such as A.X and A.Y).

I'm terribly busy testing the final build of Visual Studio 2010 right now, but things should be better after April 12, when the final release of VS 2010 is out the door. For now my next plan is to reach 100% functional parity with the old "DG" program that I wrote almost 10 years ago (http://dg.osenkov.com). Only some minor features are left. My next plan is labels for points (that show point names), list of all figures, step-by-step construction playback, help, mouse hover hints, and some minor cosmetic improvements. Once we're reached full parity with the original version, I will be more flexible in terms of what to implement next and can help out with stuff here and there.

Thanks again!

Kirill