Memutar Titik Mengenai Titik Lain dalam 2D
Dalam grafik komputer, memutar objek di sekeliling titik tertentu ialah operasi biasa. Dalam kes ini, anda menyasarkan untuk memutar 4 titik sudut kad menggunakan API Allegro. Untuk mencapai matlamat ini, pertimbangkan pendekatan berikut:
旋转点函数
Anda boleh melaksanakan fungsi yang dipanggil rotate_point untuk melaksanakan operasi putaran mengikut cara yang diingini. Ia mengambil parameter berikut:
Pelaksanaan:
Fungsi rotate_point terlebih dahulu menolak titik pangsi daripada titik p yang diberi. Ini mengalihkan titik ke asal sistem koordinat. Seterusnya, ia melakukan putaran menggunakan sinus dan kosinus sudut putaran. Akhirnya, ia menambah kembali titik pangsi untuk mendapatkan titik diputar.
Kod:
POINT rotate_point(float cx, float cy, float angleInRads, POINT p) { float s = sin(angleInRads); float c = cos(angleInRads); // translate point back to origin: p.x -= cx; p.y -= cy; // rotate point float xnew = p.x * c - p.y * s; float ynew = p.x * s + p.y * c; // translate point back: p.x = xnew + cx; p.y = ynew + cy; return p; }
Dengan menggunakan putaran ini pada 4 titik sudut kad, anda boleh membuat poligon berputar yang boleh digunakan untuk pengesanan perlanggaran.
Atas ialah kandungan terperinci Bagaimana untuk Memutar Titik Mengelilingi Titik Lain dalam 2D Menggunakan Allegro?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!