atan2

From Bohemia Interactive Community
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Hover & click on the images for description

Description

Description:
atan.jpg
ArcTangent of y/x. Used to determine the angle of a vector [y,x]. Result in Degrees between -180 and 180.
This command can handle x being 0, unlike when using atan, and will return 90
This command has higher precedence than the select command, therefore beware of the case below:

_pos select 0 atan2 (_pos select 1) // error (_pos select 0) atan2 (_pos select 1) // OK

Alternatively, consider using the # operator: _pos # 0 atan2 _pos # 1
Groups:
Math - Geometry

Syntax

Syntax:
y atan2 x
Parameters:
y: Number
x: Number
Return Value:
Number

Examples

Example 1:
_yx = [5,3]; _degrees = (_yx select 0) atan2 (_yx select 1); // 59.0362
Example 2:
Get direction from _obj1 to _obj2:
_vd = getPosASL _obj2 vectorDiff getPosASL _obj1; _dir = (_vd select 0) atan2 (_vd select 1); // _dir range from -180 to +180 _dir = (_dir + 360) % 360; // _dir range from 0 to 360
Example 3:
Get relative direction from _obj1 to _obj2:
_yx = _obj1 worldToModel getPosASL _obj2; _dir = (_yx select 0) atan2 (_yx select 1); // _dir range from -180 to +180 _dir = (_dir + 360) % 360; // _dir range from 0 to 360

Additional Information

See also:
atan tan sin cos asin acos rad pi vectorCos BIS_fnc_dirTo getRelPos getRelDir

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note