
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.1 Yaglom: a different interactive geometry package
Yaglom is an Interactive Geometry Package (IGP), which provides a Graphical User Interface to libraries
MoebInv.
1.1 Interactive Geometry Packages and Yaglom
You may be already familiar with popular and mature
IGPs like GeoGebra,
CaRMetal, Kig,
Dr. Geo and others. Does it make sense to
introduce yet another tool to the family? Yes, if it will be different.
Here is a list of some significant distinctions of Yaglom from common IGPs:
- A usual IGP treats differently geometrical objects like points, lines, circles, etc. For Yaglom all objects are cycles: points are cycles with zero radius, lines—with infinite and circles—with a non-zero finite radius.
- Majority of IGPs work in the context of Euclidean geometry while Yaglom realises all nine Cayley–Klein geometries [11, 3] and it is just a single mouse click to switch the graphical presentation of a figure from one to another.
- The above mentioned IGPs feature rich graphical toolbars of this sort:
Here icons represent different geometrical operations: construction
of the midpoint of an interval, a perpendicular from a point,
etc.
Instead, the toolbar of Yaglom contains only two geometrical
actions:
- Define Cycle ≔ explicitly providing its coefficients;
- Create Cycle ⚙ through a list of relations to already existing cycles.
This document provides further details on these and other features of Yaglom.
Previously this programme was known as MoebInv-GUI. Now it is
named after Soviet mathematician Isaak Moiseevich Yaglom
(Russian: Исаак Моисевич Яглом), who wrote several important
works on the underlying geometry. In particular this programme is a perfect companion to study Yaglom’s book [11].
1.2 Short overview of geometric constructions with Yaglom
The main purpose of Yaglom is to construct a
figure, which is a collection of interrelated
cycles. In the case of the elliptic metric cycles
are points, lines and
circles. Cycles in parabolic and hyperbolic
metric will be discussed latter.
The construction of figures is performed as follows:
- Every figure has
already two pre-defined cycles:
- The real line
ℝ, that is cycle (0, [0, 1], 0).
- Infinity ∞, that is cycle (0, [0, 0], 1).
Further initial cycles can be explicitly defined by a user. Points can
be simply added
by mouse LeftClick on the graphics
view. Arbitrary cycles or lines can be supplied by their
equation coefficient through
the dialogue activated by Define Cycle ≔ button.Some basic cycles can be created by a pair of mouse clicks. For this call the figure Context Menu (RightClick with no existing cycle highlighted) and select to create either from:
- The origin—point at (0,0) .
- The origin—as the cycle (1, [0, 0], 0), the difference with the previous will be noticeable in the parabolic point space with cycle movements.
- The vertical axis, that is cycle (0, [0, 1], 0).
- The unit cycle, that is cycle (1, [0, 0], −1).
Note, that the origin, real and vertical axes with infinity form a basis of the cycle space. Moreover, transforming the vertical axis (shifts and rotations) and the unit cycle (shifts and scaling) as described in the next item, you may obtain an arbitrary cycle by just mouse clicks without keying their coefficients.
- Cycles without parents (that is created as indicated above) may be modified at any time in several ways. It is possible to select a cycle by moving mouse pointer over it, the selected cycle will be highlighted by a special colour. For the selected cycle you can either
- call its context menu by the RightClick and then select Edit parameters; or
- move it by the mouse with LeftClick+Hold. Esc key pressed during the movement cancels the operation; or
- resize it by mouse movement with Ctrl+LeftClick+Hold. The resulting cycle will pass the final point of the mouse move and its previous centres will be preserved for circles and hyperbolas; scaled parabolas will keep their vertices.
- rotate a straight line by selecting the line with the mouse and then Ctrl+MouseWheel will rotate it around the pointer.
Furthermore,
- RightClick on other elements (e.g. subfigures) or areas call respective context menus.
- MouseWheel zooms in/out the scene.
- Shift+LeftClick+Hold pans the graphic view.
-
A new cycle can be created through a list of
relations to already existing cycles and itself, see
§ 2 below. Respective relations are
selected in context menus which are called by mouse RightClick
either on the geometric representation of cycle in the graphic view
or on its line in the tree view. The list of chosen relation can contain a
relation of new cycle to itself, which can be selected by clicking
New cycle ↷ button. This menu also allows us to select a generation for a new cycle:
- default—the following after its youngest parent;
- last existing in the present figure (if it is not yet occupied by some parent already);
- new after the last generation;
- with a particular number (if all parent are located earlier).
Using this feature you may place, say, medians and altitudes of a triangle in separate generation despite their similar relation to parenting sides/vertices of the triangle.Once all required relations are selected, a click
on Create Cycle ⚙ will add a cycles (if any) which satisfy all
specified conditions. The locus of point (if non-empty) well be sketches in the graphics view. See § 2.5 for some introductory examples.
- It is possible to use an existing figure as a building block for a new figure, see § 3 for details.
- Any cycle created by user as described above can be at any time re-assigned by any desired value or above type with the only restriction: a cycle cannot be requested to be parented by any its current descendants. That can be done from the Edit parameters action of the cycle Context Menu. The dame menu provides few more options@ change cycle’s label or drawing style, delete it.
- Yaglom can check that a certain relation among existing cycles. That makes sense if the relation was not explicitly requested earlier and allow us to experiment with trueness of geometrical statements.
- Created figures can be saved or exported to several different formats for further use.
1.3 Any further advice?
Above brief description shall be sufficient to start with Yaglom, but it does not cover all aspects and scenarios, of course. A necessary experience can come from practical use and Yaglom is designed to deliver necessary support just in time it would be needed.
ToolTips and StatusTips provide brief descriptions of all elements. If something requires a more extended advice it may be provided from Shift-F1 keybinding. All dialogues provide brief descriptions of information required from user, e.g. the number of parents for particular relation, a nature of parameters, etc. If some elements are not compatible for simultaneous use, unnecessary part will be disabled/removed by Yaglom. This document along with some further information are available from the Help menu.
It may be convenient to start from the video illustrating usage:
There are several more videos on various aspects of Yaglom usage, they are referred below and appear in respective sections of Yaglom’s menu.
The geometric meaning of various relations is discussed in the next
section. Nobody shall be scared by the number of available relations, in fact a good portion of basic geometric construction is possible through the most fundamental—orthogonality, see § 2.5 (well, be in pencil is handy as well). Other relations help to refine more advanced constructions.
Mathematical foundation of relations are comprehensively
presented in [3, 4, 5]. If a user is not familiar with
them, a very brief revision is provided in § 6.
There is a possibility to edit the library of subfigures
from within Yaglom itself. This provides a convenient and powerful
macro-like tool. Here is an illustration of its usage:
Further advise on library of subfigures is provided in Section 3.
We do not describe the standard menus like File, Edit, etc. in the hope that their nature is familiar to a user and behaviour is intuitive and predictable. There are tooltips and status bar messages to hint on particular elements of GUI. All operations are accessible from GUI Main menu (Toolbar) and/or context menus of respective GUI elements.
It is possible to make some group actions (e.g. change drawing style or delete) on any selection of cycles. For this either call a context menu either RightClick:
- of a cycle generation (to apply an action to all cycles in this generation); or
- of an arbitrary selection of cycles, created by keyboard Shift/Ctrl modifiers to LeftClick on the cycles tree view.