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

Универсальный конвертер систем счисления и цвета

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

Универсальный конвертор систем счисления и цвета

 

 

Добрый день, игроки. Если вы во время написания своей программы задавались вопросом: "А как же мне перевести один формат в другой", то эта тема для вас.

 

Я бы хотел вам представить свою библиотеку, которая позволяет конвертировать совершенно любую систему счисления в десятичную и наоборот. А так же конвертировать RGB hex формат в обычный RGB и наоборот.

 

Данная библиотека имеет следующие функции:

Функции конвертации в десятичную систему счисления:

 

conv.bin(input:number)

Конвертирует бинарный код в десятичный

 

conv.oct(input:number)

Конвертирует восьмеричную систему счисления в десятичную

 

conv.hex(input:string)

Конвертирует шестнадцатиричную систему счисления в десятичную

Необходимо вводить текстовый формат "FFFFFF" (не вводить формат 0x000000)

 

conv.Engine(input:number/string, n:number)

Движок для предыдущих функций - конвертирует число input:number/string из n системы счисления в десятичную. Необходима для нестандартных систем счисления.

Настроена так, что можно вводить и текстовый hex формат "FFFFFF"

 

Функции конвертации из десятичной системы счисления:

 

conv.abin(input:number)

Конвертирует десятичную систему счисления в двоичную

 

conv.aoct(input:number)

Конвертирует десятичную систему счисления в восьмеричную

 

conv.ahex(input:number)

Конвертирует десятичную систему счисления в шестнадцатиричную

Возвращает текст в самодельном текстовом hex формата "FFFFFF" (не путать с форматом 0x000000)

 

conv.aEngine(input:number, n:number)

Движок для предыдущих функций - конвертирует число input:number из десятичной системы счисления в n-ную. Необходима для нестандартных систем счисления.

 

Функции конвертации RGB кода:

 

conv.getThreeColor(input:number/string)

Возвращает три цвета RGB (обозначающие красный, зелёный, синий)

Все три переменные имеют значения от 0 до 255

Принимает обычные числа, числа в формате 0x000000 и числа в текстовом hex формате "FFFFFF"

 

conv.getColor(r:number/string,  g:number/string,  b:number/string)

Возвращает цифровой формат RGB, который например можно использовать в component.gpu.setBackground(color) в своих программах

Принимает обычные цифры, вот такой формат 0x00 и текстовый hex формат от "00" до "FF" на одну переменную

 

conv.invertColor(input:number)

Инвертирует цвет

Может быть полезно, чтобы при отображении, текст всегда был виден на фоне.

 

conv.sumColor(color_1:number,  color_2:number)

Принимает два цвета в формате 0x000000 или в виде обычных чисел

Выводит средний цвет, который бы получился при смешивании

 

Примечание:

В lua стандартный hex формат 0x000000 автоматически преобразуется в десятичный. По этому поводу я создал свой текстовый hex формат "FFFFFF", вдруг кому пригодится, для отображения print() например. (можно вводить и большие и малые буквы в новом текстовом hex формате)

 

Ссылка на код:

http://pastebin.com/tzF3dr0M

Ссылка на скачивание (если кому надо):

https://yadi.sk/d/lAo2j9SwmjNxv

 

P.S. Кто-то сегодня говорил про плюсы ООП и прочее.

Ну что ж, если будет клон моей библиотеки на ООП, я только за. 

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

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


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

P.P.S. Я бы мог разделить функции на две библиотеки, но дело в том, что функции работы с цветом связаны с конвертором

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


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

Кстати,а зачем отдельные функции для стандартных систем счисления? 

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


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

Кстати,а зачем отдельные функции для стандартных систем счисления? 

Чтобы повысить читаемость кода по идее.

 

А вообще, расширяя алфавит можно сделать совершенно любую систему счисления. Ограничений тут нет.

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


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

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

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

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

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

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

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

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

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


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