JaggerDer 90 Опубликовано: 10 октября, 2015 (изменено) У меня в закромах завалялся небольшой файлик с функциями для работы с прямоугольниками. Лично мне эта библиотечка понадобилась всего пару раз(для создания кнопок). И я посчитал, что, может быть, все эти функции могут кому-то понадобиться. Как всегда приведу краткое описание функций: CreateRectXYWH(name:string, x:number, y:number, width:number, height:number):tableСоздает структуру прямоугольника используя информацию о местоположении(x, y),высоте и ширине. CreateRectXYXY(name:string, sx:number, sy:number, ex:number, ey:number):tableСоздает структуру прямоугольника используя информацию о местоположении двух точкек. CreateVoidRect(name:string):tableСоздает "пустой" прямоугольник, т.е. структуру с нулевыми значениями. PointInRectFree(x:number, y:number, sx:number, sy:number, ex:number, ey:number):booleanПроверяет, лежит ли точка(x, y) внутри прямоугольника заданного двумя точками. Возвращает true, если точка лежит внутри прямоугольника, а false в противном случае. PointInRect(x:number, y:number, rect:table):booleanДелает то же самое что и PointInRectFree, только с использованием структуры прямоугольника. bIntersectRects(rect1:table, rect2:table):booleanПроверяет, пересеклись ли два прямоугольника, возвращает true, если да. False - если нет. IntersectRects(rect1:table, rect2:table):tableДелает то же самое, что и bIntersectRects, но возвращает прямоугольник образованный пересечением двух заданных. Структура прямоугольника выглядит следующим образом: local _rectangle = { ["name"] = name, ["sx"] = x, ["sy"] = y, ["ex"] = x+width, ["ey"] = y+height, ["width"] = width, ["height"] = height, ["area"] = width * height } name - название прямоугольника. sx, sy - первая точка прямоугольника. ex, ey - вторая точка прямоугольника. width, height - ширина высота. area - площадь прямоугольника. То что мне нравиться тут, так это то, что мы можем задать прямоугольник как x, y, width, height и такие параметры как sx, sy, ex, ey вычислятся автоматически. :3 Так же я написал "небольшой" пример, который использует все функции библиотеки и выдает следующее: Скачать можно с репозитория гитхаба или установив с помощью следующей строки: Библиотека: wget https://raw.githubusercontent.com/Pirnogion/OpenComputers_library/master/others/rectangle.lua lib/rectangle.lua Пример: wget https://raw.githubusercontent.com/Pirnogion/OpenComputers_library/master/others/rectExample rectExample Изменено 11 октября, 2015 пользователем JaggerDer 6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SergOmarov 34 Опубликовано: 11 октября, 2015 А че ты последние 2 метода написал в фигурных скобках? Это lua же) И оператор "||"... 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Ktlo 789 Опубликовано: 11 октября, 2015 А че ты последние 2 метода написал в фигурных скобках? Это lua же) И оператор "||"... Действительно, это же не будет работать. Я не уверен, что вообще скомпилируется. Нужно проверять свой код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 11 октября, 2015 Действительно, это же не будет работать. Я не уверен, что вообще скомпилируется. Нужно проверять свой код. Щас НЕО прибежит и будет тебя ругать. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JaggerDer Автор темы 90 Опубликовано: 11 октября, 2015 Спокойно. Без паники. Только спокойствие. Исправил. Последние две функции я переписывал с JavaScript и немного накосячил. На всякий случай сейчас проверю их в майне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 11 октября, 2015 Щас НЕО прибежит и будет тебя ругать. Ругай, ты вообще про что? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 11 октября, 2015 Ругай, ты вообще про что? Действительно, это же не будет работать. Я не уверен, что вообще скомпилируется. Нужно проверять свой код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JaggerDer Автор темы 90 Опубликовано: 11 октября, 2015 (изменено) LeshaInc, успокойся. Уже можно не паниковать, т.к. все работает - проверено. Изменено 11 октября, 2015 пользователем JaggerDer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах