|
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 |