Перейти к содержимому
electronic_steve

ESAPI

Рекомендуемые сообщения

Образовалась у меня маленькая библиотека из всякого разного. Решил выложить.

У этой библиотеки нет какой либо направленности. Просто засунул всё что мне обычно нужно.

Основные функции:

 

 

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>.

 
 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё это конечно здорово, но из-за того, что нет определённой направленности не очень удобно пользоваться. Например для если мне нужны несколько отдельных функций, зачем мне качать целую библиотеку, которая содержит много лишнего для работы? Но мне кажется, что здесь выделяются две направленности, и их можно разделить на две полноценные библиотеки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё это конечно здорово, но из-за того, что нет определённой направленности не очень удобно пользоваться. Например для если мне нужны несколько отдельных функций, зачем мне качать целую библиотеку, которая содержит много лишнего для работы? Но мне кажется, что здесь выделяются две направленности, и их можно разделить на две полноценные библиотеки.

Для отдельных функций качать библиотеку смысла нет, но я эти функции использую везде по этому мне лучше грузить библиотеку чем запихивать в каждую программу один и тот же код.

Изменено пользователем electronic_steve

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм! Мне понравилась функция es.rotation, так же можно нормальный кубик Рубика сделать, очень просто выходит, не надо морочить голову со сдвигами таблицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Улыбнули алгоритмы круга и кольца.

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

Я оставлю это здесь:

Алгоритмы Брезенхэма.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...