视频中展示了剪开莫比乌斯环(Möbius strip)的几种情况,虽有趣味,于直觉却不易理解。于是尝试用python可视化切割过程如下。
莫比乌斯环是一种只有一个连通边缘的平面,其参数方程可以表示为
,其中,。
用Python(matplotlib)
实现可视化:
import math
import numpy as np
from matplotlib import cm
import matplotlib.pyplot as plt
def mobi(us, vs):
x = np.array([(1 + vs / 2 * np.cos(u / 2)) * np.cos(u) for u in us])
y = np.array([(1 + vs / 2 * np.cos(u / 2)) * np.sin(u) for u in us])
z = np.array([vs / 2 * np.sin(u / 2) for u in us])
return x, y, z
def main():
us = np.arange(0, math.pi * 2, math.pi / 500)
vs = np.arange(-1, 1, 1 / 500)
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
ax.plot_surface(*mobi(us, vs), cmap=cm.coolwarm)
plt.show()

- 从中间切割得到一个反转两次的非莫比乌斯环
ax.plot(*mobi(us, 0), c="r", label="divider")
ax.legend()
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
x, y, z = mobi(us, np.arange(-1, -1/2, 1 / 500))
ax.plot_surface(x, y, z, cmap=cm.coolwarm)
x, y, z = mobi(us, np.arange(1/2, 1, 1 / 500))
ax.plot_surface(x, y, z, cmap=cm.coolwarm)
ax.plot(*mobi(us, 0), c="r", label="divider")
ax.set_zlim(-1, 1)
ax.legend()
plt.show()
- 从其他位置剪开,得到一个中间的莫比乌斯环和反转两次的非莫比乌斯环。它们相互交错。
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
x, y, z = mobi(us, np.arange(-1, -1/3, 1 / 500))
ax.plot_surface(x, y, z + 0.5)
x, y, z = mobi(us, np.arange(-1/3, 1/3, 1 / 500))
ax.plot_surface(x, y, z - 1)
x, y, z = mobi(us, np.arange(1/3, 1, 1 / 500))
ax.plot_surface(x, y, z + 0.5)
x, y, z = mobi(us, 1/3)
ax.plot(x, y, z + 0.5, c="r", label="divider")
x, y, z = mobi(us, -1/3)
ax.plot(x, y, z + 0.5, c="b", label="divider")
ax.legend()
plt.show()
从可视化可以推知,从任意位置开始,沿分割莫比乌斯环,分割线自然地延长到。命名这条分割线为,包围形成一个新的莫比乌斯环。当,退化为一个普通的圆。此时所包围的莫比乌斯环不存在。
此外,由于和原莫比乌斯环的边缘不相交,总可以和原边缘构成一个新的有两个边沿的平面(因此是非莫比乌斯环)。这个平面对值域内的取值总是存在。