二維空間中一個點圍繞另一個點旋轉
為了創建紙牌呈扇形展開的紙牌遊戲,個人遇到確定哪張卡位於遊標下方的困境。這種困境需要一種方法來旋轉卡片的四個頂點以形成多邊形以進行碰撞檢測。
為了促進這種旋轉,Allegro API 提供了一個方便的函數:
al_draw_rotated_bitmap(OBJECT_TO_ROTATE, CENTER_X , CENTER_Y, X, Y, DEGREES_TO_ROTATE_IN_RADIANS)
但是,要手動計算旋轉點,就需要設計一個函數:
POINTrotate_point(float cx, float cy, float angle, POINTrotate_point(float cx, float cy, float angle, POINT p)
其中(cx,cy)表示樞軸點,angle表示逆時針旋轉角度, p 是要旋轉的原始點。
解的本質在於執行以下步驟:
利用方程式:
透過應用此方法,函數可以有效地圍繞 2D 平面上的任何樞軸點旋轉點。
以上是如何在二維空間中圍繞另一個點旋轉一個點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!