Zkousim jednoduchou aplikaci v SDL.Kostecky ktere do sebe narazeji apodobne. k zjistovani kolizi pouzivam tuto funkci:
bool kolusu(usecka u, usecka uu, bod uu1, bod uu2)
{
//usecka uchovava uhel a vzdalenost abych mohl jednoduse otacet.Funkce getb() vraci bod konce.Jelikoz nemam urceny pocatek tak pridavam bod tzn u patri s uu1 a uu patri s uu2
double u1, u2, v1, v2;
bod A = uu1;
bod B = u.getb();
B.x += A.x; B.y += A.y;
bod C = uu2;
bod D = uu.getb();
D.x += C.x; D.y += C.y;
u1 = B.x - A.x;
u2 = B.y - A.y;
v1 = D.x - C.x;
v2 = D.y - C.y;
//A tady zjistuji prunik
double s = (u1*(A.y-C.y)-u2*(A.x-C.x))/(u2*v1-u1*v2);
double t = (v1*(A.y-C.y)-v2*(A.x-C.x))/(u1*v2-u2*v1);
if(s >= 0 && s <= 1 && t >= 0 && t <= 1)
return true;
return false;
}
Muj problem spociva v tom, ze kdyz prohodim predavane argumenty, kdyz argumenty predavane jako u a uu1 predam jako uu a uu2 a naopak,tak mi funkce nevrati prunik i kyz ve skutecnosti je.
Funkci jsem uz tolikrat prosel, ale chybu nemuzu najit.Vychazel jsem z http://www.postreh.com/phprs/rservice.php?akce=tisk&cisloclanku=2007061901 Nevite kde by chyba mohla byt?