electronic_steve 344 Опубликовано: 13 сентября, 2015 Образовалась у меня маленькая библиотека из всякого разного. Решил выложить. У этой библиотеки нет какой либо направленности. Просто засунул всё что мне обычно нужно. Основные функции: es.log (msg:string) записывает <msg> в es.log_text. es.create_map (minx:number, miny:number, maxx:number, maxy:number, n) Создаёт двухмерный массив от min(x,y) до max(x,y). Записывает в этот массив <n> и возвращает его. es.get_table_map (tbl:table) карявая сериализация. es.rotation (x:number, y:number, cos:number, [sin:number]) Поворачивает точку (<x>;<y>) относительно координаты (0;0) используя <cos> <sin> если <sin> задан. Если нет то <cos> - угол поворота. es.round (num:number, [idp:number]) Округляет число <num> оставляя <idp> цифр после запятой. es.getminmax (x:number, y:number, x2:number, y2:number) Возвращает минимальные и максимальные x,y. es.interval (min:number, n:number, max:number) Возвращает число <n> в пределах <min> <max>. es.interval_test (min, n, max) Если n в пределах min/max, то возвращает 0. Если n<min, то -1. Если n>max, то 1. es.create_circle (rad:number) Создаёт массив с координатами пикселей круга радиусом в <rad> пикселей. es.create_ring(rad:number) Создаёт массив с координатами пикселей кольца радиусом в <rad> пикселей. Функции для работы с pastebin'ом: es.pb.require (path:string, paste_id:string) Загружает файл <path> если она есть на компьютере. Если нет, то скачивает файл с Pastebin используя <paste_id> и уже после скачивания загружает его. es.pb.login (user_name:string, password:string) Заходит в аккаунт pastebin и выдаёт user_key. <user_name> - логин. <password> - пароль. es.pb.create (msg:string, paste_name:string, private:string, time:string) Создаёт файл с названием <paste_name> ,записывает в него <msg> ,а потом выводит его id. <private> - приватность(0,1,2). <time> - время до удаления файла(N,10M,1H,1D,1W,2W,1M). es.pb.delete (paste_id:string) Удаляет файл с id <past_id>. es.pb.list() Выдаёт таблицу со всей информацией о файлах в используемом аккаунте Pastebin. es.pb.get_paste_id (paste_name:string) Выдаёт id файла с названием <paste_name> в используемом аккаунте Pastebin. es.pb.get(paste_id:string) Выдаёт файл с pastebin'a используя <paste_id>. http://pastebin.com/25shjwJZ 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Ktlo 789 Опубликовано: 13 сентября, 2015 Всё это конечно здорово, но из-за того, что нет определённой направленности не очень удобно пользоваться. Например для если мне нужны несколько отдельных функций, зачем мне качать целую библиотеку, которая содержит много лишнего для работы? Но мне кажется, что здесь выделяются две направленности, и их можно разделить на две полноценные библиотеки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
electronic_steve Автор темы 344 Опубликовано: 14 сентября, 2015 (изменено) Всё это конечно здорово, но из-за того, что нет определённой направленности не очень удобно пользоваться. Например для если мне нужны несколько отдельных функций, зачем мне качать целую библиотеку, которая содержит много лишнего для работы? Но мне кажется, что здесь выделяются две направленности, и их можно разделить на две полноценные библиотеки. Для отдельных функций качать библиотеку смысла нет, но я эти функции использую везде по этому мне лучше грузить библиотеку чем запихивать в каждую программу один и тот же код. Изменено 14 сентября, 2015 пользователем electronic_steve Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 14 сентября, 2015 Хм! Мне понравилась функция es.rotation, так же можно нормальный кубик Рубика сделать, очень просто выходит, не надо морочить голову со сдвигами таблицы. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 14 сентября, 2015 Улыбнули алгоритмы круга и кольца. function es.create_circle(rad) local model={} for x=-rad,rad do for y=-rad,rad do if math.sqrt(x^2+y^2)<=rad then table.insert(model,{x,y}) end end end return model end function es.create_ring(rad) local model={} for x=-rad,rad do for y=-rad,rad do if math.ceil(math.sqrt(x^2+y^2))==rad then table.insert(model,{x,y}) end end end return model end Я оставлю это здесь: Алгоритмы Брезенхэма. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 14 сентября, 2015 Алгоритмы Брезенхэма. Штука офигенная. Сам когда-то пол часа бился с ней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 14 сентября, 2015 http://computercraft.ru/topic/436-zakaz№002-ozhidanie-programma-batareia-ogon-a/?p=14143 Вообще рандомный хардкор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах