克萊因瓶是一種內外兩面在同一個曲面上的圖形.
在數學領域中,克萊因瓶(德語:Kleinsche Flasche)是指一種無定向性的平面,比如二維平面,就沒有“內部”和“外部”之分。克萊因瓶最初的概念提出是由德國數學家菲利克斯·克萊因提出的。克萊因瓶和我上一篇講的莫比烏斯帶非常相像。一個是內外兩面是在同一個曲面上,另一個是里外兩面在同一個曲面上.
克萊因瓶的形狀是,一個瓶子底部有一個洞,現在延長瓶子的頸部,並且扭曲地進入瓶子內部,然后和底部的洞相連接。
下面將展示幾種莫比烏斯帶的生成算法和切圖,使用自己定義語法的腳本代碼生成數學圖形.相關軟件參見:數學圖形可視化工具,該軟件免費開源.
以下是從維基上查到的公式
克萊因瓶的參數十分復雜:
寫成我的腳本代碼為:
vertices = D1:80 D2:160 u = from 0 to PI D1 v = from 0 to (2*PI) D2 a = sin(u) b = cos(u) c = sin(v) d = cos(v) e = 3*d - 3*b*b*d - 48*pow(b, 4)*d + 48*pow(b, 6)*d - 60*a + 5*b*d*a - 5*pow(b, 3)*d*a - 80*pow(b, 5)*d*a + 80*pow(b, 7)*d*a x = -2/15*b*(3*d - 30*a + 90*pow(b, 4)*a - 60*pow(b, 6)*a + 5*b*d*a) y = -1/10*a*e z = 2/15*(3 + 5*b*a)*c u = u*5 v = v*2.5
公式好復雜,我竟然寫對了:
還有一個較簡單的
寫成我的腳本代碼為:
vertices = D1:160 D2:160 u = from 0 to (4*PI) D1 v = from 0 to (2*PI) D2 a = sin(u) b = cos(u) c = sin(v) d = cos(v) e = sin(u/2) f = cos(u/2) x = b*(f*(sqrt(2) + d) + e*c*d) z = a*(f*(sqrt(2) + d) + e*c*d) y = -e*(sqrt(2) + d) + f*c*d
可惜這似乎是錯的.生成的圖形不是克萊因瓶.
此外,我還從別的地方找到關於克萊因瓶的公式.這兩個公式生成的圖形差不多,也不像克萊因瓶,而是一個8字形的曲線繞圈而成的曲面.
klein_bottle
#http://xahlee.info/surface/klein_bottle/klein_bottle.html vertices = D1:100 D2:100 u = from 0 to (PI*2) D1 v = from 0 to (PI*2) D2 a = 3 x = (a+cos[v/2]*sin[u]-sin[v/2]*sin[2*u])*cos[v] z = (a+cos[v/2]*sin[u]-sin[v/2]*sin[2*u])*sin[v] y = sin[v/2]*sin[u]+cos[v/2]*sin[2*u]
klein
#http://www.mathcurve.com/surfaces/klein/klein.shtml vertices = D1:100 D2:100 u = from 0 to (PI*2) D1 v = from 0 to (PI*2) D2 a = rand2(1, 10) b = rand2(1, 10) x = [a + b*(cos(u/2)*sin(v) - sin(u/2)*sin(2*v))]*cos(u) z = [a + b*(cos(u/2)*sin(v) - sin(u/2)*sin(2*v))]*sin(u) y = b*[sin(u/2)*sin(v) + cos(u/2)*sin(2*v)]