2D 空間内の別の点を中心とした点の回転
カードが扇状に広がるカード ゲームを作成するために、個人が出会います。どのカードがカーソルの下にあるかを判断する際の苦境。この困難には、カードの 4 つの頂点を回転して衝突検出用の多角形を形成する手段が必要です。
この回転を容易にするために、Allegro API には便利な関数が用意されています。
al_draw_rotated_bitmap(OBJECT_TO_ROTATE, CENTER_X) 、センター_Y、X、Y、 DEGREES_TO_ROTATE_IN_RADIANS)
ただし、回転した点を手動で計算するには、関数を工夫する必要があります。
POINTrotate_point(float cx, float cy, float angle, POINT p)
ここで、(cx, cy) はピボット ポイントを表し、角度は反時計回りの回転を示します角度、p は回転する元の点です。
解決策の本質は、次の手順を実行することにあります。
を利用して回転を実行します。方程式:
このアプローチを適用すると、関数は 2D 平面上の任意のピボット ポイントを中心に点を効果的に回転できます。
以上が2D 空間で別の点を中心に点を回転するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。