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. |
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".