Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Coordinats, смена координат скриптом
Levo222
сообщение 7.11.2019, 16:19
Сообщение #1


****

Apprentice
Сообщений: 233
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 117
Пользователь №: 18.689



Допустим я назначил в скрипте некоторые координаты, много разных точек.
А потом сдвинул весь массив в сторону. Как по одной первой координате быстро рассчитать новые координаты всех остальных точек и заменить их в скрипте?

Допустим у меня есть
color (100, 200)
color (120, 220)
color (132, 154)
color (324, 123)

перемещаю куда либо и координаты первой точки становятся (102, 240)
как заменить в скрипте автоматически учитывая новое расстояние между ними на новые цифры?
т.е. я руками могу сидеть и прибавлять + 2 х и + 40 к y, но в виде скрипта
допустим я создал таблицу с координатами старыми
tab.old = {1 = "100, 200", 2 = "120, 220", 3 = "132, 154", 4 = "324, 123"}
tab.new = {1 = "x, y", ...}
function замена (tab)
if --если на месте "100, 200" найдены другие координаты, они бы автоматически прибавляли разницу между старыми и вставляли бы новые значения на место их
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.11.2019, 1:38
Сообщение #2


**********

Elder
Сообщений: 2.635
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 16724
Пользователь №: 16.971
Возраст: 29



Код
--lua
log "clear" log "mode compact"

function delta(tt, delta_x, delta_y)
    for i, value in ipairs(tt) do
        tt[i].x = tt[i].x + delta_x
        tt[i].y = tt[i].y + delta_y
    end
end

local t={
{x=100, y=200},
{x=120, y=220},
{x=132, y=154},
{x=324, y=123}
}


log(t[1].x, t[1].y)
log(t[2].x, t[2].y)

delta(t, 2, 3)  -- прибавить 2 к координате X, 3 к Y

log()
log(t[1].x, t[1].y)
log(t[2].x, t[2].y)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.11.2019, 20:05
Designed by Nickostyle