Estou tentando fazer um jogo de cartas onde as cartas se espalham. Agora, para exibi-lo, estou usando a API Allegro, que tem uma função:
al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X
,Y,DEGREES_TO_ROTATE_IN_RADIANS);
então com isso eu posso fazer meu efeito de fã facilmente. O problema é saber qual cartão está sob o mouse. Para fazer isso, pensei em fazer um teste de colisão de polígono. Só não sei como girar os 4 pontos no cartão para formar o polígono. Basicamente, preciso fazer a mesma operação que o Allegro.
por exemplo, os 4 pontos do cartão são:
card.x
card.y
card.x + card.width
card.y + card.height
Eu precisaria de uma função como:
POINT rotate_point(float cx,float cy,float angle,POINT p)
{
}
obrigado