Hej. Det finns bara en lösning: avrundning. Välj en minsta gräns, kalla den epsilon och istället för att jämföra två tal: Avrundningar...
Jag har gjort försök till att koda en triangel emot box kollisions funktion med mycket hjälp ifrån Per Persson (Se Matte/Fysik/Beräkna). Allt fungerar fint tills man börjar komma till mer utspridda trianglar och divisonerna i beräkningarna blir lite tyngre. Problemet är att två tal som jag vet egentligen ska vara lika skiljer sig med ungefär en tusen dels marginal (i de värsta fall jag har sett, det finns säkert värre).
Jag förstår att det är omöjligt med att få ut exakta svar på många diviosoner, men hur ska man hantera detta då det är nödvändigt för programmet att det ska vara exakt?. Avrundning skulle jag helst vilja skippa då det kommer bli svårt att applicera det på metoderna och ett antal fall då det inte sker kollision kommer då oxå räknas som kollision.
Finns det något vettigt sätt att lösa det här på?.
Om någon är intresserad av att kolla igenom koden (drygt 200 rader halvt omöjlig kod) så kan jag ladda upp den.Sv: Avrundningar...
if(a=b)
så använder du
if(abs(a-b)<epsilon)