logo.aleks Versus Поиск по сайту:
  Главная | Регистрация | Вход   Приветствую Вас Гость | RSS
Майнпаги
тыц
Стихи.РУ
Проза.РУ
Aleks Versus на LI
Я на Самиздате
читательский дневник
На Книготопии

easy.math.qsp v 2.3.0

 ←   → 

Операции над шестнадцатеричными числами

#hex-dec#

 ↑ Наверх 

Функция перевода из гексаметричного числа в декаметричное. Не работает с отрицательными значениями.

Использует циклический алгоритм перевода, в связи с чем может заметно подвешивать игру при переводе больших чисел. Имеет те же ограничения на значение результата, что и прочие фукции, т.е. результат должен лежать в пределе [-2147483648 ... 2147483647] (для Q.S.P. 5.7.0).

$args[0] - шестнадцатеричное число (текстовое значение). Значения в пределе 7fffffff
  result - полученное число

Результат работы функции:

func('#hex-dec#','ff') = 255
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[0] - целое число (числовой вид). Значения в пределе 2147483647
 $result - полученная строка

Результат работы функции:

$func('#dec-hex#',2147483647) = 7fffffff
$func('#dec-hex#',214) = d6
$func('#dec-hex#',255) = ff
$func('#dec-hex#',10) = a
$func('#dec-hex#',9) = 9
$func('#dec-hex#',2147483648) = -0p>

Как видно, последний результат получился отрицательным, потому что был превышен предел на значения аргумента.

#dec-col#

 ↑ Наверх 

Преобразует десятеричное число в шестнадцатеричное. Отличием от функции #dec-hex# является ограничение на значение аргумента в пределах [-16777215 ... 16777215]. Если пределы превышены, функция выдаёт в результат 00. Любое число в пределах преобразуется к двуразрядному шестнадцатеричному числу. Таким образом ограничение на результат лежит в пределах [-ff ... ff].

В общем и целом, такое преобразование необходимо для того, чтобы силами QSP конвертировать значения цветовой составляющей от HTML формата (где запись идёт в шестнадцатеричном коде) в RGB формат (где запись идёт в десятеричном коде). Используется в библиотеке easy.titles.qsp для ковертирования цветовых значений.

 args[0] - число целое, десятеричное.
 $result - шестнадцатеричное двуразрядное число (текстовое значение).

Результат работы функции:

$func('#dec-col#',2147483647) = 00
$func('#dec-col#',214) = d6
$func('#dec-col#',255) = ff
$func('#dec-col#',-10) = -0a
$func('#dec-col#',256) = 10
$func('#dec-col#',16) = 10

Данная функция работает с отрицательными значениями, поэтому результат, отмеченный зелёным, верен. Результат, отмеченный красным, - не верен.

#+col#

 ↑ Наверх 

Функция предназначена для изменения цвета для HTML.

! функция использует функции #hex-dec# и #dec-col#.

$args[0] - цвет. Шестнадцатеричный формат, шестизначное число. (не может быть отрицательным)
$args[1] - значение. Шестнадцатеричный формат, двузначное число. (может быть отрицательным)

Функция действует следующим образом: разбивает первый аргумент на три двузначных шестнадцатеричных числа, и к каждому из чисел прибавляет второй аргумент. Если сумма превышает значение ff, она приводится к ff. И напротив, если сумма оказывается меньше 0, она приводится к 0. Таким образом результат работы функции лежит в пределах [000000 ... ffffff]

Это может пригодиться для плавного гашения цвета, или наоборот. Функция используется в движке игры "МАГИКОН", чтобы гасить цвета заголовков в зависимости от уровней.

Результат работы функции:

$func('#+col#','ff0000','-44')  =   bb0000
$func('#+col#','000000','-44')  =   000000
$func('#+col#','dd0000','22')   =   ff2222
$func('#+col#','dd8822','-44')  =   994400
$func('#+col#','dd8822','44')   =   ffcc66




 ←   → 
  Aleks Versus'Easy Libraries'2013
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013


 
Copyright MyCorp © 2018
Конструктор сайтов - uCoz
aleksversus@mail.ru
lex666endless@rambler.ru
437337904
Наверх