Witam
Piszę program obliczający wysokość trójkąta prostokątnego.
Mam do dyspozycji podstawę a = 16
I zmienny kąt alpha.
Przykładowo dla kąta float 45.0f;
float a = Mathf.Sqrt( Mathf.Pow( B.x - A.x, 2 ) + Mathf.Pow( B.y - A.y, 2 ) );
Debug.Log( "Długość boku a wynosi: " + a );
float sinus = Mathf.Sin( alpha_angle );
float cosinus = Mathf.Cos( alpha_angle );
float tangens = Mathf.Tan( alpha_angle );
Debug.Log( "Sinus kąta: " + alpha_angle + " wynosi: " + sinus );
Debug.Log( "Cosinus kąta: " + alpha_angle + " wynosi: " + cosinus );
Debug.Log( "Tangens kąta: " + alpha_angle + " wynosi: " + tangens );
float b = tangens * a;
float bx = ( a / cosinus ) * sinus;
Debug.Log( "Długość boku b wynosi: " + b );
Debug.Log( "Długość boku bx wynosi: " + bx );
wynik wychodzi:
Długość boku a wynosi: 16
Sinus kąta: 45 wynosi: 0.8509035
Cosinus kąta: 45 wynosi: 0.525322
Tangens kąta: 45 wynosi: 1.619775
Długość boku b wynosi: 25.9164
Długość boku bx wynosi: 25.9164
Długość boku powinna wyjść 16 cm tak samo jak bok a. Niestety nawet tangens nie wynosi dokładnie 1.0 po wpisaniu 45. Co zaradzić na ten problem?