atan
(PHP 4, PHP 5)
atan — Arc tangent
Описание
float atan
( float $arg
)
Returns the arc tangent of arg in radians. atan() is the complementary function of tan(), which means that a==tan(atan(a)) for every value of a that is within atan()'s range.
Список параметров
- arg
-
The argument to process
Возвращаемые значения
The arc tangent of arg in radians.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Математические расширения
- Математические функции
- abs
- acos
- acosh
- asin
- asinh
- atan2
- atan
- atanh
- base_convert
- bindec
- ceil
- cos
- cosh
- decbin
- dechex
- decoct
- deg2rad
- exp
- expm1
- floor
- fmod
- getrandmax
- hexdec
- hypot
- intdiv
- is_finite
- is_infinite
- is_nan
- lcg_value
- log10
- log1p
- log
- max
- min
- mt_getrandmax
- mt_rand
- mt_srand
- octdec
- pi
- pow
- rad2deg
- rand
- round
- sin
- sinh
- sqrt
- srand
- tan
- tanh
Коментарии
Arc Tan curve manipulation.
I used this formula to help with increasing and then diminishing return for y given an increasing x for a game.
Ie: Food production (output) is y. Food research is x.
The more research you put into x the more you produce, however after a certain point you get less reward.
y = atan(x - pi()) + pi()/2;
The + pi()/2 moves it up the y axis so you'd add more if you want it to start higher.
The x - pi() moves it to the right so you'd minus more to move it more.
If you want stretched along the y axis change it to 2 * atan( ...... )
Dunno how useful it is... but it's there.
Daz
to obtain the direction of the line, you are better to use the <? atan2((y2-y1)/(x2-x1)) ?> function, since the regular atan function will only return arguments in the half-plane, ie. if y2-y1 and x2-x1 are negative, atan will give you an angle measurement less than 90 degrees, while it really should be between 180 and 270
Contrary to the current description, it should hold y == tan(atan(y)) for ALL y.
However, x == atan(tan(x)) only holds for those x which are in the range of atan, which are those x with -pi/2 < x < pi/2.
Of course, those equalities are limited by precision. On my machine
tan(atan(1000)) returns 1000.0000000001.
atan(tan(0)) returns 0 (correct).
atan(tan(M_PI)) returns -1.2246467991474E-16 instead of 0.