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:
- Some initial cycles can be explicitly defined by a user. Points can
be simply added
by mouse LeftClick on the graphics
view. Circles or lines can be supplied by their
equation coefficient through
the dialogue activated by Define Cycle ≔ button. Every figure has
already two pre-defined cycles:
- The real line
ℝ.
- Infinity ∞.
- 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 centre will be preserved.
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.
ToolTips and StatusTips provide brief descriptions of all elements, see Help menu for further details.
There an illustrative example of usage:
From v1.3.0 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.
The geometric meaning of various relations is discussed in the next
section. It relays on mathematical foundation which comprehensively
presented in [3, 4, 5]. If a user is not familiar with
them, a very brief revision is provided in § 6.
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.