Point distance (Lua): различия между версиями
Перейти к навигации
Перейти к поиску
Tatikoma (обсуждение | вклад) (Новая страница: «== Описание == '''point_distance''' - возвращает расстояние между двумя точками в виде дробного числ...») |
Tatikoma (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: нет. | Привязка к окну: нет. | ||
− | + | <br>Работа со свернутым окном: да. | |
− | + | <br>Все параметры заключаются в скобки и разделяются запятыми. | |
− | point_distance ( | + | point_distance (<x1>, <y1>, <x2>, <y2>) |
Где: | Где: | ||
− | + | <br>'''x1, y1''' - координаты x и y 1-й точки | |
− | + | <br>'''x2, y2''' - координаты x и y 2-й точки. | |
== Примеры == | == Примеры == | ||
Строка 50: | Строка 50: | ||
log ("Расстояние " .. dist) -- записали данные в лог (для справки) | log ("Расстояние " .. dist) -- записали данные в лог (для справки) | ||
− | if dist | + | if dist < min then |
min = dist | min = dist | ||
minNum = i | minNum = i |
Текущая версия на 11:02, 28 августа 2019
Содержание
Описание
point_distance - возвращает расстояние между двумя точками в виде дробного числа, представленного строкой.
Синтаксис
Привязка к окну: нет.
Работа со свернутым окном: да.
Все параметры заключаются в скобки и разделяются запятыми.
point_distance (<x1>, <y1>, <x2>, <y2>)
Где:
x1, y1 - координаты x и y 1-й точки
x2, y2 - координаты x и y 2-й точки.
Примеры
--lua local x1 = 0 -- координаты 1-й точки local y1 = 0 local x2 = 3 -- координаты 2-й точки local y2 = 5 -- можно присвоить одной строкой -- local x1, y1, x2, y2 = 0, 0, 3, 5 -- функция возвращает расстояние между двумя точками function point_dist(a, b, a1, b1) return math.sqrt((a1-a)^2+(b1-b)^2) end local d = point_dist(x1, y1, x2, y2) -- получили расстояние log (d)
--lua log ("clear") log ("mode compact") -- очистить лог, компактный режим local persX = 10 -- координаты перса local persY = 10 local a = {} table.insert(a, {3, 2}) -- координаты X Y 1-й точки table.insert(a, {16, 14}) -- координаты X Y 2-й точки table.insert(a, {25, 31}) -- координаты X Y 3-й точки local min = 9999999 -- тут будем подбирать расстояние local minNum = -1 -- тут будем хранить номер строки массива с "оптимальными" координатами local sizearray = #a -- число строк в массиве a -- функция возвращает расстояние между двумя точками function point_dist(a, b, a1, b1) return math.sqrt((a1-a)^2+(b1-b)^2) end for i = 1, sizearray do local x = a[i][1] local y = a[i][2] log ("x= " .. x, "y= " ..y) -- записали данные в лог (для справки) local dist = point_dist(persX, persY, x, y) -- получили дробное число в виде строки log ("Расстояние " .. dist) -- записали данные в лог (для справки) if dist < min then min = dist minNum = i end end if minNum > 0 then log ("Ближайшая точка № " .. minNum, "расстояние = " .. min) else log ("Почему-то не удалось найти ближайшую точку") end