Lekce 19 - Inverzní goniometrické funkce v PHP
V předchozí lekci, Úvod do matematických funkcí v PHP, jsme se uvedli do problematiky matematických funkcí v PHP.
V této lekci si ukážeme inverzní goniometrické funkce v PHP takové, jak je známe ze školy.
asin()
Funkce asin()
představuje v PHP matematickou funkci
arkus sinus, jedná se tedy o převrácenou funkci k sinu
(také označována jako sin−1). Funkce
asin()
přijímá pouze jeden parametr, kterým je hodnota funkce
sinus. Ukažme si pár příkladů:
$degrees = 90; $sinus = sin(deg2rad($degrees)); // 90° = 1.5707963267949 rad, tedy sin(1.5707...) = 1 $asinus = rad2deg(asin($sinus)); // 1.5707963267949 rad = 90°, tedy asin(1) = 1.5707...rad = 90° echo "sin(".$degrees."°) = ".$sinus; echo "<br>"; echo "asin(".$sinus.") = ".$asinus."°";
V proměnné $sinus
jsme si definovali funkci sinus, kterou
známe již z minulých lekcí. V proměnné $asinus
je definována
funkce asin()
, která přijímá hodnotu funkce sinus 90°
(sin(90°) = 1
), tedy asin(1)
. Výstup této funkce je
v jednotkách radiánů, avšak pomocí funkce rad2deg()
, která je
nám také již známa, dostaneme na výstup hodnotu vyjádřenou ve stupních,
tedy asin(1) = 90°
. Na stránce uvidíme:
acos()
Funkce acos()
představuje v matematice funkci arkus
cosinus a jedná se tedy o převrácenou funkci ke cosinu. Funkce
acos()
je také v matematice označována jako
cos−1, jako matematická funkce v PHP přijímá
pouze jeden parametr, kterým je hodnota funkce cosinus. Ukažme si pár
příkladů:
$degrees = 0; $cosinus = cos(deg2rad($degrees)); //0° = 0 rad, tedy cos(0) = 1 $acosinus = rad2deg(acos($cosinus)); //0 rad = 0°, tedy acos(1) = 0rad = 0° echo "cos(".$degrees."°) = ".$cosinus; echo "<br>"; echo "acos(".$cosinus.") = ".$acosinus."°";
Podobně jako u funkce asin()
v proměnné $cosinus
je definovaná funkce cosinus a proměnná $acosinus
představuje
funkci acosinus, která přijímá hodnotu funkce cosinus, v tomto případě
tedy 1 (cos(0°) = 1
), čili acos(1)
. Výstup této
funkce je v jednotkách radiánů, avšak zase pomocí funkce
rad2deg()
dostaneme na výstup hodnotu vyjádřenou ve stupních,
tedy acos(1) = 0°
. Na stránce uvidíme:
Pokud zadáme neplatnou hodnotu pro arkus sinus nebo arkus cosinus, tedy hodnoty menší než -1 a větší než 1, dostaneme výsledek NaN (angl. Not a Number).
atan()
Představuje matematickou funkci arkus tangens, která je označována také jako tan−1. Je tedy převrácenou funkcí k tangens. V PHP podobně jako obě předchozí funkce přijímá pouze jeden parametr, kterým je hodnota funkce tangens. Ukažme si příklad:
$degrees = 45; $tangens = tan(deg2rad($degrees)); //45° = 0.78539816339745 rad, tedy tan(0.7853...) = 1 $atangens = rad2deg(atan($tangens)); //0.78539816339745 rad = 45°, tedy atan(1) = 0.785398... = 45° echo "tan(".$degrees."°) = ".$tangens; echo "<br>"; echo "atan(".$tangens.") = ".$atangens."°";
Na výstup dostaneme:
atan2()
Funkce atan2()
vrací hodnotu funkce arkus
tangens. Na rozdíl od funkce atan()
počítá se dvěma
hodnotami jako bychom počítali funkci arkus tangens y/x s
rozdílem, že funkce podle znamének vybere kvadrant. Ukažme si příklad:
$degrees1 = 0; $degrees2 = 20; $tangens1 = tan(deg2rad($degrees1)); // 0° = 0 rad, tedy tan(0) = 0 $tangens2 = tan(deg2rad($degrees2)); // 20° = 0.34906585039887 rad, tedy tan(0.3490...) = 0.3639702342662 $atan2 = rad2deg(atan2($tangens1, $tangens2)); echo "atan2(".$tangens1.", ".$tangens2.") = ".$atan2."°";
Na výstup dostaneme:
Pokud bychom exportovali hodnoty z funkce atan2()
například do Microsoft Excel, musíme dát pozor na pořadí parametrů.
Funkce atan2()
přijímá parametry ve formátu
y/x, zatímco Microsoft Excel ve formátu
x/y.
V další lekci, Hyperbolické goniometrické funkce v PHP, si vysvětlíme hyperbolické goniometrické funkce v PHP.