Generalized circles and Möbius transformations

Posted on March 12, 2019 by Stéphane Laurent
Tags: R, maths, geometry

It is well known that a Möbius transformation maps a generalized circle to a generalized circle. In this blog post, not only we prove this fact, but we also provide the equation of the image generalized circle.

Generalized circle

A generalized circle is a circle or a line. We shall see that a generalized circle \(\mathcal{C}\) has equation \[ Az\bar{z} + \bar{\gamma}z + \gamma\bar{z} = D \] where \(A\) and \(D\) are real numbers, \(\gamma \in \mathbb{C}\), and

  • \(A=0\), \(D \geq 0\), \(\gamma \neq 0\), when \(\mathcal{C}\) is a line;

  • \(A \neq 0\) when \(\mathcal{C}\) is a circle, and \({|\gamma|}^2 + AD > 0\).

Circle equation

The circle with center \(z_0\) and radius \(R\) has equation \(|z-z_0|=R\). Now, \[ |z-z_0|=R \ \ \iff \ \ {|z-z_0|}^2=R^2 \ \ \iff (z-z_0)\overline{(z-z_0)} = R^2 \] \[ \tag{1}\iff \ \ z \bar z - \bar{z_0}z - z_0\bar{z} = R^2 - {|z_0|}^2. \]

Now, let the equation \[ Az\bar{z} + \bar{\gamma}z + \gamma\bar{z} = D \] with \(A\), \(D\) real numbers, \(A \neq 0\), and \(\gamma \in \mathbb{C}\).

It is equivalent to \[ z\bar{z} + \frac{\bar{\gamma}}{A}z + \frac{\gamma}{A}\bar{z} = \frac{D}{A}. \]

Then it has the same form as \((1)\) with \[ z_0 = - \frac{\gamma}{A} \] and \[ R^2 = {|z_0|}^2 + \frac{D}{A} > 0. \] Thus \[ \dfrac{{|\gamma|}^2}{A^2} + \frac{D}{A} > 0, \] that is \({|\gamma|}^2 + AD > 0\).

Line equation

The general equation of a line is \[ \cos\theta \cdot x + \sin\theta \cdot y = d \] where \(\theta \in [0,2\pi)\) is the direction of the line, and \(d \geq 0\) is its offset.

Letting \(z = x+iy\), it is equivalent to \[ \bar{\gamma}z + \gamma\bar{z} = D \] with \(\cos\theta = \frac{\Re(\gamma)}{|\gamma|}\) and \(\sin\theta = \frac{\Im(\gamma)}{|\gamma|}\), hence \(\theta = \textrm{arg}(\gamma)\), and \(d = \frac{D}{2|\gamma|}\). Indeed, \[ \bar{\gamma}z + \gamma\bar{z} = D \ \ \iff \ \ \frac{\bar{\gamma}}{|\gamma|} z + \frac{\gamma}{|\gamma|}\bar{z} = \frac{D}{|\gamma|} \] \[ \ \ \iff \left( \frac{\bar{\gamma} + \gamma}{|\gamma|} \right) x + \left( \frac{\bar{\gamma} - \gamma}{|\gamma|} \right) i y = \frac{D}{|\gamma|} \] \[ \ \ \iff \left( \frac{\Re(\gamma)}{|\gamma|} \right) x + \left( \frac{\Im(\gamma)}{|\gamma|} \right) y = \frac{D}{2|\gamma|}. \]

Conversely, if the equation \(\cos\theta \cdot x + \sin\theta \cdot y = d\) is given, then one can take \(\gamma = \cos\theta + i \sin\theta\), and \(D = 2d\).

Möbius transformations

A Möbius transformation is a function \(M \colon \hat{\mathbb{C}} \to \hat{\mathbb{C}}\) of the form \[ M(z) = \frac{az+b}{cz+d}, \] where \(a\), \(b\), \(c\), \(d\) are complex numbers satisfying \(ad - bc \neq 0\), and we agree with

  • \(M(\infty) = \infty\) if \(c = 0\) (hence \(d \neq 0\));

  • otherwise, \(M(\infty) = a/c\) and \(M(-d/c) = \infty\).

We say that the matrix \[ A = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \] is associated with \(M\). Note that \(A\) is invertible because of the condition \(ad - bc \neq 0\).

Also note that \(M(z) \equiv z\) means that the identity matrix is associated with \(M\).

Composition of Möbius transformations

Let \(M_1\) and \(M_2\) be two Möbius transformations, \(A_1\) a matrix associated with \(M_1\) and \(A_2\) a matrix associated with \(M_2\). Then \(M := M_1 \circ M_2\) is a Möbius transformation and \(A_1A_2\) is a matrix associated with \(M\).

As a consequence, any Möbius transformation \(M\) is invertible and its inverse is the Möbius transformation associated to the matrix \(\begin{pmatrix} d & -b \\ -c & a \end{pmatrix}\) if \(\begin{pmatrix} a & b \\ c & d \end{pmatrix}\) is a matrix associated with \(M\).

Image of a generalized circle

We shall see that a Möbius transformations maps a generalized circle to a generalized circle. We denote by \(M\) the Möbius transformation associated to \(\begin{pmatrix} a & b \\ c & d \end{pmatrix}\).

Image of a circle

Let \(\mathcal{C}\) be the circle of center \(z_0\) and radius \(R\). We have seen that \(\mathcal{C}\) has equation \[ z \bar z - \bar{z_0}z - z_0\bar{z} = R^2 - {|z_0|}^2. \] We set \(H = R^2 - {|z_0|}^2\). Inserting \(z = M^{-1}(w) = \frac{dw - b}{a - cw}\), we get \[ (dw - b)\overline{(dw - b)} - \bar{z_0}(dw - b)\overline{(a - cw)} - z_0 \overline{(dw - b)}(a-cw) \\ = H (a - cw)\overline{(a - cw)}, \] that is, \[ \begin{align} & \Bigl( d\bar{d} + d\bar{c}\bar{z_0} + \bar{d}c z_0 - H c\bar{c} \Bigr) w \bar{w} \\ \qquad & - \Bigl( d\bar{b} + d\bar{a}\bar{z_0} + c\bar{b}z_0 - H c\bar{a} \Bigr) w \\ \qquad & - \Bigl( b\bar{d} + b\bar{c}\bar{z_0} + \bar{d}a z_0 - H a\bar{c} \Bigr) \bar{w} \\ = & \; H a\bar{a} - b\bar{b} - b\bar{a}\bar{z_0} - \bar{b}a z_0. \end{align} \] Now, \[ \begin{align} d\bar{d} + d\bar{c}\bar{z_0} + \bar{d} c z_0 - H c\bar{c} & = (d + c z_0)\overline{(d + c z_0)} - R^2 c\bar{c} \\ & = {|d+c z_0|}^2 - R^2{|c|}^2 \\ & =: A, \end{align} \] \[ \begin{align} H a\bar{c} - b\bar{d} - b\bar{c}\bar{z_0} - \bar{d}a z_0 & = R^2 a\bar{c} - (a z_0 + b)\overline{(c z_0 + d)} \\ & =: \gamma, \end{align} \] \[ \begin{align} H a\bar{a} - b\bar{b} - b\bar{a}\bar{z_0} - \bar{b}a z_0 & = R^2 a\bar{a} - (b + a z_0)\overline{(b + a z_0)} \\ & = R^2{|a|}^2 - {|b + a z_0|}^2 \\ & =: D. \end{align} \] The equation is \[ A w\bar{w} + \bar\gamma w + \gamma\bar{w} = D. \]

If \(\boxed{A \neq 0}\), that is \(|d+c z_0| \neq R|c|\), this is the equation of the circle with center \(-\gamma/A\) and radius \(\sqrt{\frac{{|\gamma|}^2}{A^2} + \frac{D}{A}}\).

Let’s check with R. To do so, we use the circumcircle function below, which returns the center and the radius of the circle passing by z1, z2, z3.

Let’s take an example:

We have the following alternative expressions of the center and the radius: \[ w_0 = M\left(z_0 - R^2\overline{\left(\frac{d}{c}+z_0\right)} \right), \\ R' = \bigl| w_0 - M(z_0+R) \bigr|. \]

This code also works for \(c = 0\):

Now, consider the case when \(\boxed{A=0}\), that is \(|d/c+z_0| = R\). The equation is \[ \bar\gamma w + \gamma\bar{w} = D. \] And this is the equation of a line, whose direction and offset are given by the formulas we have previously seen.

Image of a line

Now, let \(\mathcal{L}\) be the line having equation \[ \bar{\gamma_0} z + \gamma_0\bar{z} = D_0. \] Inserting \(z = M^{-1}(w) = \frac{dw - b}{a - cw}\), we get the following equation for \(M(\mathcal{L})\): \[ \bar{\gamma_0} (dw - b)\overline{(a-cw)} + \gamma_0 \overline{(dw - b)}(a-cw) = D_0(a-cw)\overline{(a-cw)}. \] It is equivalent to \[ \begin{align*} & -\Bigl( \bar{\gamma_0}d\bar{c} + \gamma_0 \bar{d}c + D_0 c\bar{c} \Bigr) w\bar{w} \\ \qquad & + \Bigl( \bar{\gamma_0}d\bar{a} + \gamma_0 \bar{b}c + D_0 c\bar{a} \Bigr) w \\ \qquad & + \Bigl( \bar{\gamma_0}b\bar{c} + \gamma_0 \bar{d}a + D_0 \bar{c}a \Bigr) \bar{w} \\ & \qquad = \; D_0 a \bar{a} + \bar{\gamma_0}b\bar{a} + \gamma_0\bar{b}a, \end{align*} \] that is \[ A w\bar{w} + \bar{\gamma}w + \gamma\bar{w} = D \] with \[ A = -2\;\Re(\gamma_0 c \bar{d}) - D_0 {|c|}^2, \\ \gamma = \bar{\gamma_0}b\bar{c} + \gamma_0 \bar{d}a + D_0 \bar{c}a, \\ D = D_0{|a|}^2 + 2\;\Re(\gamma_0 \bar{b}a). \]

Again, there are two cases. We get a circle if \(A \neq 0\), and a line otherwise.

Let’s check an example with \(A=0\). Our current value of \(c\) in R is \(0\), so we have \(A=0\).

Now let’s check an example with \(A \neq 0\):

R code

Mobius <- function(a, b, c, d){
  function(z){
    (a*z+b) / (c*z+d)
  }
}

Mod2 <- function(z){
  Re(z)^2 + Im(z)^2
}

MobiusImageOfCircle <- function(a, b, c, d, z0, R){
  gamma <- R*R*a*Conj(c) - (a*z0 + b) * Conj(c*z0 + d)
  D <- R*R*Mod2(a) - Mod2(b + a*z0)
  x1 <- Mod2(d+c*z0)
  x2 <- R*R*Mod2(c)
  if(x1 != x2){
    A <- x1 - x2
    out <- list(center = -gamma/A, radius = sqrt(Mod2(gamma)/A/A + D/A))
    attr(out, "type") <- "circle"
  }else{
    out <- list(theta = Arg(gamma) %% (2*pi), offset = D/2/Mod(gamma))
    attr(out, "type") <- "line"
  }
  out
}

MobiusImageOfLine <- function(a, b, c, d, theta, offset){
  gamma0 <- cos(theta) + 1i*sin(theta)
  D0 <- 2 * offset
  A <- -2 * Re(gamma0*c*Conj(d)) - D0*Mod2(c) 
  gamma <- Conj(gamma0)*b*Conj(c) + gamma0*Conj(d)*a + D0*Conj(c)*a
  D <- D0*Mod2(a) + 2*Re(gamma0*Conj(b)*a)
  if(A != 0){
    out <- list(center = -gamma/A, radius = sqrt(Mod2(gamma)/A/A + D/A))
    attr(out, "type") <- "circle"
  }else{
    out <- list(theta = Arg(gamma) %% (2*pi), offset = D/2/Mod(gamma))
    attr(out, "type") <- "line"
  }
  out
}

MobiusImage <- function(a, b, c, d, gcircle){
  if(attr(gcircle, "type") == "circle"){
    MobiusImageOfCircle(a, b, c, d, gcircle$center, gcircle$radius)
  }else{
    MobiusImageOfLine(a, b, c, d, gcircle$theta, gcircle$offset)
  }
}

# plot ####
drawLine <- function(line, ...){
  theta <- line$theta; offset <- line$offset
  if(sin(theta) != 0){
    abline(a = offset/sin(theta), b = -1/tan(theta), ...)
  }else{
    abline(v = offset/cos(theta), ...)
  }
}

drawCircle <- function(circle, ...){
  plotrix::draw.circle(Re(circle$center), Im(circle$center), 
                       circle$radius, ...)
}

drawGCircle <- function(gcircle, color = "black", ...){
  if(attr(gcircle, "type") == "circle"){
    drawCircle(gcircle, border = color, ...)
  }else{
    drawLine(gcircle, col = color, ...)
  }
}

References

  • D. A. Brannan, M. F. Esplen, J. J. Gray. Geometry, second edition. Cambridge University Press, 2012.

  • D. Mumford, C. Series, D. Wright. Indra’s Pearls: The Vision of Felix Klein. Cambridge University Press, 2002.