Algorithme pour générer un 3D de l'espace de Hilbert courbe de remplissage en Python
J'aimerais points sur la carte dans une couleur RGB cube à une dimension de la liste en Python, d'une manière qui rend la liste des couleurs agréables à regarder et continue.
Je crois à l'aide d'une 3D de l'espace de Hilbert courbe de remplissage serait une bonne façon de le faire, mais j'ai cherché et n'ai pas trouvé très utiles pour ce problème. Wikipédia en particulier, seuls fournit un exemple de code pour générer des courbes 2D.
Vous devez vous connecter pour publier un commentaire.
Ce document semble avoir tout à fait une discussion:
Un inventaire des trois dimensions de l'espace de Hilbert de remplissage des courbes.
Citant le résumé:
Je suis tombé sur votre question, tout en essayant de faire la même chose en javascript. Je me suis rendu compte sur mon propre. Voici une fonction récursive qui casse un cube de 8 pièces et tourne chaque partie, de sorte qu'il parcourt une courbe de hilbert dans l'ordre. Les arguments représentent la taille:s, localisation:xyz, et 3 vecteurs de la rotation des axes du cube. L'appel d'exemple utilise un 256^3 cube et assume le rouge,le vert,le bleu, les tableaux ont une longueur de 256^3.
Il devrait être facile d'adapter ce code pour python ou autres langages procéduraux.
Adapté à partir de photos ici: http://www.math.uwaterloo.ca/~wgilbert/Research/HilbertCurve/HilbertCurve.html
Ce qui est fréquemment utilisé dans la pratique du génie n'est pas strictement de Hilbert (Peano) et les courbes, c'est Morton code.
https://en.wikipedia.org/wiki/Z-order_curve
Beaucoup plus facile à calculer.