ATan2# ( y#, x# )
Параметры:
y, x - любые числа.
Они интерпретируются в точку с координатами (x,y).
Определение:
Atan2 возвращает угол между позитивной частью оси абсцисс (ось X) и вектором, который начинается в точке (0;0) и заканчивается в точке (x,y)
Один вариант использования в 2д графике. Представьте, что у вас есть два обьекта и вы хотите "нацелить" первый обьект на второй.
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
Вернуться