Funkcje Trygonometryczne

0

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?

1

Musisz przekonwertować stopnie na radiany.
Np. używając takiej krótkiej metody:

public static double ToRad(double angle)
{
	return (angle * Math.PI) / 180.0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1