2차원 공간에서 다른 점을 중심으로 한 점의 회전
카드가 펼쳐져 있는 카드 게임을 만들기 위해 개인은 커서 아래에 어떤 카드가 있는지 결정하는 데 어려움이 있습니다. 이 난제에는 충돌 감지를 위한 다각형을 형성하기 위해 카드의 4개 정점을 회전시키는 수단이 필요합니다.
이 회전을 용이하게 하기 위해 Allegro API는 다음과 같은 편리한 기능을 제공합니다.
al_draw_rotated_bitmap(OBJECT_TO_ROTATE, CENTER_X , CENTER_Y, X, Y, DEGREES_TO_ROTATE_IN_RADIANS)
그러나 회전된 점을 수동으로 계산하려면 다음 함수를 고안해야 합니다.
POINT Rotate_point(float cx, float cy, float angle, POINT p)
여기서 (cx, cy)는 피벗점을 나타내고 angle은 시계 반대 방향 회전을 나타냅니다. 각도이고, p는 회전할 원점입니다.
해결책의 핵심은 다음 단계를 수행하는 것입니다.
방정식:
이 접근 방식을 적용하면 이 함수는 2D 평면의 모든 피벗점을 중심으로 점을 효과적으로 회전할 수 있습니다.
위 내용은 2D 공간에서 다른 점을 중심으로 점을 회전하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!