たとえば、4つの方向ボタンを使用して移動できる内<img>
があります。<div>
画像は明らかにそのコンテナよりも大きいため、画像をさまざまな方向に移動するための方向ボタンがあります。
ズームインおよびズームアウトできるズームコントロールもあります。ベースの幅と高さにパーセンテージでズーム率を適用するだけで、スケーリング方法を簡単に設定できます。
scale: function(zoom)
{
image.width = baseWidth * zoom;
image.height = baseHeight * zoom;
}
// Zoom in 50%.
Scene.scale(1.5);
これは問題ありませんが、画像は左上から拡大縮小されます。つまり、ズームインすると左上に向かって吸い出され、ズームアウトすると元に戻るように見えます。
次のように、コンテナの中央からズーム効果を適用しようとしています。
しかし、この効果を与えるためにスケーリングが適用された後、画像を移動するために必要な数学に頭を悩ませることは難しいと感じています。
私が得た最も近い方法は、現在のズームと新しいズームレベルの差に基づいて画像を移動することですが、それでもわずかにずれており、ズーム時に「湾曲した」効果が得られます。
別の原点(つまり、左上(0,0)ではない)を中心に拡大縮小するように画像を再配置するために使用される一般的な式はありますか?