4

Zオーダー曲線を実装するためのJavaコードを教えてもらえますか? x、y 浮動小数点座標があり、それらを 1 次元で表現したいのですが、これは Z 次曲線変換を使用して可能であることがわかっています。この関数の Java 実装または C コードが見つかりません。

これについて何か助けていただければ幸いです!!

4

2 に答える 2

1

GridKitにはkodersによる Z-Order 実装があります。C++も受け入れる場合は、点群の最近傍検索用のSTANNもあります。

于 2012-08-08T21:49:04.183 に答える
0

私はこれを自分で書きます。

最初に、これらの最大値Math.getExponentを使用して両方の指数を計算することにより、float から integer に変換します。次に、これらの数値の大きい方が小数点の前に 32 ビットになるように数値をスケーリングできます。次に、結果を int に丸めます (または切り捨てます)。次に、ビットインターリーブを使用してこれらの 2 つの整数を 1 つの long に結合する必要があります。最後に、格納された指数を使用して結果を再度スケーリングできます。

入力が [0,1] の範囲などに既に制限されている場合は、この手動の再スケーリングの代わりに、整数に基づく固定小数点演算を使用できます。

ビット インターリーブを行うには、たとえば 8 ビットのブロックを取り、対応する 16 ビットのインターリーブ ブロックを計算するルックアップ マップを使用します。そうすれば、あまりにも多くのビット シフト操作を行う必要がなくなります。

于 2012-08-08T22:14:38.317 に答える