Difference between revisions of "Math.atan2"

From GiderosMobile
(added example)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages />
+
'''Available since:''' Gideros 2011.6<br/>
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
+
'''Class:''' [[Special:MyLanguage/math|math]]<br/>
'''<translate>Class</translate>:''' [[Special:MyLanguage/math|math]]<br/>
+
 
=== <translate>Description</translate> ===
+
=== Description ===
<translate>Returns the arc tangent of v1/v2 (in radians), but uses the signs of both parameters to find the quadrant of the result. (It also handles correctly the case of v2 being zero.)</translate>
+
Returns the arc tangent of v1/v2 (in radians), but uses the signs of both parameters to find the quadrant of the result (it also handles correctly the case of v2 being zero).
 
<source lang="lua">
 
<source lang="lua">
 
(number) = math.atan2(v1,v2)
 
(number) = math.atan2(v1,v2)
 
</source>
 
</source>
=== <translate>Parameters</translate> ===
+
 
'''v1''': (number) <translate>first value</translate> <br/>
+
=== Parameters ===
'''v2''': (number) <translate>second value</translate> <br/>
+
'''v1''': (number) first value <br/>
=== <translate>Return values</translate> ===
+
'''v2''': (number) second value <br/>
'''<translate>Returns</translate>''' (number) <translate>result</translate><br/>
+
 
 +
=== Return values ===
 +
'''Returns''' (number) the angle in radian<br/>
 +
 
 +
=== Example ===
 +
'''Aiming at an enemy'''
 +
<source lang="lua">
 +
local playerX, playerY = player:getPosition()
 +
local nmeX, nmeY = nme:getPosition()
 +
-- here we get the nme angle relative to the player
 +
local angle = math.atan2(nmeY - playerY, nmeX - playerX) -- the Ys first!
 +
-- now we can target the nme
 +
missile:setPosition(15 * math.cos(angle), 15 * math.sin(angle))
 +
-- ...
 +
</source>
  
 
{{Math}}
 
{{Math}}

Revision as of 10:01, 25 October 2020

Available since: Gideros 2011.6
Class: math

Description

Returns the arc tangent of v1/v2 (in radians), but uses the signs of both parameters to find the quadrant of the result (it also handles correctly the case of v2 being zero).

(number) = math.atan2(v1,v2)

Parameters

v1: (number) first value
v2: (number) second value

Return values

Returns (number) the angle in radian

Example

Aiming at an enemy

local playerX, playerY = player:getPosition()
local nmeX, nmeY = nme:getPosition()
-- here we get the nme angle relative to the player
local angle = math.atan2(nmeY - playerY, nmeX - playerX) -- the Ys first!
-- now we can target the nme
missile:setPosition(15 * math.cos(angle), 15 * math.sin(angle))
-- ...