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-2025
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2025