Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah cara saya Memutar Titik 2D Di Sekitar Titik Lain?

Bagaimanakah cara saya Memutar Titik 2D Di Sekitar Titik Lain?

Barbara Streisand
Barbara Streisandasal
2024-12-08 00:02:13232semak imbas

How do I Rotate a 2D Point Around Another Point?

Memusingkan Titik tentang Titik Lain (2D)

Untuk menentukan titik yang mentakrifkan bentuk untuk pengesanan perlanggaran, adalah perlu untuk memutar titik di sekeliling titik pangsi. Dalam kes ini, titik pangsi ialah pusat bentuk.

Untuk memutarkan titik p mengelilingi titik lain (cx, cy) dengan sudut sudut dalam radian, ikut langkah berikut:

  1. Terjemahkan titik kembali kepada asal dengan menolak (cx, cy):

    p.x -= cx;
    p.y -= cy;
  2. Putar titik melawan arah jam:

    float xnew = p.x * cos(angle) - p.y * sin(angle);
    float ynew = p.x * sin(angle) + p.y * cos(angle);
  3. Terjemahkan kembali titik dengan menambah (cx, cy ):

    p.x = xnew + cx;
    p.y = ynew + cy;

Menggunakan kaedah ini, anda boleh memutar mana-mana titik di sekeliling mana-mana titik lain titik dan tentukan bentuk objek untuk pengesanan perlanggaran.

Atas ialah kandungan terperinci Bagaimanakah cara saya Memutar Titik 2D Di Sekitar Titik Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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