Trygonometria

Szczawik

Trygonometria (gr. tríg?non - trójkąt) to dziedzina matematyczna, badająca zależności między kątami i bokami trójkątów w geometrii płaskiej lub sferycznej (hiperbolicznej).

W Delphi, w modułach System oraz Math zdefinowano następujące pierwotne funkcje trygonometryczne:

Deklaracja Moduł Krótki opis
[[Delphi/Sin]] [[Delphi/Moduły/System]] Zwraca sinus podanego kąta
[[Delphi/Cos]] [[Delphi/Moduły/System]] Zwraca kosinus podanego kąta
[[Delphi/Tan]] [[Delphi/Moduły/Math]] Zwraca tangens podanego kąta ( [[Delphi/Sin]](x)/[[Delphi/Cos]](x) )
[[Delphi/Cot]] [[Delphi/Moduły/Math]] Zwraca kotangens podanego kąta ( 1/[[Delphi/Tan]](x) )
[[Delphi/Sec]] [[Delphi/Moduły/Math]] Równoznaczna z [[Delphi/Secant]]
[[Delphi/Secant]] [[Delphi/Moduły/Math]] Zwraca sekans podanego kąta ( 1/[[Delphi/Cos]](x) )
[[Delphi/Csc]] [[Delphi/Moduły/Math]] Równoznaczna z [[Delphi/Cosecant]]
[[Delphi/Cosecant]] [[Delphi/Moduły/Math]] Zwraca kosekans podanego kąta ( 1/[[Delphi/Sin]](x) )
[[Delphi/SinH]] [[Delphi/Moduły/Math]] Zwraca sinus hiperboliczny podanego kąta
[[Delphi/CosH]] [[Delphi/Moduły/Math]] Zwraca kosinus hiperboliczny podanego kąta
[[Delphi/TanH]] [[Delphi/Moduły/Math]] Zwraca tangens hiperboliczny podanego kąta
[[Delphi/CotH]] [[Delphi/Moduły/Math]] Zwraca kotangens hiperboliczny podanego kąta
[[Delphi/SecH]] [[Delphi/Moduły/Math]] Zwraca sekans hiperboliczny podanego kąta
[[Delphi/CscH]] [[Delphi/Moduły/Math]] Zwraca kosekans hiperboliczny podanego kąta

Każda z powyższych funkcji ma swoją funkcję odwrotną, pozwalającą wyznaczyć kąt z wartości wynikowej funkcji pierwotnej. Poniższa tabela przedstawia funkcje odwrotne:

Deklaracja Moduł Funkcja odwrotna
[[Delphi/ArcSin]] [[Delphi/Moduły/Math]] [[Delphi/Sin]]
[[Delphi/ArcCos]] [[Delphi/Moduły/Math]] [[Delphi/Cos]]
[[Delphi/ArcTan]] [[Delphi/Moduły/System]] [[Delphi/Tan]]
[[Delphi/ArcTan2]] [[Delphi/Moduły/Math]] [[Delphi/Tan]]1
[[Delphi/ArcCot]] [[Delphi/Moduły/Math]] [[Delphi/Cot]]
[[Delphi/ArcSec]] [[Delphi/Moduły/Math]] [[Delphi/Sec]], [[Delphi/Secant]]
[[Delphi/ArcCsc]] [[Delphi/Moduły/Math]] [[Delphi/Csc]], [[Delphi/Cosecant]]
[[Delphi/ArcSinH]] [[Delphi/Moduły/Math]] [[Delphi/SinH]]
[[Delphi/ArcCosH]] [[Delphi/Moduły/Math]] [[Delphi/CosH]]
[[Delphi/ArcTanH]] [[Delphi/Moduły/Math]] [[Delphi/TanH]]
[[Delphi/ArcCotH]] [[Delphi/Moduły/Math]] [[Delphi/CotH]]
[[Delphi/ArcSecH]] [[Delphi/Moduły/Math]] [[Delphi/SecH]]
[[Delphi/ArcCscH]] [[Delphi/Moduły/Math]] [[Delphi/CscH]]

1Funkcja ArcTan2(Y, X) pobiera dwa argumenty i zwraca kąt wyliczony działaniem ArcTan(Y/X), określony dla odpowiedniej ćwiartki. Ograniczenia: parametr X musi być różny od 0, a zwracany kąt będzie w zakresie: -? ? ArcTan2(Y, X) ? ?

Wszystkie funkcje, z wyjątkiem wspomnianej powyżej ArcTan2, przyjmują pojedynczy argument typu Extended i w wyniku zwracają wartość również typu Extended.

Wszystkie kąty są wyrażone w radianach. Jednak Delphi powala na korzystanie z rozmaitych miar kątów, oferując funkcje konwersji. Między systemami miar występuje poniższa zależność:

360o (stopnie/degrees) = 2? (radiany/radians) = 400g (grady/grads) = 1 (cykle/cycles)

Przydatnym może być więc użycie którejś z poniższych funkcji:

Deklaracja Moduł Krótki opis
[[Delphi/CycleToDeg]] [[Delphi/Moduły/Math]] Cykle na stopnie
[[Delphi/CycleToGrad]] [[Delphi/Moduły/Math]] Cykle na grady
[[Delphi/CycleToRad]] [[Delphi/Moduły/Math]] Cykle na radiany
 <tr>
   <td class="row">[[Delphi/DegToCycle]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Stopnie na cykle</td>
 </tr>
 <tr>
   <td class="row">[[Delphi/DegToGrad]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Stopnie na grady</td>
 </tr>
 <tr>
   <td class="row">[[Delphi/DegToRad]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Stopnie na radiany</td>
 </tr>

 <tr>
   <td class="row">[[Delphi/GradToCycle]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Grady na cykle</td>
 </tr>
 <tr>
   <td class="row">[[Delphi/GradToDeg]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Grady na stopnie</td>
 </tr>
 <tr>
   <td class="row">[[Delphi/GradToRad]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Grady na radiany</td>
 </tr>


 <tr>
   <td class="row">[[Delphi/RadToCycle]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Radiany na cykle</td>
 </tr>
 <tr>
   <td class="row">[[Delphi/RadToDeg]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Radiany na stopnie</td>
 </tr>
 <tr>
   <td class="row">[[Delphi/RadToGrad]]</td>
   <td class="row">[[Delphi/Moduły/Math]]</td>
   <td class="row">Radiany na grady</td>
 </tr>
</table>

We wszystkich funkcjach konwersji miar należy podać pojedynczy argument typu Extended, a w wyniku zwracają wartość również typu Extended.

Moduł Math oferuje dodatkowe dwie funkcje, które wspomagają operacje trygonometryczne:

Deklaracja Parametry Krótki opis
[[Delphi/Hypot]] (X,Y) Oblicza długość przeciwprostokątnej trójkąta ( ?(X2+Y2) )
[[Delphi/SinCos]] (Theta, var Sin, Cos) W jednej funkcji zwraca wartość sinusa i kosinusa. Dwukrotnie szybsza od dwóch osobnych wywołań tych funkcji.

ArcTan

  • 2010-10-31 18:27
  • 5 komentarzy
  • 4349 odsłon

1 komentarz

Bardzo fajnie. Dobry pomysl zeby podawac nazwe modulu w ktorym jest dana funkcja. Powinienem tak robic od poczatku w innych artykulach :)

Aha, i zmienilem ten artykul z "artykul" na "kategorie".