kollsions detektion
jeg er igang med at lave noget grafisk 2d programmering, og har lidt problemer med kollisions detektion mellem 2 cirkler.ball: en cirkel med radius 13, og centrum(x,y) er kendt
paddle: en cirkel med radius 18, og centrum kendes også.
Jeg vil teste med hvilken vinkel paddle rammer ball (for at kunne beregne ny retning til ball).
Jeg bruger i øjeblikket pytagoras til at beregne om der er kollision ved at sige at:
for(int i=0;i<360;i+=10)
{
x = ball.getX()+(sin((i)*3.141592654/180)*13);
y = ball.getY()+(cos((i)*3.141592654/180)*13);
if(sqrt((paddle.getX()-x)*(paddle.getX()-x)+(paddle.getY()-y)*(paddle.getY()-y)) < 18)
//kollision
//vinkel = i
}
men jeg er ikke tilfreds med at teste i sådan et loop, da det favoritisere lave tal. Derfor hjælper det heller ikke at sætte \"opløsningen\" op i \"for\" sætningen.
Hvordan kan jeg gøre det smartere?
Mvh
Søren Olesen
