克莱因瓶是一种内外两面在同一个曲面上的图形.

在数学领域中,克莱因瓶(德语:Kleinsche Flasche)是指一种无定向性的平面,比如二维平面,就没有“内部”和“外部”之分。克莱因瓶最初的概念提出是由德国数学家菲利克斯·克莱因提出的。克莱因瓶和我上一篇讲的莫比乌斯带非常相像。一个是内外两面是在同一个曲面上,另一个是里外两面在同一个曲面上.

克莱因瓶的形状是,一个瓶子底部有一个洞,现在延长瓶子的颈部,并且扭曲地进入瓶子内部,然后和底部的洞相连接。

下面将展示几种莫比乌斯带的生成算法和切图,使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.

以下是从维基上查到的公式

克莱因瓶的参数十分复杂:

数学图形之克莱因瓶(klein bottle)-LMLPHP

写成我的脚本代码为:

vertices = D1: D2:
u = from to PI D1
v = from to (*PI) D2
a = sin(u)
b = cos(u)
c = sin(v)
d = cos(v)
e = *d - *b*b*d - *pow(b, )*d + *pow(b, )*d - *a + *b*d*a - *pow(b, )*d*a - *pow(b, )*d*a + *pow(b, )*d*a
x = -/*b*(*d - *a + *pow(b, )*a - *pow(b, )*a + *b*d*a)
y = -/*a*e
z = /*( + *b*a)*c u = u*
v = v*2.5

公式好复杂,我竟然写对了:

数学图形之克莱因瓶(klein bottle)-LMLPHP

还有一个较简单的

数学图形之克莱因瓶(klein bottle)-LMLPHP

写成我的脚本代码为:

vertices = D1: D2:
u = from to (*PI) D1
v = from to (*PI) D2 a = sin(u)
b = cos(u) c = sin(v)
d = cos(v) e = sin(u/)
f = cos(u/) x = b*(f*(sqrt() + d) + e*c*d)
z = a*(f*(sqrt() + d) + e*c*d)
y = -e*(sqrt() + d) + f*c*d

可惜这似乎是错的.生成的图形不是克莱因瓶.

数学图形之克莱因瓶(klein bottle)-LMLPHP

此外,我还从别的地方找到关于克莱因瓶的公式.这两个公式生成的图形差不多,也不像克莱因瓶,而是一个8字形的曲线绕圈而成的曲面.

klein_bottle

#http://xahlee.info/surface/klein_bottle/klein_bottle.html

vertices = D1: D2:

u = from  to (PI*) D1
v = from to (PI*) D2 a = x = (a+cos[v/]*sin[u]-sin[v/]*sin[*u])*cos[v]
z = (a+cos[v/]*sin[u]-sin[v/]*sin[*u])*sin[v]
y = sin[v/]*sin[u]+cos[v/]*sin[*u]

数学图形之克莱因瓶(klein bottle)-LMLPHP

klein

#http://www.mathcurve.com/surfaces/klein/klein.shtml
vertices = D1: D2:
u = from to (PI*) D1
v = from to (PI*) D2
a = rand2(, )
b = rand2(, )
x = [a + b*(cos(u/)*sin(v) - sin(u/)*sin(*v))]*cos(u)
z = [a + b*(cos(u/)*sin(v) - sin(u/)*sin(*v))]*sin(u)
y = b*[sin(u/)*sin(v) + cos(u/)*sin(*v)]

数学图形之克莱因瓶(klein bottle)-LMLPHP

05-08 08:28