Putaran Titik mengelilingi Titik Lain dalam Ruang 2D
Dalam usaha untuk mencipta permainan kad di mana kad dikipas, seorang individu bertemu kesusahan dalam menentukan kad yang terletak di bawah kursor. Kekacauan ini memerlukan cara untuk memutar empat titik bucu kad untuk membentuk poligon untuk pengesanan perlanggaran.
Untuk memudahkan putaran ini, API Allegro menyediakan fungsi yang mudah:
al_draw_rotated_bitmap(OBJECT_TO_ROTATE, CENTER_X , CENTER_Y, X, Y, DEGREES_TO_ROTATE_IN_RADIANS)
Walau bagaimanapun, untuk mengira titik yang diputar secara manual, ia menjadi perlu untuk mencipta fungsi:
POINT rotate_point(float cx, float cy, float angle, POINT p)
di mana (cx, cy) mewakili titik pangsi, sudut menandakan sudut putaran lawan jam, dan p ialah titik asal untuk diputar.
Intipati penyelesaian terletak pada menjalankan langkah-langkah berikut:
Lakukan putaran menggunakan persamaan:
Dengan menggunakan pendekatan ini, fungsi boleh memutarkan titik dengan berkesan di sekeliling mana-mana titik pangsi pada satah 2D.
Atas ialah kandungan terperinci Bagaimana untuk Memutar Titik Di Sekitar Titik Lain dalam Ruang 2D?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!