問題タブ [hilbert-curve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
867 参照

javascript - ヒルベルト曲線の何が問題になっていますか?

ヒルベルト曲線上に点をプロットする Javascript ライブラリがありますが、点の決定に問題があります。

パス上に 256 ポイントをプロットするテスト ページを作成しました。このように見えるはずですが、代わりに次のようになります。

いくつかの不連続性があるようです。

http://jsbin.com/oheloc/1/editでページの背後にあるソースを調べることができます(キックの場合は、再帰の深さのロックを解除し、ポイント指数よりも高く上げて、パス全体がさらに変形することを確認します)。

この写真の何が問題になっていますか? (少なくとも) 象限変換の 1 つが正しくないことに関係していると思いますが、それがどうあるべきかわかりません。

0 投票する
2 に答える
493 参照

global - 空間充填曲線を使用したグローバル イルミネーションの高速化 - どのように機能しますか?

学習目的で、レイトレーシングのテクニックを調べていました。私は最近、グローバル イルミネーションとその変種を発見し、ケビン ビーソンによるこの素晴らしい作品を読みました。smallpt を別の言語 (Lua) に移植しようとしました。

これまでのところ、問題なく動作していますが、私の意見では、シーンのレンダリングが遅すぎます。これまでのところ、私はインターネットを掘り下げました。これがグローバル イルミネーション技術、特にパス トレーシングの主な問題であるという主題をカバーする多くの技術論文を見てきました。

充填曲線の間隔 (たとえば、ヒルベルト曲線) など、プロセスを高速化する方法があるように思えます。基本的に、それらはすべてビューポートをバケット (またはタイル) に分割し、レンダリングに命令して、特定の順序で各バケットのパス トレーシングを処理します。技術的には、ヒルベルト曲線を実装する方法を見ていませんでしたが、実際には、これによりプロセス全体がどのように高速化されるかを理解したいですか?

私の最初の仮定は、各バケット appart を考慮すると、レンダラーは特定のピクセルで呼び出され、その他は補間トリックを使用したサンプルでしたが、実際には、レンダラーはバケットの各ピクセルで呼び出されるようです。

したがって、結果として、レンダラーはマップのすべてのピクセルを処理します。私の控えめな意見では、ネストされた 2 つの for ループ (行ごと、列ごと) と同じ量の作業になります。だから私は明らかに何かが欠けていることを知っているので、いくつかの明確な説明を楽しみにしています.

前もって感謝します。

0 投票する
3 に答える
15781 参照

python - Python で 3D ヒルベルト空間充填曲線を生成するアルゴリズム

RGB カラー キューブのポイントを Python の 1 次元リストにマッピングして、色のリストが見栄えがよく連続的に見えるようにしたいと考えています。

これには 3D ヒルベルト空間充填曲線を使用するのが良い方法だと思いますが、この問題について非常に役立つリソースを検索しましたが、見つかりませんでした。特にウィキペディアは、2D 曲線を生成するためのサンプル コードのみを提供しています。

0 投票する
0 に答える
416 参照

spatial-index - 長方形をヒルベルト数の範囲に変換します

空間データがヒルベルト数を使用して表される場合、長方形の範囲がヒルベルト数の複数の範囲にマップされます。与えられた長方形Rが重なっているすべてのセルを通過せずにこのマッピングを見つける簡単な方法はありますか?Rの境界セルだけを考えてソートすることも考えられます...もっと良い方法はありますか?

ありがとう。

0 投票する
0 に答える
96 参照

bit-manipulation - ビット配列 1 をビット配列 2 に変換する最も簡単な方法を推測する

長さ n のすべてのビット配列のセットを考えてみましょう。ここで、このセットからこのセットにマップされるすべての 1 対 1 関数のセットを考えます。

次に、後者のセットから 1 つの関数を選択します。この関数を実装する「最小限の」方法を見つけるアルゴリズムはありますか? AND OR XOR NOT や左右のビットシフトなどの基本的なビット配列演算子にしかアクセスできないと仮定します。

ご参考までに、これが必要な理由は、ビットの z 曲線順序からビットのヒルベルト曲線順序に変換するアルゴリズムを作成しているためです。私の現在の方法はルックアップ テーブルを作成することですが、もっと良いオプションがあるに違いありません。

簡単な例として、次のような真理値表があるとします。

input次に、入力ビット文字列が与えられた場合、出力ビット文字列outputは(Java構文で)あると推測できるはずです

この場合の証明は次のとおりです。

0 投票する
1 に答える
401 参照

java - 主軸を中心にヒルベルト曲線空間で回転を実行するにはどうすればよいですか

そこで、 http://www.tiac.net/~sw/2008/10/Hilbert/moore/hilbert.cから Doug Moore コードを取得し、実装に関する修士論文で使用するために Java に変換した問題を次に示します。フォトン マップ レイ レーサーにフォトンを保存するための LSH メソッド。しかし、ここに問題があります。プロセスの後半でヒルベルト インデックスを利用しているため、しきい値が使用されています。しかし、しきい値がヒルベルト曲線の亀裂と一致しており、最終的な画像にアーティファクトが発生しています。私が行った調査によると、これに対する解決策は、主軸を中心にヒルベルト曲線空間をわずかに回転させることですが、これを達成する方法についての手がかりがありません。誰かがこれについて考えているなら、私は現時点で非常に立ち往生しており、助けを求めることができます.

temp = photonsBH[i].key = h.hilbert_c2i(THREE, SIXTEEN, coord); この行は、ヒルベルト関数を呼び出す方法です。1 つ目は次元数、2 つ目はビット数、3 つ目は精度を維持し、ポイントを正にシフトするために次の式を介して送信されたポイントです。

hilbert.java からのコード

0 投票する
0 に答える
107 参照

c - C 信号処理 - 実装の疑問

私はmatlabのアルゴリズムを適応させようとしています。

私のアルゴリズム:

このライブラリ cwplib から畳み込みとヒルベルトを実装したいと思います

上記のアルゴリズムで畳み込みを実装しようとしましたが、結果は Matlab とは異なります。

そうでない場合、ヒルベルトを別の方法または畳み込みに実装するにはどうすればよいですか?

どのようにできるのか?助けてくれてありがとう。

0 投票する
2 に答える
559 参照

algorithm - バウンディング ボックス内のポイントの取得を最適化するために、クワッド ツリーのセットで最適な深さ/範囲を見つける

一連の四分木 (ヒルベルト曲線など) がある場合、特定の深さで最適な (または十分に良い) 範囲のセットを見つけるための良い方法は何でしょうか。

たとえば、バウンディング ボックス 0,0 と 1,3 の間のポイントを検索する場合、次の単純な範囲を適用できます。

  • 深さ 1 - 範囲 0,0-1,0 (~33% の検索スペース)
  • 深さ 2 - 範囲 0,0-1,0 および 1,0-0,1 (~13% の検索スペース)
  • 深さ 3 - 範囲 0,0-1,0 および 1,3-0,3 (~9.8% の検索スペース)

ヒルベルト曲線

明らかに、この検索の深さ 3 が最適ですが、縮小された検索スペースは、深さ 1 から深さ 2 への低下と比較して、わずかしか低下していません。

(はるかに) 大きい深さで、または境界を越える検索では、さまざまな深さの差を推定したり、理想的にはバウンディング ボックスをカバーするさまざまな深さの範囲の組み合わせを理想的に選択したりするための優れたアルゴリズムがあります。

特にポリゴンには興味がありませんが、ポリゴンで機能するソリューションがあればボーナスポイントです。

0 投票する
0 に答える
39 参照

c - Bit Twiddlings 64 ビットを使用した 2D 空間充填曲線

ニュートラル(単純なシフト)、モートン(バイナリマジックナンバー)、およびヒルベルト(モートンから)とは異なり、 Bit Twiddling で計算(インデックス)できる空間充填曲線はありますか?encode(xy2d)/decode(d2xy) の例はありますか?