Point distance: различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: «== Описание == Возвращает расстояние между двумя точками в виде дробного числа, представл...»)
 
 
Строка 4: Строка 4:
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: нет.
 
Привязка к окну: нет.
<br>Работа со свернутым окном: да.
+
<br>Работа со свернутым окном: да.
  point_distance (&lt;#x1> &lt;#y1> &lt;#x2> &lt;#y2>)
+
  point_distance (<#x1> <#y1> <#x2> <#y2>)
&lt;#x1>, &lt;#y1> - координаты x и y 1-й точки
+
<#x1>, <#y1> - координаты x и y 1-й точки
&lt;br>&lt;#x2>, &lt;#y2> - координаты x и y 2-й точки.
+
<br><#x2>, <#y2> - координаты x и y 2-й точки.
  
 
== Примеры ==
 
== Примеры ==
Строка 43: Строка 43:
 
   log #dist // записали данные в лог (для справки)
 
   log #dist // записали данные в лог (для справки)
 
    
 
    
   if #dist &lt; #min
+
   if #dist < #min
 
     set #min #dist
 
     set #min #dist
 
     set #minNum #i
 
     set #minNum #i
Строка 57: Строка 57:
 
== Смотрите также ==
 
== Смотрите также ==
 
[[mod]] (x y) - Возвращает остаток от деления 'x' на 'y'.
 
[[mod]] (x y) - Возвращает остаток от деления 'x' на 'y'.
&lt;br>[[div]] (x y) - Возвращает целую часть от деления 'x' на 'y'.
+
<br>[[div]] (x y) - Возвращает целую часть от деления 'x' на 'y'.
  
 
== История развития ==
 
== История развития ==
  
 
'''2.32'''
 
'''2.32'''
&lt;br>Добавил несколько ненужных функций обработки вещественных чисел и строковых переменных. Десятичным разделителем считается запятая. &lt;br>Почти все функции при ошибках возвращают '-1'.
+
<br>Добавил несколько ненужных функций обработки вещественных чисел и строковых переменных. Десятичным разделителем считается запятая. <br>Почти все функции при ошибках возвращают '-1'.
&lt;br>abs(x) - Возвращает абсолютную величину x.
+
<br>abs(x) - Возвращает абсолютную величину x.
&lt;br>round(x) - Возвращает x, округлённый до самого близкого целого числа.
+
<br>round(x) - Возвращает x, округлённый до самого близкого целого числа.
&lt;br>floor(x) - Возвращает x округлённый до ближайшего целого числа, которое меньше x.
+
<br>floor(x) - Возвращает x округлённый до ближайшего целого числа, которое меньше x.
&lt;br>ceil(x) - Возвращает x округлённый до ближайшего целого числа, которое больше x.
+
<br>ceil(x) - Возвращает x округлённый до ближайшего целого числа, которое больше x.
&lt;br>frac(x) - Возвращает дробную часть x, то есть часть, стоящую позади десятичной точки.
+
<br>frac(x) - Возвращает дробную часть x, то есть часть, стоящую позади десятичной точки.
&lt;br>sqrt(x) - Возвращает квадратный корень из абсолютного значения x.
+
<br>sqrt(x) - Возвращает квадратный корень из абсолютного значения x.
&lt;br>power(x n) - Возвращает x в степени n.
+
<br>power(x n) - Возвращает x в степени n.
&lt;br>exp(x) - Возвращает e в степени x.
+
<br>exp(x) - Возвращает e в степени x.
&lt;br>ln(x) - Возвращает натуральный логарифм от x.
+
<br>ln(x) - Возвращает натуральный логарифм от x.
&lt;br>log(n x) - Возвращает логарифм от x по основанию n.
+
<br>log(n x) - Возвращает логарифм от x по основанию n.
&lt;br>sin(x) - Возвращает синус x (в радианах).
+
<br>sin(x) - Возвращает синус x (в радианах).
&lt;br>cos(x) - Возвращает косинус x (в радианах).
+
<br>cos(x) - Возвращает косинус x (в радианах).
&lt;br>tan(x) - Возвращает тангенс x (в радианах).
+
<br>tan(x) - Возвращает тангенс x (в радианах).
&lt;br>arcsin(x) - Возвращает арксинус x.
+
<br>arcsin(x) - Возвращает арксинус x.
&lt;br>arccos(x) - Возвращает арккосинус x.
+
<br>arccos(x) - Возвращает арккосинус x.
&lt;br>arctan(x) - Возвращает арктангенс x.
+
<br>arctan(x) - Возвращает арктангенс x.
&lt;br>degtorad(x) - Преобразовывает градусы в радианы.
+
<br>degtorad(x) - Преобразовывает градусы в радианы.
&lt;br>radtodeg(x) - Преобразовывает радианы в градусы.
+
<br>radtodeg(x) - Преобразовывает радианы в градусы.
&lt;br>trunc(x) - Отбрасывает дробную часть.
+
<br>trunc(x) - Отбрасывает дробную часть.
&lt;br>minx(val1 val2 val3 ...) - Возвращает минимальную из величин.
+
<br>minx(val1 val2 val3 ...) - Возвращает минимальную из величин.
&lt;br>maxx(val1 val2 val3 ...) - Возвращает максимальную из величин.
+
<br>maxx(val1 val2 val3 ...) - Возвращает максимальную из величин.
&lt;br>mean(val1 val2 val3 ...) - Возвращает среднее арифметическое.
+
<br>mean(val1 val2 val3 ...) - Возвращает среднее арифметическое.
&lt;br>point_distance(x1 y1 x2 y2) - Возвращает расстояние между точкой (x1,y1) и (x2,y2).
+
<br>point_distance(x1 y1 x2 y2) - Возвращает расстояние между точкой (x1,y1) и (x2,y2).
&lt;br>point_direction(x1 y1 x2 y2) - Возвращает угол (в градусах) между осью X и вектором с началом в точке (x1,y1) и окончанием в точке (x2,y2).
+
<br>point_direction(x1 y1 x2 y2) - Возвращает угол (в градусах) между осью X и вектором с началом в точке (x1,y1) и окончанием в точке (x2,y2).
&lt;br>lengthdir_x(len dir) - Возвращает горизонтальный x-катет вектора определённый указанной длиной и направлением.
+
<br>lengthdir_x(len dir) - Возвращает горизонтальный x-катет вектора определённый указанной длиной и направлением.
&lt;br>lengthdir_y(len dir) - Возвращает вертикальный y-катет вектора определённый указанной длиной и направлением.
+
<br>lengthdir_y(len dir) - Возвращает вертикальный y-катет вектора определённый указанной длиной и направлением.
&lt;br>в lengthdir_x и lengthdir_y направление dir задаётся в градусах, причем отсчет угла идет от направления "Север" (от оси Y). По часовой стрелке "+", против часовой "-".
+
<br>в lengthdir_x и lengthdir_y направление dir задаётся в градусах, причем отсчет угла идет от направления "Север" (от оси Y). По часовой стрелке "+", против часовой "-".
&lt;br>is_real(x) - Возвращает 1, если x число.
+
<br>is_real(x) - Возвращает 1, если x число.
&lt;br>is_string(x) - Возвращает 1, если x является строкой (не число).
+
<br>is_string(x) - Возвращает 1, если x является строкой (не число).
&lt;br>chr(val) - Возвращает символ с ASCI кодом val.
+
<br>chr(val) - Возвращает символ с ASCI кодом val.
&lt;br>ord(str) - Возвращает ASCI код первого символа в строке str.
+
<br>ord(str) - Возвращает ASCI код первого символа в строке str.
&lt;br>string_replace(str substr newstr [all]) - Возвращает строку str, в которой встречающаяся подстрока substr будет заменена на подстроку newstr.
+
<br>string_replace(str substr newstr [all]) - Возвращает строку str, в которой встречающаяся подстрока substr будет заменена на подстроку newstr.
&lt;br>string_count(substr str) - Возвращает число, показывающее, сколько раз подстрока substr встречается в строке str.
+
<br>string_count(substr str) - Возвращает число, показывающее, сколько раз подстрока substr встречается в строке str.
&lt;br>string_lower(str) - Возвращает строку str, записанную маленькими буквами.
+
<br>string_lower(str) - Возвращает строку str, записанную маленькими буквами.
&lt;br>string_upper(str) - Возвращает строку str, записанную большими буквами.
+
<br>string_upper(str) - Возвращает строку str, записанную большими буквами.
&lt;br>string_letters(str) - Возвращает строку str, выбрасывая из неё все числа.
+
<br>string_letters(str) - Возвращает строку str, выбрасывая из неё все числа.
&lt;br>string_digits(str) - Возвращает строку str, выбрасывая из неё все буквенные символы.
+
<br>string_digits(str) - Возвращает строку str, выбрасывая из неё все буквенные символы.
&lt;br>Pi - 3,1415926535897932385.
+
<br>Pi - 3,1415926535897932385.
  
 
[[Категория:Текст]]
 
[[Категория:Текст]]
 
[[Категория:Преобразование чисел‏‎]]
 
[[Категория:Преобразование чисел‏‎]]

Текущая версия на 11:01, 28 августа 2019

Описание

Возвращает расстояние между двумя точками в виде дробного числа, представленного строкой.

Синтаксис

Привязка к окну: нет.
Работа со свернутым окном: да.

point_distance (<#x1> <#y1> <#x2> <#y2>)

<#x1>, <#y1> - координаты x и y 1-й точки
<#x2>, <#y2> - координаты x и y 2-й точки.

Примеры

// пример использования 1
set #x1 0 // координаты 1-й точки
set #y1 0
set #x2 3 // координаты 2-й точки
set #y2 5

set $d point_distance(#x1 #y1 #x2 #y2) // получили дробное число в виде строки
set #dist round( $d ) // округлили число в виде текста до ближайшего целого числа 
msg Округлённое расстояние $d = #dist
end_script
// пример использования 2
// поиск ближайшей к персу точки
set linedelay 1 // устанавливаем задержку между строк в 1 мс
set #persX 10 // координаты перса
set #persY 10
init_arr %a(1) 3 2 // координаты X Y 1-й точки 
init_arr %a(2) 16 14 // координаты X Y 2-й точки 
init_arr %a(3) 25 30 // координаты X Y 3-й точки 
//init_arr %a(1 2) 3 2, 16 14, 25 30 // а можно было и в одну строчку сделать

set #min 9999999 // тут будем подбирать расстояние
set #minNum -1 // тут будем хранить номер строки массива с "оптимальными" координатами
set #a size(%a) // число строк в массиве %a

for #i 1 #a
 set #x %a[#i 1]
 set #y %a[#i 2]
 log x=#x, y=#y // записали данные в лог (для справки)
 set $d point_distance(#persX #persY #x #y ) // получили дробное число в виде строки
 set #dist round( $d ) // округлили число в виде текста до ближайшего целого числа
 log #dist // записали данные в лог (для справки)
 
 if #dist < #min
    set #min #dist
    set #minNum #i
 end_if    
end_for
if #minNum > 0
  msg Ближайшая точка № #minNum, расстояние = #min
else
  msg Почему-то не удалось найти ближайшую точку
end_if
end_script

Смотрите также

mod (x y) - Возвращает остаток от деления 'x' на 'y'.
div (x y) - Возвращает целую часть от деления 'x' на 'y'.

История развития

2.32
Добавил несколько ненужных функций обработки вещественных чисел и строковых переменных. Десятичным разделителем считается запятая.
Почти все функции при ошибках возвращают '-1'.
abs(x) - Возвращает абсолютную величину x.
round(x) - Возвращает x, округлённый до самого близкого целого числа.
floor(x) - Возвращает x округлённый до ближайшего целого числа, которое меньше x.
ceil(x) - Возвращает x округлённый до ближайшего целого числа, которое больше x.
frac(x) - Возвращает дробную часть x, то есть часть, стоящую позади десятичной точки.
sqrt(x) - Возвращает квадратный корень из абсолютного значения x.
power(x n) - Возвращает x в степени n.
exp(x) - Возвращает e в степени x.
ln(x) - Возвращает натуральный логарифм от x.
log(n x) - Возвращает логарифм от x по основанию n.
sin(x) - Возвращает синус x (в радианах).
cos(x) - Возвращает косинус x (в радианах).
tan(x) - Возвращает тангенс x (в радианах).
arcsin(x) - Возвращает арксинус x.
arccos(x) - Возвращает арккосинус x.
arctan(x) - Возвращает арктангенс x.
degtorad(x) - Преобразовывает градусы в радианы.
radtodeg(x) - Преобразовывает радианы в градусы.
trunc(x) - Отбрасывает дробную часть.
minx(val1 val2 val3 ...) - Возвращает минимальную из величин.
maxx(val1 val2 val3 ...) - Возвращает максимальную из величин.
mean(val1 val2 val3 ...) - Возвращает среднее арифметическое.
point_distance(x1 y1 x2 y2) - Возвращает расстояние между точкой (x1,y1) и (x2,y2).
point_direction(x1 y1 x2 y2) - Возвращает угол (в градусах) между осью X и вектором с началом в точке (x1,y1) и окончанием в точке (x2,y2).
lengthdir_x(len dir) - Возвращает горизонтальный x-катет вектора определённый указанной длиной и направлением.
lengthdir_y(len dir) - Возвращает вертикальный y-катет вектора определённый указанной длиной и направлением.
в lengthdir_x и lengthdir_y направление dir задаётся в градусах, причем отсчет угла идет от направления "Север" (от оси Y). По часовой стрелке "+", против часовой "-".
is_real(x) - Возвращает 1, если x число.
is_string(x) - Возвращает 1, если x является строкой (не число).
chr(val) - Возвращает символ с ASCI кодом val.
ord(str) - Возвращает ASCI код первого символа в строке str.
string_replace(str substr newstr [all]) - Возвращает строку str, в которой встречающаяся подстрока substr будет заменена на подстроку newstr.
string_count(substr str) - Возвращает число, показывающее, сколько раз подстрока substr встречается в строке str.
string_lower(str) - Возвращает строку str, записанную маленькими буквами.
string_upper(str) - Возвращает строку str, записанную большими буквами.
string_letters(str) - Возвращает строку str, выбрасывая из неё все числа.
string_digits(str) - Возвращает строку str, выбрасывая из неё все буквенные символы.
Pi - 3,1415926535897932385.