I wondered if it was on the net, but I didn't find it, so I'll write it myself.
It is famous for Escher's thing.
Since the explanation will be long, the one implemented in Python and the source code are as follows.
import numpy as np
import matplotlib.pyplot as plt
theta = np.linspace(0,2*np.pi,100)
colorlist = ["r","g","b","c","m","y"]
t = list(range(0,6))
for n in t:
n2 = np.power(2,n)
for phi in np.linspace(0,2*np.pi,2*n2+1):
x = np.cos(theta)*np.tan(np.pi/n2) + np.cos(phi)/np.cos(np.pi/n2)
y = np.sin(theta)*np.tan(np.pi/n2) + np.sin(phi)/np.cos(np.pi/n2)
plt.plot(x,y,lw=0.5,color=colorlist[n-2])
for phi in np.linspace(0,2*np.pi,9):
t = np.linspace(-2,2,100)
x = t*np.cos(phi)
y = t*np.sin(phi)
plt.plot(x,y,lw=0.5,color='y')
plt.plot(np.cos(theta),np.sin(theta),color='black')
plt.xlim(-1,1)
plt.ylim(-1,1)
plt.show()
It is said that this is an infinitely expanding hyperbolic space confined in one disk, but this alone is not enough to explain, and it is the miso that confined the "hyperbolic space" instead of the "flat space". I think it is.
Hyperbolic space is a space where a straight line looks like a hyperbola. In the first place, just because the space you see in front of you is straight does not mean that it will continue straight forever. Even the earth is round. Since all the straight lines on the surface of the earth are perfect circles (correctly, spheroids) when viewed on a planetary scale, it can be said that the earth is a space where all straight lines are circles. On the contrary, there should be a space where all straight lines are hyperbolas. The table is as follows.
Type of space | Sum of angles of a triangle | Non-parallel straight lines | Parallel straight lines* |
---|---|---|---|
Spherical | > 180 degrees | Intersect at 2 points | Do not intersect |
Plane | =180 degrees | Intersect at one point | Do not intersect |
Hyperboloid | <180 degrees | Intersect at one point or not intersect | Do not intersect |
Considering a space in which the grid on the Euclidean plane (lattice coordinates) is a hyperbola, the following conditions are satisfied. Transcription to Euclidean coordinates is as follows.
You can see that the rectangle towards the edge is clearly sharp. This still reflects the angle correctly, but it's hard to see the whole picture, so let's say you compress it ** by force ** on a disk. Let's set infinity $ = 1 $ as appropriate.
Euclidean plane $ U $ → Vertical projection on hyperboloid $ H $ → Center projection to origin
This compression can be done rather naturally by the procedure. The calculation formula can also be calculated with a simple similarity. Let the converted coordinate system be $ D $.
U:[x_U,y_U] \longmapsto H:[x_H,y_H,z_H]\\
x_H = x_U\\
y_H = y_U\\
z_H = \sqrt{x_U^{2}+y_U^{2}+1}\\
H:[x_H,y_H,z_H] \longmapsto D:[x_D,y_D,1]\\
x_D = \frac{x_H}{z_H}\\
y_D = \frac{y_H}{z_H}\\
The result is:
Easy to see! Such a model is called ** Klein's disk **. This connects the asymptote of the hyperbola and the intersection of infinity with a straight line, and although the positional relationship in a Euclidean sense is easy to understand, it has the disadvantage that it does not accurately reflect the angle of each straight line (originally 90). The intersections below the degree also look at right angles).
Therefore, this time, we will perform the operation of compressing into a disk while maintaining the angle between the straight lines. The result is what is called a ** Poincare disk **, and the operation is as follows.
D:[x_D,y_D,1] \longmapsto P:[x_P,y_P,0]\\
x_P = \frac{x_D}{1+\sqrt{1-x_D^{2}-y_D^{2}}}\\
y_P = \frac{y_D}{1+\sqrt{1-x_D^{2}-y_D^{2}}}\\
The result is:
You can see that the intersection of each straight line and point at infinity (circumference) is a right angle, and that the angle between the straight lines is kept the same as that of Euclidean coordinates.
Until now, for the explanation of hyperbolic space, the grid (hyperbolic curves arranged like) was converted as it is, but I will also convert other things. Consider the following set of hyperbolas.
Suddenly it became psychedelic, but please calm down because all the lines are hyperbolas.
Converting this to Klein's disk,
When converted to Poincare's disk,
It will be like this. In this way, the first figure was drawn.
Note that in all these figures, the topological relationships such as the number of sides and the positional relationship ** of the figure surrounded by each straight line have not changed.
In the source code at the beginning, the Poincare disk is realized by drawing a circle without going through the above complicated calculations. Of course, by applying the above transformation to the hyperbola, it will eventually become a circle, and you can create a Poincare disk.
Recommended Posts