169 похожих чатов

Здравствуйте, у меня есть массив массивов nearbyPixelsOffsets = {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}} мне бы

хотелось складывать к.либо его элемент с другим массивом из 2х чисел
Как нибудь так pixelCoord = {32,44} + nearbyPixelsOffsets[idx]
Возможно ли такое стандартными функциями или операторами? без написания своего addArrayWithArray( .... )

3 ответов

4 просмотра

метатаблицу с метаметодом __add добавить

local vec2 = {} vec2.__index = vec2 function vec2:new(x, y) return setmetatable({x, y}, self) end function vec2:__add(other) return self:new(self[1] + other[1], self[2] + other[2]) end setmetatable(vec2, {__call = vec2.new}) local v2 = vec2 nearbyPixelsOffsets = { v2(-1,-1), v2(-1,0), v2(-1,1), v2(0,-1), v2(0,1), v2(1,-1), v2(1,0), v2(1,1) } x, y = unpack(nearbyPixelsOffsets[idx] + {44, 55})

Как вариант, кстати, можно заменить массив массивов на обычный массив чисел, к примеру : local oldarr = {{2, 2}, {4, 4}, {5, 2}} local newarr = {2, 2, 4, 4, 5, 2} local function get_new(i) return newarr[i*2-1], newarr[i*2] end local function set_new(i, a, b) newarr[i*2-1] = a newarr[i*2] = b end ... -- пример суммы local sx = somethingPixels[1][1] local sy = somethingPixels[1][2] local ox, oy = getnew(1) sx = ox + sx sy = oy + sy set_new(1, sx, sy) Смысл это делать только для оптимизации, однако если ты обрабатываешь меньше 500 таких элементов и тебе не важна скорость и потребление памяти - можешь забить. Хотя, лично мне, такой вариант нравится и эстетически.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Карта сайта