1

This is a follow-up to this 2017 question, in which we assume that we have a set of points $x_i$ on the Poincaré disk and a translation $F$ of point $x_0$ to $F(x_0) = x_{0}'$. We want to compute $F(x_i)$ for each point $x_i$ such that it preserves the distance and orientation of each point to another in hyperbolic space.

I understand from this answer that this alone is not enough to determine the function $F$, so we can assume that the line from $x_0$ to $x_0'$ is the axis of rotation for each point. What I don't understand is how to compute this concretely. Therefore I would like to ask how to compute the function F for example values (with no special meaning):

$x_0: (0.4, -0.2)$ and $F(x_0) = (0.35,-0.25)$

$x_1: (-0.2, 0.5)$

$x_2: (-0.6, -0.8$)

In this case, what would $F(x_1)$ and $F(x_2)$ be?

Context: I have been trying to create a write a JavaScript program that does this automatically for any point on the unit disk, but my results are wrong, so there must be something wrong with my computation.

Sid
  • 4,372
  • 1
    "Axis of rotation for each point" is significantly unclear to me... Can you paraphrase or otherwise clarify? – paul garrett Jul 05 '22 at 20:12
  • 1
    this is all easier in the upper half plane. The Mobius transformations there are $ \frac{az+b}{cz+d}$ where $a,b,c,d$ are real and determinant $ad-bc > 0.$ To go back and forth with the disc, one direction is $ \frac{iz+1}{z+i},$ the inverse direction is $ \frac{z+i}{iz+1}$ which is also the ordinary reciprocal. Anyway, recommend upper half plane. – Will Jagy Jul 05 '22 at 20:17
  • Your 1st sentence is unclear and so is the 2nd. – Moishe Kohan Jul 05 '22 at 20:33
  • @WillJagy Unfortunately, using the upper half plane model is not an option. – Sid Jul 05 '22 at 20:35
  • @MoisheKohan I think the first sentence should be clear for those familiar with the Poincaré disk model of hyperbolic geometry. – Sid Jul 05 '22 at 20:39
  • @paulgarrett I believe that the function F is not uniquely determined in the sense that the points on the disk could be rotated while still preserving their distance. So what I mean by this sentence is that when we compute the Möbius transform, we would use the line from $x_0$ to $F(x_0$ as the axis of ration. I hope this is clear. – Sid Jul 05 '22 at 20:41
  • I am well familiar with hyperbolic geometry. Your sentence does not parse even on the syntax level. As for math: There is no agreement on what a "translation" means in hyperbolic geometry. You are misusing the word "orientation" which has very precise meaning in geometry and topology.... – Moishe Kohan Jul 05 '22 at 20:48
  • Sid, you do not need to have any explicit presence in javascipt for the half plane model. At the price of one mapping of your points to H ( the half plane) and one mapping back, you can use fairly clean algebra in the middle, uncertain, part – Will Jagy Jul 05 '22 at 20:48
  • @WillJagy Just to make sure I understand: Do you think it would be easiest to convert the points $x_i$ to the half plane model, do the computations there, and then convert the points back afterwards to the Poincaré model? – Sid Jul 05 '22 at 20:52
  • YES.................. – Will Jagy Jul 05 '22 at 20:53
  • If you are wanting the geodesic from $x_o$ to $F(x_o)$ to be an "axis of rotation", I do not know what you mean. For $x_o\not=F(x_o)$, there are very few Mobius transforms that fix both, and few of them fix both $x_o$ and $F(x_o)$. Can you say precisely, formulaically, what you mean to have happen? – paul garrett Jul 05 '22 at 21:12
  • @paulgarrett: Here is an attempt: I would like $d(x_0', x_i') = d(x_0, x_i)$ for each $x_i$ where $d$ is the Poincaré distance function and $\angle(x_0', x_i') = \angle(x_0, x_i)$ with respect to the point at $(0,0)$. – Sid Jul 05 '22 at 21:21
  • All mobius transformations preserve hyperbolic distances, and also preserve angles in hyperbolic triangles. But since $0$ is likely not fixed by $F$, your angle condition would very rarely be met. Maybe that's not what you mean/want? – paul garrett Jul 05 '22 at 21:23
  • Also, if you want $F$ to not only send $x_o$ to $x_o'$, but also stabilize the geodesic line connecting the two, that does uniquely specify $F$. Is this conceivably what you want? This would automatically preserve the angles in hyperbolic-geodesic triangles (but not in the sense of your comment). – paul garrett Jul 05 '22 at 21:25
  • @paulgarrett That is conceivably what I want. Informally, what I really want is just a formula that helps me compute where each point $x_i$ should move in the model if I know that $x_0$ is going to move to $x_0'$. The resulting changes should not modify the hyperbolic angles or hyperbolic distances between any of the points and the disk should still look identifiable, i.e., without any "unnecessary" (?) rotations. – Sid Jul 05 '22 at 21:27
  • 1
    Ok, in a little while I'll write some formulas and tell exactly what they do... :) – paul garrett Jul 05 '22 at 21:29

1 Answers1

2

As description, I will use complex numbers and their algebra, and also express Mobius transformations by two-by-two complex matrices, acting by $\pmatrix{a&b\cr c&d}(z)={az+b\over cz+d}$, as usual. All the Mobius transformations stabilizing the open unit disk preserve hyperbolic angles in hyperbolic triangles, and preserve hyperbolic distances between pairs of points. Composition of Mobius transformations is exactly given by multiplication of the corresponding matrices.

First, for $\beta$ in the open unit disk, $g_\beta=\pmatrix{1 & \beta\cr \overline{\beta}&1}$ maps $0$ to $\beta$. Further, this map is the unique such that preserves the geodesic connecting $0$ and $\beta$, namely, the diameter passing through $\beta$. Proving this is not soooo hard, but involves some ideas that are fancier than the mere computation itself.

Any conjugate $hg_\beta h^{-1}$ (matrix multiplication) for $h$ a Mobius transformation stabilizing the disk will have the same property with regard to the points $h(0)$ and $h(\beta)$.

Given $z,w$ in the unit disk, let $h=g_z$, and $\beta=h^{-1}(w)$. Then the matrix product $hg_\beta h^{-1}$ maps $z$ to $w$, and has the stabilizing-the-connecting-geodesic property.

In terms of programming, apart from finding packages to do such stuff, I'd definitely want to "package" the components, rather than have one big ghastly formula.

(In fact, this particular computation is easier on the disk rather than the upper half-plane, because the geodesic-generating elements are easier to write down...)

paul garrett
  • 52,465
  • Thank you very much. If it is not too much trouble, would it be possible for you to demonstrate how to use this to calculate $F(x_1)$ or $F(x_2)$ in the example I posted? – Sid Jul 05 '22 at 23:58
  • Perhaps tomorrow... but/and I'd package your points as complex numbers rather than as pairs of reals, to begin with, and (if you don't already have such a package...) I'd write some subroutines that did arithmetic on complex numbers, that took as arguments names for complex numbers... rather than pairs of real numbers, thought that could be a "constructor" for a complex number. That kind of thing. – paul garrett Jul 06 '22 at 00:06
  • No problem. I understand this answer now after the edit, so I can try to do it myself. Thanks again. – Sid Jul 06 '22 at 00:07
  • Ah, yeah, sorry about the typo! :) – paul garrett Jul 06 '22 at 00:07
  • I implemented your formulas in JavaScript and the visual results are exactly what I was hoping for. Thanks again! Just for the sake of completeness: I get that $F(x_1) = (-0.391, 0.337)$ and $F(x_2) = (-0.476, -0.879)$. – Sid Jul 06 '22 at 14:40
  • Good! :) :) :) Glad to help. – paul garrett Jul 06 '22 at 17:14