欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

比较和对比欧几里得空间和球形空间 理解双曲空间

最编程 2024-06-16 22:25:53
...

讲个笑话:

  • 我的腰: )\quad(
  • 你的腰:(\quad\quad)

最近双曲空间比较热门,很多图像领域的文章引入双曲空间之后也取得了很好的效果。什么是双曲空间?我们从二维的欧式空间和球面空间引入并介绍一下双曲空间。

一个普通的二维欧式平面是上图这个样子,它每个方向上曲率都是0。如果我们给它加上正曲率,他就可以变成下图这样:

但是现在依旧是一个平面,它是中空的,添加曲率之后从二维平面变成了二维球面。

曲率

想象一下在黑洞周围的弯曲光线:

我们要知道,光总是在最短的路径上沿直线运动的,但是如果空间本身就是弯曲的,那会怎么样?如果地球是出于一个球形空间,那个在地平线上向前看,光线实际上会绕着地球一周。这样的话,也就没有所谓的地平线一说了。

image.png

如果我们用正多边形去平铺二维的欧式平面(Euclidean Tiling),我们可以有以下三种方法:

使用正三角形,正四边形,或者正六边形。

但是我们是没办法使用正五边形平铺出一个平面的,因为你可能会遇到这样的困境:

三个拼不起来,四个又加不上。

二维欧式平面完成不了的事情,却可以使用二维球面完成,现在我们其添加曲率转化成球面空间。

比如可以用二维平面的五边形拼成一个十二面体:

image.png

然后我们为其添加曲率,就可以获得这样的球体:

image.png

正方形组成的六面体也可以:

image.png

四个三角形组成的四面体:

image.png

八个三角形组成的八面体:

image.png

总结一下:

但是我们要注意,上面的球的的拼接线都是直线,所有的图形都是在二维的球壳上,没有可以弯曲的三维空间。这里我们是用三维进行了球壳可视化。

双曲空间

知道了从二维欧式平面到二维球面,接下来通过介绍二维球面我们就可以通过相反特性了解双曲空间。

中间的欧式平面中一个点要用四个正四边形才能组起来。

但是在左边的球面中,一个点仅需要三个正方形就可以。

但是在欧式空间中,呢?

欧式空间有着部分和球面空间相反的特性,一个点上可以使用更多个正方向,比如:

这样一个手工作品。

当你尝试在任何一个点将其展平的时候,其他的地方就必定会弯曲。

将这个模型扩大的话就是这样:

虽然我们从高维的视角可视化之后他像一个木耳,但是实际上双曲空间本身还是一个二维几何面

投影

投影我们都知道,生活中我们可以将立体的三维物品投射到某一平面上。比如上图,从某一视角我们可以将两个球体投射为两个贴在一起的圆形。

下图是一个正方形吗?二维平面的角度看肯定不是的。

但是如果我说它是某一正方体的投影呢?那这个黄色部分确实就是一个正方形。

二维球形平面投影到二维欧式平面

比如世界地图:

如果你去搜世界地图,你发现大部分都是下图这种弧形边缘的。

如果你硬要将其投射成长方形的平面,就会变成下图:

对比一下我们可以看到,在左边图中非洲和格陵兰岛看起来差不多大,在右图中,非洲看起来差不多是格陵兰岛的三四倍。然而实际上非洲面积是格陵兰岛的14倍。

了解摄影的一定都知道广角畸变会扭曲图像边缘。将球面映射到平面必然会带来一定程度的失真。

映射的时候总要损失某一方面的内容,所以实际上有上百种映射方法,进行映射的时候需要按需考虑。

stereographic投影

关于stereographic投影建议现看这个视频:

www.youtube.com/watch?v=eGE…

那双曲空间和球面空间不同角度的stereographic投影就是中间这一列。

接下来我要说一句话:

任何在欧式空间的平行线,在二维球面上都是相交的。(或许可以看黎曼几何第五条公理

不要说那不是有同心圆吗,那不是平行的吗?但是同心圆映射到平面上是不平行的嗷。

因为双曲空间的特性和球面空间的特性是反着来的,所以,平行线在双曲空间上是发散的:

如果你从不同的角度看欧式空间的两平行线映射到双曲空间上,你会看到这样的状况:

总结如下:

Holonomu

接下来看这个球,我们现象上走直线,然后右拐90°,向右走相同长度之后向下90°再走相同长度。然后我们回到了原点。

这一现象成为“Holonomu”。

将这个三角放到平面上,我们可以看到,二维欧式空间中三角形内角和是等于180°的,但是在二维球面上是大于180°的,在双曲空间上是小于180°的。

因为球面空间正曲率的存在,虽然你未更改自己的行动方向,但是你会获得多余的旋转。

同理我们看一下如果在双曲空间上走直线会发生什么:

当然我们获得的这个五边形的内角和是小于欧式平面的五边形的内角和的,但是在双曲空间中同样也存在“Holonomu”现象。

公式

周长

  • Spherical Geometry: C=2πsin(r)C=2 \pi \sin (r)
  • Euclidean Geometry:C=2πr C=2 \pi r
  • Hyperbolic Geometry:C=2πsinh(r)C=2 \pi \sinh (r)

二维欧式空间的圆形周长我们不用多解释。那我们看球面空间的。

我们知道sin(x)\sin(x)是个周期函数,所以在球面空间上,圆的周长也是周期函数:

但是在双曲空间上,我们可以看到,sin(x)ex\sin(x) \sim e^x,所以在双曲空间上,圆的周长呈指数型爆炸增长。

面积

  • Spherical Geometry: A=2π(1cos(r))A=2 \pi(1-\cos (r))
  • Euclidean Geometry:A=πr2A=\pi r^2
  • Hyperbolic Geometry:A=2π(cosh(r)1)A=2 \pi(\cosh (r)-1)

面积也是指数型增长。

毕达哥拉斯公式

  • Spherical Geometry: cos(a)cos(b)=cos(c)\cos (a) \cos (b)=\cos (c)
  • Euclidean Geometry:a2+b2=c2a^2+b^2=c^2
  • Hyperbolic Geometry:cosh(a)cosh(b)=cosh(c)\cosh (a) \cosh (b)=\cosh (c)

三角形面积

这个三角形面积只能在曲面上计算,没有二维欧式空间的对应公式,如下:

  • Spherical Geometry:  Area =(A+B+C)π\text { Area }=(A+B+C)-\pi
  • Hyperbolic Geometry: Area =π(A+B+C)\text { Area }=\pi-(A+B+C)

这意味着在双曲空间上,随着角度的变化,最后三角形面积可以达到最大值π\pi

但是没办法更大了,因为再往下就构不成三角形了。

推荐阅读