easy.math.qsp v. 2.4.0
Операции над шестнадцатеричными числами
#hex-dec#
Функция перевода из гексаметричного числа в декаметричное. Не работает с отрицательными значениями.
Использует циклический алгоритм перевода, в связи с чем может заметно подвешивать игру при переводе больших чисел. Имеет те же ограничения на значение результата, что и прочие фукции, т.е. результат должен лежать в пределе [-2147483648 ... 2147483647] (для Q.S.P. 5.7.0).
$args[ - шестнадцатеричное число (текстовое значение). Значения в пределе 0]7fffffff
result - полученное число
Результат работы функции:
func('#hex-dec#','22') = 34
func('#hex-dec#','10') = 16
func('#hex-dec#','1') = 1
func('#hex-dec#','a') = 10
func('#hex-dec#','ffaa233') = 268083763
func('#hex-dec#','ffaa23') = 16755235
func('#hex-dec#','ffaa2') = 1047202
func('#hex-dec#','ffaa233451') = -1440533423
func('#hex-dec#','ffaa23345') = -90033339
func('#hex-dec#','ffaa2334') = -5627084
Как видно, последние три результата получились отрицательными, значит превышены пределы значений результата, а соответственно и числа, которые переводятся в десятеричную систему тоже превышают предел.
#dec-hex#
Функция перевода из декаметричного числа в гексаметричное. Не работает с отрицательными значениями.
Использует циклический алгоритм перевода, в связи с чем может заметно подвешивать игру при переводе больших чисел. Имеет ограничения на значения аргумента в пределе [-2147483648 ... 2147483647] (для Q.S.P. 5.7.0).
args[ - целое число (числовой вид). Значения в пределе 2147483647
0] $result - полученная строка
Результат работы функции:
$func('#dec-hex#',214) = 'd6'
$func('#dec-hex#',255) = 'ff'
$func('#dec-hex#',10) = 'a'
$func('#dec-hex#',9) = '9'
$func('#dec-hex#',2147483648) = '-0'
Как видно, последний результат получился отрицательным, потому что был превышен предел на значения аргумента.
#dec-col#
Преобразует десятеричное число в шестнадцатеричное. Отличием от функции #dec-hex# является ограничение на значение аргумента в пределах [-255 ... 255]. Если пределы превышены, функция выдаёт в результат ff. Любое число в пределах преобразуется к двуразрядному шестнадцатеричному числу. Таким образом ограничение на результат лежит в пределах [-ff ... ff].
args[ - число целое, десятеричное.
0] $result - шестнадцатеричное двуразрядное число (текстовое значение).
Результат работы функции:
$func('#dec-col#',214) = 'd6'
$func('#dec-col#',255) = 'ff'
$func('#dec-col#',-10) = '-0a'
$func('#dec-col#',256) = 'ff'
$func('#dec-col#',16) = '10'
#+col#
Функция предназначена для изменения цвета для HTML; использует функции #hex-dec# и #dec-col#.
$args[ - цвет. Шестнадцатеричный формат, шестизначное число. (не может быть отрицательным)
0]$args[ - значение. Шестнадцатеричный формат, двузначное число. (может быть отрицательным)
1]
Функция действует следующим образом: разбивает первый аргумент на три двузначных шестнадцатеричных числа, и к каждому из чисел прибавляет второй аргумент. Если сумма превышает значение ff, она приводится к ff. И напротив, если сумма оказывается меньше 0, она приводится к 0. Таким образом результат работы функции лежит в пределах [000000 ... ffffff]
Это может пригодиться для плавного гашения цвета, или наоборот. Функция используется в движке игры "МАГИКОН", чтобы гасить цвета заголовков в зависимости от уровней.
Результат работы функции:
$func('#+col#','000000','-44') = '000000'
$func('#+col#','dd0000','22') = 'ff2222'
$func('#+col#','dd8822','-44') = '994400'
$func('#+col#','dd8822','44') = 'ffcc66'
#col-rgb#
Данная функция преобразует цвет, записанный в шестнадцатеричной форме, в числовой код цвета, понятный QSP; использует функцию #hex-dec#.
$args[ - цвет. Шестнадцатеричный формат, шестизначное число. (не может быть отрицательным);0]
result - числовой код цвета в формате QSP.
Функция является как бы надстройкой системной функции rgb и работает следующим образом: шестнадцатеричный код цвета разбивается на три двузначных шестнадцатеричных числа, которые преобразуются в десятеричные числа и передаются функции rgb в качестве аргументов.
Если в качестве аргумента указать неверное шестнадцатеричное число, функция всё равно вернёт результат, заменив неверные символы нулями. То же самое произойдёт, если указать отрицательное шестнадцатеричное число. Минус будет считаться неизвестным символом и #hex-dec# заменит его на ноль. Последняя цифра будет отсечена.
Результат работы функции:
$func('#col-rgb#','000000') = '-16777216'
$func('#col-rgb#','dd0000') = '-16776995'
$func('#col-rgb#','dd8822') = '-14513955'
$func('#col-rgb#','ffmm00') = '-16776961'
$func('#col-rgb#','-0000ff') = '-15794176'
#col-inv#
Возвращает шестнадцатеричный код цвета противоположного указанному; использует функцию #+col#.
$args[ - цвет. Шестнадцатеричный формат, шестизначное число. (не может быть отрицательным)
0]
Принцип работы прост. Берётся максимальное значение для цветовой составляющей, и из него вычитается соответствующее значение цветовой составляющей исходного цвета. Полученные результаты склеиваются, в результате — цвет противоположный исходному.
Результат работы функции:
В качестве результата работы функции наглядная таблица исходных цветов и противоложных им.
| Исходный | Противоположный |
| #000000 | #ffffff |
| #ffffff | #000000 |
| #238c90 | #dc736f |
| #902b10 | #6fd4ef |
| #c7c000 | #383fff |
| #07c701 | #f838fe |
Aleks Versus'Easy Libraries'2013-2026
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2026
