問題タブ [z-order-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 投票する
1 に答える
470 参照

z-order-curve - 範囲外の制限がある Z-Index

2 つの座標 x、y から平面上の点の Z-Index (Morton) を計算する必要があります。

従来、これはビット インターリーブによって解決されていました。

ただし、境界があり、ポイントの z-index がアクティブな領域の内側にある場合にのみモートン カウントを増やし、外側にある場合はカウントをスキップするようにします。

明確にするために、4x4 正方形の一般的な z オーダーは次のとおりです。

ただし、3x3 のアクティブ エリアがある場合、次のようにインデックスを計算する必要があります。

00-11 のクワッドがいっぱいであることがわかるように、02-13 は、20-31 と 22-33 の場合と同じように、アクティブ エリアの外にある 2 つのポイントのカウントをスキップしています。

重要: 反復せずにこれを行いたいです。

この問題の既知の解決策はありますか?

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

c++ - モートンコードの計算

私はインターリーブしようとしています(モートンコードを計算するため)2つの符号付きの長い数字 xy(32ビット)を値で

ケース 1 :

結果は次のようになります:

ケース 2:

バイナリ表現は、

インターリーブの場合、次のコードを使用して、 の31 番目のxビットと の 31番目のビットをインターリーブできる 32 ビット表現のみを検討しています。y

上記のコードは、x正とy負がある場合に正常に動作しますが、ケース 2 が失敗している場合、助けてください。何が問題なのですか? 負の数は 64 ビットを使用しますが、正の数は 32 ビットを使用します。間違っている場合は修正してください。