RadToGrad i...coś nie tak

0

Napisałem takie dwie funkcje...
Zamiana stopni na radiany i na odwrót:

function TForm1.radToGrad(rad: extended): extended;
begin
result:=(rad*180)/pi;
end;

function TForm1.GradToRad(st: extended): extended;
begin
result:=(st*pi)/180;
end;

Wzory podał mi Dryobates, ale coś nadal nie działa...

Bo gdy robię takie coś:

x:=90;
cosinus:=cos(radToGrad(x));

to cosinus NIE wychodzi 0... A jak wiadomo, dla kąta 90 stopni, cosinus ma wartość 0... A mi wychodzi -0,2 i coś tam...

Czego mi jeszcze brakuje?

0

Ale masz podane stopnie, nie radiany. Dlatego musisz zastosować drugą funkcję, czyli:

x:=90;
cosinus:=cos(GradToRad(x));

Teraz chyba powinno działać :)

0

Dla ścisłóści :
rad - radiany
deg - stopnie
grad - gradiany (miara kąta w przestrzeni)

twoje procedurki powinny się nazywać radToDeg i degToRad. pozdr.

0

Ale masz podane stopnie, nie radiany. Dlatego musisz zastosować drugą funkcję, czyli:

x:=90;
cosinus:=cos(GradToRad(x));

Teraz chyba powinno działać :)

Tak też próbowałem i nie działa [stuk]

0

Dla ścisłóści :
rad - radiany
deg - stopnie
grad - gradiany (miara kąta w przestrzeni)

twoje procedurki powinny się nazywać radToDeg i degToRad. pozdr.

Akurat grad to skrót od gradus i jest to miara kąta płaskiego, gdzie
200 grad = Pi rad = 180 deg
A w przestrzeni to według układu SI miarą jest steradian.

Juhas: jeżeli cię to pocieszy to cos(Pi/2) (czyli 90 stopni) też nie daje w wyniku 0.

0

Może ktoś to poprawi, bo wiem że można prościej, ale mi był potrzebny wynik a nie metoda:

label1.Caption:=FloatToStr(int(cos(DegToRad(90))*100000)/100000);

DegToRad - jest w module Math i wygląda tak:

function DegToRad(const Degrees: Extended): Extended; { Radians := Degrees * PI / 180 }
begin
Result := Degrees * (PI / 180);
end;
a to 100000 to trzeba zmienić w zależności od potrzebnej dokładności wyniku (max 1000000000000000000)

0

Może ktoś to poprawi, bo wiem że można prościej, ale mi był potrzebny wynik

Ano jest prostrzy sposób :) Przy użyciu FloatToStrF :) Już podawałem to przy sin.

0

Dla ścisłóści :
rad - radiany
deg - stopnie
grad - gradiany (miara kąta w przestrzeni)

twoje procedurki powinny się nazywać radToDeg i degToRad. pozdr.

Akurat grad to skrót od gradus i jest to miara kąta płaskiego, gdzie
200 grad = Pi rad = 180 deg
A w przestrzeni to według układu SI miarą jest steradian.

Juhas: jeżeli cię to pocieszy to cos(Pi/2) (czyli 90 stopni) też nie daje w wyniku 0.

Dryo, miałem zaćmienie, masz całkowitą rację..

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