ATan2# ( y#, x# )

Параметры

y, x - любые числа. 

Они интерпретируются в точку с координатами (x,y).

Описание

Atan2 возвращает угол между позитивной частью оси абсцисс (ось X) и вектором, который начинается в точке (0;0) и заканчивается в точке (x,y) 

Один вариант использования в 2D графике. Представьте, что у вас есть два обьекта и вы хотите "нацелить" первый обьект на второй.

ATan2( y2 - y1, x2 - x1 ) вернёт соответствующее положение для первого обьекта. 
Вы можете использовать полученный угол для выбора подходящего изображения, находящегося под определеннным углом.

Обратите внимание на то, что изменение порядка чисел приводит к изменению Atan2. ATan2( y, x ) отличается от ATan2( x, y). 
ATan2( y, x ) аналогичен ATan( y / x), но покрывает 360 градусов. 

Угол удовлетворяет условия: -180 < ATan2 <= +180

Пример

; Пример использования ATan2. 

; Перемещать точку мышкой. Escape - выход. 

Const width = 640, height = 480 
Const radius# = .2 * height 
Const KEY_ESC = 1 

Graphics width, height 
SetBuffer BackBuffer( ) 
Origin width / 2, height / 2 
HidePointer 
MoveMouse .75 * width, height / 2 

While Not KeyDown( KEY_ESC ) 

Cls 

Color 255, 255, 0 
Line 0, 0, width / 2, 0 ; позитивная часть оси абсцисс 

x = MouseX() - width / 2 
y = MouseY() - height / 2 

Oval x - 3, y - 3, 7, 7, True 
Line 0, 0, x, y 

Text .35 * width, -80, "x = " + x 
Text .35 * width, -60, "y = " + y 

Text .35 * width - 96, -40, "ATan2( y, x ) = " + ATan2( y, x ) 

Flip 

Wend 

End

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете