マウスの位置から画像をズームおよび移動する
このシナリオでは、画像が「ジャンプ」し、再配置された原点からの拡大縮小に失敗します。マウスの位置から画像の中心までの移動が正しく計算されません。また、画像をスケーリングした後の変換では、スケーリングされた画像のサイズが考慮されないため、不正確な結果が生じます。
この問題を解決するには、変換シーケンスは次のようにする必要があります:
サンプルは次のとおりです。実装:
private void pnl1_Paint(object sender, PaintEventArgs e) { // Translate to (0, 0) e.Graphics.TranslateTransform(-img.Width / 2, -img.Height / 2); // Scale the image e.Graphics.ScaleTransform(zoom, zoom); // Translate back to mouse location e.Graphics.TranslateTransform(mouse.X, mouse.Y); // Draw the image at the new location e.Graphics.DrawImage(img, 0, 0); }
以上がマウスの位置から画像を正しくズームおよび変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。