Warning: this is lecture demonstration software, not a finished product. Some features are not yet implemented, and there are a handful of known bugs plus an unknown number of undiscovered bugs. The most serious bugs appear to be specific to Windows 98 and do not appear in Windows XP. You should only rely on things that you have seen done in class.
The latest release will be kept on the course Web site as ck.exe. It should work on any computer with Windows. If there are problems on your computer, please email a bug report to bamberg@tiac.net.
The CK program implements five geometries, all of which can be accessed from the "Geometry" menu. Once you have selected a geometry, you can drop down the "Theorems" menu to set up prebuilt demonstrations, or you can insert points, lines, and circles interactively. The "Theorems" menu will keep growing throughout the term.
Points, lines, and circles can be constructed by selecting the corresponding
icon on the toolbar near the bottom of the screen. When inserting a line,
you may choose a segment (bounded at both ends), a ray (unbounded at one end),
or a line (unbounded at both ends).
If you add a point by double-clicking, it becomes "traced" and you can see
its path when you carry out a translation or rotation.
The leftmost icon is the select icon, and allows selection of items. Selection of multiple items is made possible by the use of the Shift key. You can also drag a rectangle to "lasso" items that you want to select. Selected items appear in red in the window.
Items can be deleted by selecting them and pressing the delete key on your keyboard. Deletion is somewhat recursive. That is, if a line segment was constructed between points A and B, deletion of either of these points will cause the line to be removed.
Items can be moved by clicking the mouse over a selected item and dragging. When this is done, all selected items will be moved at the same time in a manner that makes the most sense, depending on geometry. If you try to move a point that was constructed as a point on a line, then the point will be restricted to the line and will not move off either end of the line.
There are various operations that may be performed to any set of selected
objects. A menu of valid operations can be obtained by choosing "Construct"
or "Calculate" from the main menu or by right-clicking on the selected item.
Examples:
If two points are selected, you can construct the line segment joining them,
or display the distance between them.
If a line segment is selected, you can construct its midpoint or perpendicular
bisector.
If two lines are selected, you can construct the point where they intersect.
If three noncollinear points are selected, you can use Line/Ray/Segment to
draw a triangle, or you can construct a circle through the three points, or
you can do both.
If three points that define an angle are selected, you can measure or bisect
the angle.
If a line and a point not on the line are selected, you may be able (depending
on the geometry) to construct a line through the point that is parallel or
perpendicular to the selected line.
If several points are selected, you can measure the coordinates of all of
them.
An operation is only valid if it may be performed on all selected objects.
That means if you selected three points and a line, you will no longer be
able to measure the coordinates because it makes no sense to measure the
coordinates of a line. You can remove an object from the selected set by
Shift-click.
It is possible to zoom in and out. The Zoom commands are accessed from the view menu. Zoom Out is useful if you have translated or reflected something off the screen.
Serialization has been implemented to allow saving and reloading of files. These functions can be accessed via the "File" menu. The shortcut keys for opening and saving are the same as all other windows applications: Ctrl+O for open and Ctrl+S for save. Many of the things that are done via the Theorems menu can also be accomplished via serialization.
Translations and rotations are two general transformations that have been implemented for all geometries. These can be accessed by the rightmost three icons. These icons, from left to right, are horizontal translation, vertical translation, and rotation, respectively. Note that translation may be done in ANY direction by dragging the anchor points of the axis of translation which shows up once a translation icon has been clicked. There are two separate icons for horizontal and vertical translation only because these are two special cases that might be used often. After the axis of translation has been fixed, drag your mouse to perform the translation in the direction hinted at by the mouse. Note that if you drag your mouse starting from the axis, nothing will move as the program will think you are trying to move the axis. Lastly, if you single-click on the end of the axis of translation, the object will perform a smooth translation towards that direction for several screens. A second click stops the motion.
Rotations are done by clicking the rightmost icon. A center of rotation will appear and can be changed by dragging the point to various places. The rotation is then performed by dragging the mouse around the center of rotation. If you click near the top boundary of the screen, the object will start to rotate counterclockwise and stop when you click again. If you click near the bottom boundary of the screen, the object will rotate clockwise.
In some geometries, it may not be possible to move things to certain places. For example, in hyperbolic geometry, the great circle represents infinity, and thus it is never allowable to move any objects to a point outside of the circle. The various details of each geometry will be explained in class.
For Euclidean geometry only, it is possible to carry out a reflection by setting up a line using one of the translation buttons, then double-clicking. The line of reflection can be dragged parallel to itself, or its direction can be changed by dragging one of the anchor points. This reflection feature will eventually be added for all geometries.
Clicking the matrix button on the lower toolbar causes the 3x3 matrix that
represents the cumulative effect of all transformations to be displayed in
red. Its inverse is displayed in blue. If you start with Theorems...Unit
Vectors in Euclidean geometry, this is a great way to learn about the matrix
representation of isometries of the Euclidean plane.
To use the Theorems menu, click on the "DO IT" icon at the right of the main
toolbar. This will change the display and present a message explaining
what has happened. Adding new theorems is not difficult to learn to
do and might lead to an interesting term project.
Known bugs as of Feb. 19, 2003:
1. Reflections are not yet implemented correctly in non-Euclidean geometries.
2. Adding a "Point on Object" and then trying to move the object causes a
crash.
3. When a point is added as a Point of Intersection, distances that involve
it are incorrect.
4. If two nonintersecting lines are selected in hyperbolic geometry, you
cannot construct the unique line that is perpendicular to both of them.
5. Circular arcs that do not fit inside a square whose side is less than
32768 pixels are not drawn under Windows 98.
6. If two nonintersecting lines are selected in hyperbolic geometry, you
can construct the unique line that is perpendicular to both of them.
7. In hyperbolic geometry, the rotations that you get by clicking at the
top or bottom of the screen are too fast.
8. In hyperbolic geometry, the translations that you get by clicking at the
ends of the anchor line go the wrong way.
9. Performing a translation in elliptic geometry sometimes causes an unusual
error message (observed only in Windows 98).
Other bug reports should be emailed to bamberg@tiac.net
Authorship and sponsorship:
Paul Bamberg is responsible for the overall architecture and the matrix implementation
of the various geometries.
Qian Zhang is responsible for the user interface: drawing, mouse handling,
menus, toolbars, etc.
This project was supported by the Dean of Undergraduate Education and the
Extension School.