Explorateur de Courbe de Hilbert

Explorez la courbe fractale de remplissage de Hilbert avec ordre ajustable, parcours coloré et mappage de coordonnées

Courbe de Hilbert

Préservation de distance 1D → 2D

Courbes de remplissage

Une courbe de remplissage est une application surjective continue f: [0,1] → [0,1]². David Hilbert a décrit sa courbe en 1891. La courbe est définie récursivement : à l'ordre 1, elle visite une grille 2×2 en forme de U. À chaque ordre supérieur, chaque cellule est remplacée par une copie tournée/réfléchie du motif U. À l'ordre n, la courbe visite toutes les 2ⁿ × 2ⁿ = 4ⁿ cellules exactement une fois. Propriétés : (1) Continuité — chemin continu sans sauts. (2) Autosimilarité — chaque quadrant est une copie tournée de l'ensemble. (3) Localité — les points proches en 1D tendent à être proches en 2D. (4) Non-différentiabilité — la courbe limite n'a de tangente nulle part.

Construction récursive

La courbe de Hilbert est construite par des règles de remplacement. À l'ordre 1, la courbe traverse quatre quadrants en forme de U. L'algorithme utilise deux fonctions : xy2d(x, y, n) convertit les coordonnées 2D en distance 1D, et d2xy(d, n) convertit la distance 1D en coordonnées 2D. Les deux s'exécutent en O(n). Le graphique inférieur montre la préservation de localité : pour chaque paire de cellules, il trace la distance de courbe |d₁−d₂| par rapport à la distance euclidienne 2D.

Applications

Indexation spatiale : les bases de données utilisent les courbes de Hilbert pour mapper des coordonnées 2D/3D en clés 1D. Traitement d'image : le balayage par courbe de Hilbert préserve la localité spatiale. Visualisation de données : le mappage sur une courbe de Hilbert préserve les clusters. Méthodes numériques : partition de domaines pour le calcul parallèle. Mathématiques : preuve constructive que [0,1] et [0,1]² ont même cardinalité.

Guide d'utilisation

Utilisez le curseur Ordre pour changer la profondeur de récursion (1-7). Basculez entre Courbe, Carte de chaleur ou Les deux. Le dégradé du bleu au rouge montre l'ordre de parcours. Entrez des coordonnées x,y et cliquez sur Chercher pour mettre en évidence la cellule. Cliquez directement sur le canevas. Utilisez Lecture pour animer le tracé.