從老鼠位置縮放和平移圖像
在這種情況下,圖像「跳躍」並且無法從重新定位的原點進行縮放,因為從滑鼠位置到影像中心的平移未正確計算。另外,縮放影像後的平移沒有考慮縮放後的影像大小,導致結果不正確。
要解決此問題,變換順序應如下:
這是一個範例實作:
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中文網其他相關文章!