0

ゲームのプレーヤーのビューをレンダリングするために、OpenSeadragon のタイルソースを作成したいと思います。世界には座標 (x,y) があり、プレイヤーは特定の座標にあり、視野範囲があります。

私が望むのは、ビュー全体を表示できる OpenSeadragon のタイルソースを作成することです。最大ズームでは、1 タイル = 1 座標。いくつか質問があります: プレイヤーの視野範囲の最大ズームレベルを計算するにはどうすればよいですか? OpenSeadragon (x, y, level) によって要求されたタイルでレンダリングする必要がある世界の位置を知るにはどうすればよいですか?

ありがとう :)

4

1 に答える 1

1

私の理解が正しければ、ゲーム マップのビルディング ブロックを構成する一連の標準タイルからロードできるカスタム TileSource を作成しようとしています。必要に応じて、(minLevel と maxLevel を同じにすることで) 最大レベルをロードしようとする唯一のレベルに指定できるため、タイルの組み合わせの生成に対処する必要はありません。getTileUrl(level, x, y)1:1 レイヤーのみを処理する必要があるため、これは簡単です。これは、その最大レベルが何であるかという問題を残します。で定義されているとおり:

http://openseadragon.github.io/docs/OpenSeadragon.TileSource.html

...式は次のとおりです。

デフォルトでは、画像ピラミッドは N 層に分割され、画像の最長辺は M (ピクセル単位) です。ここで、N は 2^(N+1) >= M を満たす最小の整数です。

基本的には、画像のサイズになるまで 2 の累乗を数えるだけです。したがって、画像が一辺 1 ピクセルの場合、最大レベルは 0 です。一辺が 2 ピクセルの場合、最大レベルは 1、4 = 2、8 = 3 などです。

tileSize が 100 ピクセルで、マップが 5x7 タイルであるとします。これは、最長の寸法が 700 ピクセルであることを意味します。2 のべき乗を見ると、700 は 512 より大きく、1024 より小さいので、1024 を使用します。1024 は 2 の 10 乗なので、最大レベルは 10 です。

それはあなたの質問に答えていますか?

于 2014-11-18T17:28:07.790 に答える