Yaglom allows us to make geometric transforms of the figure, which maps cycles into cycles and preserve their relations (if suitably arranged). Thus a figure is transformed into a new figure with a similar structure. There are two types of implemented transforms:
For each transformation the user can specify how cycles and their relations will be affected. This will be described in this section. There is a demo video on transformations.
Many familiar geometric transformations can be realised as fractional linear transforms with suitable (hyper)complex coefficients. Hypercomplex numbers are required if we are working with nine Cayley–Klein geometries [11, App. C]. For simplicity, we will speak only on complex numbers for now.
A point of a plane with coordinates (u,v) can be identified with a complex number z=u+i v, where i2=−1 is the imaginary unit. A fractional linear transform defined by a 2× 2 complex matrix (
a | b |
c | d |
) is defined by
z ↦ |
| . (1) |
If ad−bc≠ 0 and the complex plane is extended by a point at infinity then (1) is a bijection.
An important subfamily of (1) defined by four real values a, b, c and d, they are called Möbius transform. They have some special properties, for example, they preserve the real axis. Möbius transforms are produced by matrices from the group SL2(ℝ). Therefore, there is a special line in Yaglom menu SL(2,R) Möbius transform ⊞ .
Here are few important examples of geometric transformations realised as (1):
1 | t |
0 | 1 |
a | 0 |
0 | 1 |
0 | −1 |
1 | 0 |
cosα +i sinα | 0 |
0 | 1 |
Note, that the first three transforms are Möbius. All more general Möbius or fraction linear transforms are compositions of the above elementary ones.
Reflection in a cycle or inversion is an important class of transforms implemented in Yaglom. If the cycle is a straight line, then we meet the familiar mirror symmetry. In general it is like a reflection in a bent mirror.
Yaglom provides two option to define a reflection:
Defining a transform the user shall select on the following:
In the second case, if existing relations will be abandoned, there are two further possibilities:
If the old cycles are kept then their images will need to get new unique labels. This is implemented through substitutions with regular expression. By default, Yaglom provides suggest the renaming by the rules
^([^{].*?)(\^(.+))?$ $01^$03$`0 ^\{([^\^]+)(\^\{(.+?)\}|\^([^{]))?(.*)\}$ $01^{$03$040}$05
These are the pattern and replace string separated by single TAB character.
Examples of the respective substitution are
A → A^1
and
A^123 → A^1231
(note, that A^1231
will be shown as A1231 on the screen). If the last character 1 in the replacement string will be changed to 2 (or any other character), then there will be the same change in the sup-index of the new label. A user can provide other regular expressions for labels modification. It may be several regular expressions which will be applied one after another. For this each pair ⟨pattern⟩TAB⟨replacement string⟩ shall be placed on a separate line in the desired order of application.