Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Hilbert type space filling curve #4

Open
Ruibin-Liu opened this issue Mar 19, 2022 · 2 comments
Open

Hilbert type space filling curve #4

Ruibin-Liu opened this issue Mar 19, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@Ruibin-Liu
Copy link
Owner

As shown in the README example and the Google Colab example, we can construct Z-order or Morton space filling curve patterns. In my original plan for presenting examples, I thought I should construct Hilbert-type space filling curves first. In fact, a Hilbert.py file is already in the examples folder.

The question is, how should I modify the algorithm so that we can construct Hilbert-type space filling curves?

Thoughts:

  1. Change the sort order when switching to a new direction.
  2. For implementation details, I can either create a new function similar to sort_divide but for Hilbert-type pattern sorting/indexing or keep the same function but change the behavior when a key word like pattern_type is specified to either Morton or Hilbert.
@Ruibin-Liu
Copy link
Owner Author

Ruibin-Liu commented Mar 22, 2022

Turns out the above thoughts are too naive. We need to modify a lot of the sorting scheme according to https://en.wikipedia.org/wiki/Hilbert_curve#/media/File:Hilbert_curve_production_rules!.svg Because of that, we can create a different _sort_divide function for Hilbert-type curves.

@Ruibin-Liu Ruibin-Liu added the enhancement New feature or request label Mar 22, 2022
@Ruibin-Liu
Copy link
Owner Author

For now, 2D case has been implemented, but the 3D case need much more thoughts. Read this paper: https://arxiv.org/abs/1109.2323

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant