Problem dotyczy tego kodu: http://pastebin.com/34qXepnY
A ściślej funkcji obracającej punkt o dany kąt:
Funkcja "obracaj"
void punkt::obracaj(float kat)
{
float c=0;
kat=(M_PI*kat)/180.0f; //zmiana miary kata na radiany
c=x;
x=(x*cosf(kat))-(y*sinf(kat));
y=(c*sinf(kat))+(y*cosf(kat));
}
Np. współrzędne punktu to x=15 i y=0, a my chcemy ten punkt obrócić o 180 stopni, to powinniśmy otrzymać x=-15 i y=0. O ile pierwsza współrzędna będzie prawidłowa, to już druga będzie niezerową liczbą, dodatkowo w notacji naukowej.
Przykład:
Czy da się to jakoś rozwiązać, czy wynika to po prostu z faktu użycia liczby PI, która jest nieskończona ?