Posiadam tablicę funkcji trygonometrycznych dla wszystkich kątów opisanych liczbą naturalną w skali od 0 do 90. Jak wyliczyć np. funkcję sinus z 35.673 stopni?
Wpadłem na mniej-więcej taki pseudokod:
float kąt = 35.673;
float sinA = 0.5736; //dla kąta 35
float sinB = 0.5878; //dla kąta 36
float sinC = sinA + ((sinB - sinA) * (kąt % 1)); //dla kąta 35.673
Czyli:
- Pobieram wartość funkcji sinus dla najbliższych całkowitych funkcji kąta
- Wyliczam różnicę między funkcjami
- Mnożę przez część dziesiętną kąta
- Wynik dodaję do sinusa mniejszego kąta
Moje pytania:
- Czy podany przeze mnie algorytm jest poprawny
- Czy całość da się jakoś skrócić?