Исследование кривой Гильберта

Исследуйте фрактальную заполняющую пространство кривую Гильберта с настраиваемым порядком, цветовым обходом и отображением координат

Кривая Гильберта

Сохранение расстояния 1D → 2D

Заполняющие кривые

Заполняющая кривая — непрерывное сюръективное отображение f: [0,1] → [0,1]². Давид Гильберт описал свою кривую в 1891 году. Она определяется рекурсивно: при порядке 1 кривая посещает сетку 2×2 в форме U. При каждом следующем порядке каждая ячейка заменяется повёрнутой/отражённой копией U-паттерна. При порядке n кривая посещает все 2ⁿ × 2ⁿ = 4ⁿ ячеек ровно один раз. Свойства: (1) Непрерывность — нет скачков. (2) Самоподобие — каждый квадрант — повёрнутая копия целого. (3) Локальность — близкие точки в 1D обычно близки в 2D. (4) Недифференцируемость — предельная кривая не имеет касательных.

Рекурсивное построение

Кривая Гильберта строится правилами замены. При порядке 1 обходятся четыре квадранта в U-форме. Алгоритм использует две функции: xy2d(x, y, n) переводит 2D-координаты в 1D-расстояние, d2xy(d, n) — обратно. Обе работают за O(n). Нижний график показывает сохранение локальности: для каждой пары ячеек откладывается криволинейное расстояние |d₁−d₂| против евклидова 2D-расстояния.

Применения

Пространственное индексирование: базы данных используют кривые Гильберта для преобразования 2D/3D-координат в 1D-ключи. Обработка изображений: сканирование по Гильберту сохраняет пространственную локальность лучше растрового. Визуализация данных: отображение многомерных данных на кривую Гильберта сохраняет кластеры. Математика: конструктивное доказательство равномощности [0,1] и [0,1]².

Руководство

Используйте ползунок Порядок (1-7). Переключайтесь между Кривая, Тепловая карта или Вместе. Градиент от синего к красному показывает порядок обхода. Введите x,y и нажмите Найти. Можно кликнуть по холсту. Используйте Старт для анимации.