Некоторые объекты дифференциальной геометрии (часть 3)
Поверхности вращения, узлы и пространственные кривые
Введение
Изучение поверхностей вращения и пространственных кривых составляет фундаментальный раздел дифференциальной геометрии, связывающий топологические инварианты с визуальными образами. В данном примере строится серия канонических объектов — от минимальных поверхностей до сложных узловых линий и лент. Каждый объект обладает уникальными геометрическими характеристиками: нулевой средней кривизной или свойствами неориентируемости. Вычислительные методы позволяют наглядно представить связь между формулой объекта и его формой в трёхмерном евклидовом пространстве.
using LinearAlgebra
Поверхность Энепера
Поверхность Энепера — классическая минимальная поверхность, обладающая нулевой средней кривизной в каждой точке. Она является полиномиальной параметризацией, её форма напоминает седло, симметрично разворачивающееся в пространстве.
Параметрическое представление поверхности:
где .
# Поверхность Энепера
u = range(-1.5, 1.5, length=50)
v = range(-1.5, 1.5, length=50)
U = repeat(u', length(v), 1)
V = repeat(v, 1, length(u))
X = U .- (U.^3)/3 .+ U .* V.^2
Y = V .- (V.^3)/3 .+ V .* U.^2
Z = U.^2 .- V.^2
surface(X, Y, Z;
color=Z,
colormap=:viridis,
alpha=0.9,
colorbar=false,
ratio=:equal,
title="Поверхность Энепера"
)
Координатные функции являются гармоническими и удовлетворяют условию минимальности , где — оператор Лапласа. Поверхность Энепера служит эталоном для изучения глобальных свойств минимальных поверхностей и их связи с комплексным анализом.
Тороид
Тор (тороид) — это поверхность вращения, получаемая движением окружности вдоль другой окружности. Это замкнутая ориентируемая поверхность, фундаментальная группа которой изоморфна . Тор является базовым объектом топологии и геометрии, а также модельной фигурой в физике плазмы и магнитного удержания.
Параметрические уравнения классического тора:
где , — большой радиус (расстояние от центра тора до центра образующей трубки), — радиус сечения (радиус трубки).
#Тороид
R, r = 2.0, 0.7
u = range(0, 2π, length=100)
v = range(0, 2π, length=50)
U = repeat(u', length(v), 1)
V = repeat(v, 1, length(u))
X = (R .+ r .* cos.(V)) .* cos.(U)
Y = (R .+ r .* cos.(V)) .* sin.(U)
Z = r .* sin.(V)
surface(X, Y, Z; c=:jet, colorbar=false, title="Тороид", alpha=1)
В данном построении выбраны параметры и , что даёт хорошо выраженную форму фигуры. Параметр отвечает за обход вдоль тороида, а — за обход вдоль поперечной окружности.
Трёхмерная лемниската
Лемниската — это плоская кривая, имеющая форму восьмёрки, однако в данном примере строится её трёхмерное обобщение. Кривая выдавливается в тонкую поверхность путём задания дополнительного линейного параметра, создавая эффект "закрученного листа".
Параметрические уравнения трёхмерной ленты:
где .
#Трёхмерная лемниската
u = range(0, 2π, length=300)
v = range(-0.3, 0.3, length=30)
U, V = [u_i for u_i in u, _ in v], [v_j for _ in u, v_j in v]
x = @. (2 + cos(2U)) * cos(U)
y = @. (2 + cos(2U)) * sin(U)
z = @. sin(2U) + V
surface(x, y, z,
fill_z = nothing,
linewidth = 0,
linealpha = 0,
legend = false,
aspect_ratio = :equal,
colorbar = false,
seriescolor = :thermal,
alpha = 1.0,
title = "3D-лемниската",
camera = (50, 35),
size = (800, 650)
)
Выражение задаёт переменный радиус в плоскости , что формирует характерную фигуру с самопересечением в начале координат. Параметр создаёт вертикальную ленту постоянной ширины, превращая одномерную кривую в двумерную поверхность, через которую наглядно видна топология самопересечения.
Трёхмерные фигуры Лиссажу
Фигуры Лиссажу — это замкнутые траектории, описываемые точкой, совершающей гармонические колебания по двум или трём взаимно перпендикулярным направлениям. В трёхмерном случае они образуют сложные пространственные кривые, форма которых определяется соотношением частот и разностью фаз колебаний.
Параметрические уравнения:
В данном примере выбраны частоты и фазовый сдвиг для координаты . Отношения частот задают сложность узора: целочисленные соотношения дают замкнутую периодическую кривую, а их простота определяет симметрию.
#Трёхмерные фигуры Лиссажу
t = range(0, 2π, length=1000)
x = sin.(3t .+ π/2)
y = sin.(4t)
z = sin.(5t)
plot(x, y, z,
linewidth = 3,
legend = false,
aspect_ratio = :equal,
title = "3D фигуры Лиссажу",
xlabel = "X",
ylabel = "Y",
zlabel = "Z")
Трёхмерные фигуры Лиссажу находят практическое применение в лазерной анимации, анализе многомерных волновых систем и параметрическом дизайне.
Трилистный узел
Трилистник — это простейший нетривиальный узел, который невозможно развязать в окружность без разрезания нити. Он имеет три характерных пересечения в проекции и является классическим объектом теории узлов. В данном построении узел визуализируется не просто как линия, а как "трубка" — это делает его объёмным и наглядным.
Центральная кривая задаётся формулами:
где .
# Трилистный узел
u = range(0, 2π, length=200)
r_tube = 0.2
# Основной узел
x0 = @. sin(u) + 2*sin(2u)
y0 = @. cos(u) - 2*cos(2u)
z0 = @. -sin(3u)
theta = range(0, 2π, length=20)
n_u = length(u)
n_theta = length(theta)
X = zeros(n_u, n_theta)
Y = zeros(n_u, n_theta)
Z = zeros(n_u, n_theta)
for i in 1:n_u
# Касательный вектор
tx = -cos(u[i]) - 4*cos(2u[i])
ty = sin(u[i]) - 4*sin(2u[i])
tz = -3*cos(3u[i])
T = [tx, ty, tz]
T = T / norm(T)
N = nullspace(T')
# Создание трубки
X[i, :] = x0[i] .+ r_tube .* (N[1, 1] .* cos.(theta) .+ N[1, 2] .* sin.(theta))
Y[i, :] = y0[i] .+ r_tube .* (N[2, 1] .* cos.(theta) .+ N[2, 2] .* sin.(theta))
Z[i, :] = z0[i] .+ r_tube .* (N[3, 1] .* cos.(theta) .+ N[3, 2] .* sin.(theta))
end
surface(X, Y, Z,
fill_z = nothing,
fillcolor = :cool,
linewidth = 0,
legend = false,
aspect_ratio = :equal,
colorbar = false)
Чтобы получить трубку, в каждой точке кривой строится маленькая окружность радиуса r = 0.2, лежащая в плоскости, перпендикулярной направлению кривой. Для этого вычисляется касательный вектор к кривой, а затем находятся два перпендикулярных ему направления. Совокупность таких окружностей вдоль всей кривой образует трубчатую поверхность, которая и представлена на графике.
Заключение
Данный вычислительный эксперимент демонстрирует многообразие геометрических структур, доступных для моделирования средствами Engee. От полиномиальной минимальной поверхности Энепера до трубчатой окрестности трилистника — каждая фигура иллюстрирует свой класс объектов: поверхности нулевой кривизны, компактные поверхности вращения, пространственные кривые и нетривиальные узлы.
Построенные модели имеют непосредственное прикладное значение. Торические узлы возникают в теории вихрей и магнитной гидродинамике, фигуры Лиссажу описывают траектории колебательных систем в механике и электронике, а поверхности Энепера и тороиды служат эталонами в архитектурном и промышленном дизайне. Методика построения трубчатых окрестностей кривых, продемонстрированная на примере трилистного узла, является универсальным инструментом визуализации абстрактных топологических объектов и может быть распространена на произвольные пространственные кривые.