Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengezum dan Menterjemah Imej dengan Betul dari Lokasi Tetikus?

Bagaimana untuk Mengezum dan Menterjemah Imej dengan Betul dari Lokasi Tetikus?

DDD
Lepaskan: 2024-12-30 06:40:14
asal
507 orang telah melayarinya

How to Correctly Zoom and Translate an Image from a Mouse Location?

Mengezum dan Menterjemah Imej daripada Lokasi Tetikus

Dalam senario ini, imej "melompat" dan gagal menskala dari asal yang dipindahkan kerana terjemahan dari lokasi tetikus ke tengah imej tidak dikira dengan betul. Selain itu, terjemahan selepas menskalakan imej tidak mengambil kira saiz imej berskala, mengakibatkan hasil yang salah.

Untuk menyelesaikan isu ini, urutan transformasi hendaklah seperti berikut:

  1. Terjemah ke (0, 0): Alihkan imej ke asal, supaya anda boleh menggunakan transformasi daripada di sana.
  2. Skalakan imej: Gunakan faktor zum pada (0, 0).
  3. Terjemah kembali ke lokasi tetikus: Tambahkan tetikus lokasi kembali ke tempat pusat imej sepatutnya berada.

Berikut ialah sampel pelaksanaan:

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);
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengezum dan Menterjemah Imej dengan Betul dari Lokasi Tetikus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan