Various examples of pencils spanned by two cycles¶
Exercise I.5.9 Investigate the following:
What happens with an elliptic pencil if one of spanning circles is imaginary? Or if both spanning circles are imaginary?
How does a pencil look if one spanning cycle is a straight line?
If both cycles are straight lines?
A pair of circles is symmetric about the line joining their centres. Thus, circular pencils look similar regardless of the direction of this line of centres. Our hyperbolas and parabolas have a special orientation: their axes of symmetry are vertical. Thus, a horizontal or vertical line joining the centres of two hyperbolas/parabolas make a special arrangement. How do hyperbolic pencils look if the line of centres is not horizontal?
Solution. Initialisation come first
from init_cycle import *
A=asy()
The procedure draws some representatives from the linear span of two cycles
def makepencil(C2, C3, xmin, xmax, ymin, ymax, colour1, colour2, colour3, name):
N=5
A.erase()
A.send("picture ort;")
A.send("erase(ort);")
A.size(100)
A.send("size(ort,100);")
A.send(C2.asy_string(xmin, xmax, ymin, ymax, colour1, "1.5pt"))
A.send(C3.asy_string(xmin, xmax, ymin, ymax, colour2, "1.5pt"))
A.send(C2.asy_string("ort", xmin, xmax, ymin, ymax, [0,0,.8]))
A.send(C3.asy_string("ort", xmin, xmax, ymin, ymax, [0,0,.8]))
C0=C.subject_to([C2.is_orthogonal(C),C3.is_orthogonal(C),k==1]).subs({sign : C2.get_metric(1,1)})
for i in range(N):
C4=cycle2D(C2.exmul(i+1)+C3.exmul(N-i))
A.send(C4.asy_string(xmin, xmax, ymin, ymax,\
[colour1[0]*(i+1.0)/N+colour2[0]*(1.0-1.*i/N),\
colour1[1]*(i+1.0)/N+colour2[1]*(1.0-1.*i/N),\
colour1[2]*(i+1.0)/N+colour2[2]*(1.0-1.*i/N)]))
if (i== (i/2)*2): # Only even numbered cycles for the orthogonality figure
A.send(C4.asy_string("ort",xmin, xmax, ymin, ymax, [0,0,.8]))
C4=cycle2D(C2.exmul(-pow(i+1.0,1.1))+C3)
A.send(C4.asy_string(xmin, xmax, ymin, ymax,\
[colour3[0]*(i+1.0)/N+colour2[0]*(1.0-1.*i/N),\
colour3[1]*(i+1.0)/N+colour2[1]*(1.0-1.*i/N),\
colour3[2]*(i+1.0)/N+colour2[2]*(1.0-1.*i/N)]))
if (i== (i/2)*2): # Only even numbered cycles for the orthogonality figure
A.send(C4.asy_string("ort",xmin, xmax, ymin, ymax, [0,0,.8]))
C4=C2+cycle2D(C3.exmul(-pow(i+1.0,1.1)))
A.send(C4.asy_string(xmin, xmax, ymin, ymax,\
[colour3[0]*(i+1.0)/N+colour1[0]*(1.0-1.*i/N),\
colour3[1]*(i+1.0)/N+colour1[1]*(1.0-1.*i/N),\
colour3[2]*(i+1.0)/N+colour1[2]*(1.0-1.*i/N)]))
if (i== (i/2)*2): # Only even numbered cycles for the orthogonality figure
A.send(C4.asy_string("ort",xmin, xmax, ymin, ymax, [0,0,.8]))
# The loop for the orthogonal cycles
for i in range(N):
A.send(C0.subs({n : i}).asy_string("ort",xmin, xmax, ymin, ymax, [0,.8,0], "dashed"))
if (i>0):
A.send(C0.subs({n : -i}).asy_string("ort",xmin, xmax, ymin, ymax, [0,.8,0], "dashed"))
A.shipout(f'{name}')
A.shipout(f'{name}-ort')
display(Image(f'{name}.png'))
display(Image(f'{name}-ort.png'))
The next samples are used as illustrations in the book
C2=cycle2D([-1.1,1],e,.81)
C3=cycle2D([1.1,1],e,.47)
for j in range (3):
makepencil(C2.subs({sign : j-1}), C3.subs({sign : j-1}), \
-2,2,-1-j,3-j,[0,1,0],[0,0,1],[1,0,0], "pencil%d" % j)
makepencil(cycle2D([-1,1],e.subs({sign : -1}),1.21), \
cycle2D([1,1],e.subs({sign : -1}),4), \
-3,3,-2,4,[0,1,0],[0,0,1],[1,0,0], "pencile")
makepencil(cycle2D(1,[-1,1],1,e.subs({sign : 0})), \
cycle2D(1,[1.4,-.8],2,e.subs({sign : 0})), \
-3,3,-2,4,[0,1,0],[0,0,1],[1,0,0], "pencilp")
makepencil(cycle2D([-1,1],e.subs({sign : 1}),1), \
cycle2D([.5,1],e.subs({sign : 1}),1.7), \
-3,3,-4,2,[0,1,0],[0,0,1],[1,0,0], "pencilh")
Here is some additional pictures of linear spans
in parabolic and hyperbolic spaces with
centres on different levels
makepencil(cycle2D(1,[-1,.6],1,e.subs({sign : 0})), \
cycle2D(1,[-.1,-.6],-1.5,e.subs({sign : 0})), \
-2.5,1.5,-1.5,2.5,[0,1,0],[0,0,1],[1,0,0], "pencilpa")
makepencil(cycle2D([0,0],e.subs({sign : 1}),1), \
cycle2D([.5,1],e.subs({sign : 1}),1), \
-3,3,-4,2,[0,1,0],[0,0,1],[1,0,0], "pencilha")
Span if one circle is imaginary
makepencil(cycle2D([-1,1],e.subs({sign : -1}),1), \
cycle2D([1,1],e.subs({sign : -1}),-1), \
-3,3,-2,4,[0,1,0],[0,0,1],[1,0,0], "pencile1i")
Span if both circles are imaginary
makepencil(cycle2D([-1,1],e.subs({sign : -1}),-1), \
cycle2D([1,1],e.subs({sign : -1}),-1), \
-3,3,-2,4,[0,1,0],[0,0,1],[1,0,0], "pencile2i")
Span of touching circles
makepencil(cycle2D([-1,1],e.subs({sign : -1}),1), \
cycle2D([1,1],e.subs({sign : -1}),1), \
-3,3,-2,4,[0,1,0],[0,0,1],[1,0,0], "pencilet")
Span of touching hyperbolas
makepencil(cycle2D([-1,1],e.subs({sign : 1}),1), \
cycle2D([1,1],e.subs({sign : 1}),1), \
-3,3,-4,2,[0,1,0],[0,0,1],[1,0,0], "pencilht")
Span of touching parabolas
makepencil(cycle2D(1,[0,2],-1,e.subs({sign : 0})), \
cycle2D(1,[.5,1],0,e.subs({sign : 0})), \
-1.5,2.5,-1,3,[0,1,0],[0,0,1],[1,0,0], "pencilpt")
Span of two intersecting upward parabolas intersecting in one finite point
makepencil(cycle2D(1,[-.75,1.125],-9.0/8,e.subs({sign : 0})), \
cycle2D(1,[.75,1.125],-9.0/8,e.subs({sign : 0})), \
-2.5,2.5,-1,3,[0,1,0],[0,0,1],[1,0,0], "pencilpf")
makepencil(cycle2D(1,[-1,1],3.0/4,e.subs({sign : 0})), \
cycle2D(1,[1,1],3.0/4,e.subs({sign : 0})), \
-2.5,2.5,-1,3,[0,1,0],[0,0,1],[1,0,0], "pencilpf2")
Span of two parallel vertical lines.
makepencil(cycle2D(1,[0,0],-4,e.subs({sign : 0})), \
cycle2D(1,[5.0/6,0],2.0/3,e.subs({sign : 0})), \
-2.5,2.5,-1,3,[0,1,0],[0,0,1],[1,0,0], "pencilpl")
makepencil(cycle2D(1,[4.0/3,0],4.0/3,e.subs({sign : 0})), \
cycle2D(1,[8.0/15,0],4.0/15,e.subs({sign : 0})), \
-2.5,2.5,-1,3,[0,1,0],[0,0,1],[1,0,0], "pencilpl2")
Span of touching upward and downward parabolas
makepencil(cycle2D(1,[-.5,1],0,e.subs({sign : 0})), \
cycle2D(1,[.5,-1],0,e.subs({sign : 0})), \
-1.5,1.5,-1.5,1.5,[0,1,0],[0,0,1],[1,0,0], "pencilpt2")
Span of a cicrle and a line
makepencil(cycle2D([-1,1],e.subs({sign : -1}),1), \
cycle2D(0,[1,0],1,e.subs({sign : -1})), \
-3,3,-2,4,[0,1,0],[0,0,1],[1,0,0], "pencilecl")
del(A)
This notebook is a part of the MoebInv notebooks project [2] .
References¶
Vladimir V. Kisil. Geometry of Möbius Transformations: Elliptic, Parabolic and Hyperbolic Actions of $SL_2(\mathbb{R})$. Imperial College Press, London, 2012. Includes a live DVD.
Vladimir V. Kisil, MoebInv notebooks, 2019.