Previous Up Next
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

5 Transforms

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.

5.1 Fractional linear 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 (

  ab
cd

) is defined by

z ↦  
az+b
cz+d
. (1)

If adbc≠ 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):

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.

5.2 Reflections in cycles

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:

5.3 What to do with cycles and their relations?

Defining a transform the user shall select on the following:

  1. New figure will include only transformed cycles. More precisely, the requested transform will be applied to all cycles from generation-0. Then other generation will be rebuild step-by-step using the recorded cycle relations from the figure. All cycle labels will be preserved and new figure will not have explicit traces of the transformation which was used for it, only the result will be kept.
  2. New transformed cycles will be added to the current figure. This can be done in two different ways:
    1. New cycles will be added by the above procedure described in 1. That is only generation-0 cycles will be directly transformed, other they be derived from them through cycles relation.
    2. Required transform will be directly applied to all existing cycles regardless of their mutual relations. Therefore any new cycle will have only one parent—a cycle from the old figure which is its pre-image.
    Clearly, if the original figure was build only with invariant cycle relations, then both routine will produce the same appearance although their inner structure will be quite different.

    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 ⟨patternTABreplacement string⟩ shall be placed on a separate line in the desired order of application.


Previous Up Next