Maison >développement back-end >C++ >Comment zoomer et traduire correctement une image à partir de l'emplacement de la souris ?
Zoom et traduction d'une image à partir de l'emplacement de la souris
Dans ce scénario, l'image "saute" et ne parvient pas à être mise à l'échelle à partir de l'origine déplacée car la translation de l'emplacement de la souris vers le centre de l'image n'est pas correctement calculée. De plus, la traduction après la mise à l'échelle de l'image ne prend pas en compte la taille de l'image mise à l'échelle, ce qui entraîne des résultats incorrects.
Pour résoudre ce problème, la séquence de transformation doit être la suivante :
Voici un exemple de mise en œuvre :
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); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!