コンテンツへスキップ

ズーム補間

Jarke J. van WijkとWim A.A. Nuijによる“Smooth and efficient zooming and panning”に基づいた、二次元平面の2つのビュー間をスムーズにズームするための補間器。

interpolateZoom(a, b)

js
d3.interpolateZoom([30, 30, 40], [135, 85, 60])(0.5) // [72, 52, 126.04761005270991]

· ソースコード · 2つのビューab間の補間器を返します。各ビューは、3つの数値の配列[cx, cy, width]で定義されます。最初の2つの座標cxcyはビューポートの中心を表し、最後の座標widthはビューポートのサイズを表します。

返される補間器は、ミリ秒単位の推奨遷移時間をエンコードしたinterpolate.durationプロパティを公開します。この時間は、xy空間を通る曲線軌跡の経路長に基づいています。より遅いまたは速い遷移が必要な場合は、任意のスケールファクター(元の論文で説明されているように、V)を掛けてください。

interpolateZoom.rho(rho)

js
d3.interpolateZoom.rho(0.5)([30, 30, 40], [135, 85, 60])(0.5) // [72, 52, 51.09549882328188]

ソースコード · ズーム補間器を指定して、指定された曲率rhoを使用する新しいズーム補間器を返します。rhoが0に近い場合、補間器はほぼ線形になります。デフォルトの曲率はsqrt(2)です。