Что такое код setcolor


Содержание

Цвет шрифта

23.02.2020, 16:29

При выборе из списка цвета и атрибута шрифта изменять цвет и различные атрибуты шрифта надписи
Создайте приложение, в котором при выборе из списка соответствующего цвета и атрибута шрифта.

Excel, шрифт, цвет шрифта, цвет фона ячейки и прочие свойства ячейки
Доброго времени суток. Пишу программу для редактирования .xlsx файла на visual c++. Благодаря.

цвет шрифта
всем привет)) меня интересует можно или изменить цвет шрифта в VSC++ и как это сделать?

Цвет шрифта
Сделал я сайт все работает все ништяк но блин я просто не знаю какой цвет нужно сделать на главной.

Что такое код setcolor

Скидка 25% на все тарифы хостинга по промокоду STDCITF

ГЛАВА 7 — ДОСТУП К ЭКРАНУ И КЛАВИАТУРЕ

  • Видеопроцедуры
    • BLANK (очистить прямоугольник на экране)
    • Коды цветовых стилей (видеоатрибуты)
    • PAINT (закрасить прямоугольник на экране)
    • SCROLL (прокрутить прямоугольную область экрана)
    • SETBLINK (разрешить мигание)
    • SETCOLOR (установить видеоатрибуты)
    • SETCURSOR (включить курсор)
    • SETGRAPHIC (установить графический режим)
    • SETMOUSE (позиционировать курсор мышки)
    • SETNOBLINK (запретить мигание)
    • SETTEXT (установить размер экрана в текстовом режиме)
    • SHOW (показать на экране)
    • TYPE (вывести строку на экран)
  • Видеофункции
    • BACKCOLOR (возвращает цвет фона)
    • COLOR (возвращает код цветового стиля)
    • FORECOLOR (возвращает цвет текста)
    • GRAPHIC (возвращает текущий видеорежим)
    • LOOK (считать символ(ы) с экрана)
    • MAKECOLOR (возвращает код цветового стиля)
    • MOUSECOL (X-координата мышки)
    • MOUSEROW (Y-координата мышки)
  • Процедуры клавиатуры
    • ALIAS (установить альтернативный код клавиши)
    • ASK (получить один символ)
    • PRESS (поместить символ в буфер клавиатуры)
    • SETKEYCODE (задать код клавиши)
  • Функции клавиатуры
    • ENTRY (возвращает введенное с клавиатуры)
    • KEYBOARD (возвращает ожидающее нажатие на клавишу)
    • KEYCODE (возвращает код клавиши завершения поля)

ВИДЕОПРОЦЕДУРЫ

BLANK (очистить прямоугольник на экране)

строка Числовое значение или выражение, которое задает строку для начального (верхнего левого) угла. По умолчанию — 1.
столбец Числовое значение или выражение, которое задает столбец для начального (верхнего левого) угла. По умолчанию — 1.
rows Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию — вся высота экрана.
columns Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).

BLANK удаляет все символы из прямоугольной области на экране. НО BLANK не очищает активные видеоатрибуты-цвета. Ранее активизированные атрибуты PAINT структуры SCREEN и/или оператора SETCOLOR могут повлиять на цвета в прямоугольнике.

Коды цветовых стилей (видеоатрибуты)

Каждое знакоместо в видеопамяти состоит из двух байт; один данные (символ) и второй — видеоатрибуты. Байт видеоатрибутов содержит трехбитный цвет фона, бит мигания/яркости и четырехбитный цвет переднего плана (текста). Эти биты скомпонованы в одно байтный код цветового стиля с возможными значениями 0..255, который задает комбинацию цветов фона/текста. Бит мигания может служить битом яркости фона при помощи процедуры SetNoBlink. При запрещенном мигании, для фона можно использовать те же 16 цветов, что и для текста. Если же мигание разрешено, то для фона можно использовать только 8 цветов, а остальные 8 будут приводить к миганию текста. Код цветового стиля получается сложением значений фона и текста. В нижеследующей таблице приведены значения, используемые для создания кодов цветовых стилей.

PAINT (закрасить прямоугольник на экране)

строка Числовое значение или выражение, которое задает строку для начального (верхнего левого) угла. По умолчанию — 1.
столбец Числовое значение или выражение, которое задает столбец для начального (верхнего левого) угла. По умолчанию — 1.
rows Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию — вся высота экрана.
columns Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).

PAINT записывает активные видеотрибуты SETCOLOR в прямоугольную область экрана. Символы в прямоугольнике остаются без изменений. PAINT стоит применять только после выполнения оператора SETCOLOR с параметром-цветом. Если какие-то параметры пропущены, запятые, ограничивавшие их должны ставиться.

SCROLL (прокрутить прямоугольную область экрана)

строка Числовое значение или выражение, которое задает начальную (верхнюю) строку. По умолчанию — 1.
столбец Числовое значение или выражение, которое задает начальный (левый) столбец прямоугольника. По умолчанию 1.
строк Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию — вся высота экрана (структуры SCREEN)
столбцов Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).
счетчик Позитивное или негативное значение или выражение, которое задает на сколько строк прокрутить. Если СЧЕТЧИК положителен, то прокрутка вверх, если отрицательный, то вниз. По умолчанию СЧЕТЧИК=+1.

SCROLL перемещает символы в прямоугольной области экрана вверх или вниз. По мере сдвига символов, СЧЕТЧИК строк удаляется сверху (снизу) прямоугольника, и СЧЕТЧИК пустых строк создается внизу (вверху). Параметры СТРОКА и СТОЛБЕЦ задают координаты верхнего левого угла прямоугольника относительно верхнего левого угла физического экрана; они НЕ ссылаются на верхний левый угол структуры SCREEN.

SCROLL НЕ изменяет активные видеоатрибуты в прямоугольнике. Ранее активные атрибуты оператора PAINT в SCREEN-структуре или оператора SETCOLOR могут повлиять на цвета в прямоугольнике. Хотя символы сдвигаются, цвета раскраска прямоугольника НЕ меняется.

SETBLINK разрешает мигание. Если оно разрешено, то для фона можно использовать только 8 цветов. Это нормальный режим работы, до тех пор, пока мигание не запрещено процедурой SETNOBLINK.

SETCOLOR (установить видеоатрибуты)

цвет Числовое значение или выражение, которое задает код цветового стиля. Допустимые значения ЦВЕТа — 0..255.

SETCOLOR меняет байт выидеоатрибута для каждого символа, записываемого в видеопамять после него. ЦВЕТ точный код цветового стиля (это НЕ ссылка на внутренний массив, используемый в структуре SCREEN параметром COLOR).

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

SETCURSOR (включить курсор)

строка Числовое значение или выражение, задающее строку на экране.
столбец Числовое значение или выражение, задающее столбец на экране.

SETCURSOR показывает курсор в позиции заданной СТОЛБЦОМ и СТРОКОЙ. Используется для позиционированного вывода на устройство «CON». SETCURSOR указывает первую строку и столбец для вывода оператором TYPE, или оператором PRINT, у которого устройством для вывода отчета является «CON.» Если параметры не заданы, то SETCURSOR гасит курсор.

SETGRAPHIC (установить графический режим)

режим Целая константа или EQUATE, задающая графический видеорежим (EGA, VGA, SVGA).

SETGRAPHIC задает графический режим для SCREEN-структур с атрибутом GRAPHIC. Графический режим определяется автоматически и не требует изменения, как правило. SETGRAPHIC перекрывает режим автоопределения режима для следующего открываемого SCREEN. Разрешенные для РЕЖИМа значения:

Если экран уже открыт как графический, SETGRAPHIC(90) не повлияет на него. Если же экран ЕЩЕ не в графическом режиме, SETGRAPHIC(90) принудительно вызовет вывод следующих экранов в текстовом режиме, даже если у них установлен атрибут GRAPHIC.

SETMOUSE (позиционирование курсора мышки)

строка Целая константа, переменная или выражение, задающее строку, в которую поместить курсор мышки. По умолчанию ноль.
столбец Целая константа, переменная или выражение, задающее столбец, куда поместить курсор мышки. По умолчанию ноль.

SETMOUSE размещает курсор мышки на экране. Если СТРОКА и СТОЛБЕЦ опущены, то SETMOUSE выключает курсор мышки. Если программа собирается использовать мышь, то по крайней мере, один SETMOUSE требуется (вероятно где-то ближе к началу программы).

В графическом режиме курсор мышки представляет стрелку, а в текстовом — прямоугольный блок (знакоместо), до тех пор, пока не использованы операторы LOADSYMBOLS или USESYMBOLS.

См. также: LOADSYMBOLS, USESYMBOLS

SETNOBLINK запрещает мигание на экране. Обычно, фон можно раскрасить в 8 цветов. При запрещенном мигании, бит отвечающий за мигание может быть использован как бит яркости фона. Это позволяет использовать для фона те же 16 цветов, что и для текста.

Монохромные или CGA мониторы НЕ поддерживают запрещение мигания. Таким образом, для SETNOBLINK нужен, как минимум, EGA.

SETTEXT (установить размер экрана в текстовом режиме)

строк Целая константа, переменная или выражение, задающее число строк на физическом экране в текстовом режиме.
столбцов Целая константа, переменная или выражение, задающее число столбцов на физическом экране в текстовом режиме.


SETTEXT позволяет точно задать, скажем, режим 43 или 50 строк. Без применения SetText, текстовый режим остается таким же, каким он был при запуске программы.

SETTEXT использует метод наилучшего размещения для параметров СТРОК и СТОЛБЦОВ. Видеоадаптер может поддерживать различные текстовые режимы, так что, в принципе, SETTEXT(200,200) может достичь максимально возможного разрешения в текстовом режиме.

SHOW (показать на экране)

строка Числовое значение или выражение, которое задает строку на экране, в которую будет выведено ВЫРАЖЕНИЕ. По умолчанию — последняя строка, в которой происходил вывод.
столбец Числовое значение или выражение, которое задает столбец, в который будет выведено ВЫРАЖЕНИЕ. По умолчанию — последний столбец, в который производился вывод.
выражение Метка переменной, константы, числовое или строковое выражение.
формат Шаблон формата или метка строки (STRING) описанной с форматом вывода (picture).

SHOW выводит переменные или выражения прямо на экран. Если выражение слишком длинно, чтобы разместиться в строке, оно усекается. Чтобы показать, что какие-то параметры пропущены, требуются запятые. То, что выводит SHOW, затирает то, что было ранее на экране.

TYPE (вывести строку на экран)

строка Строковая константа, переменная или выражение.

TYPE выводит строку на стандартное устройство вывода (STDOUT). Пока не определено иначе, в качестве STDOUT DOS использует устройство CON. Строка появится на экране начиная с текущего положения курсора. Можно использовать SETCURSOR, чтобы разместить курсор в нужном месте.

Устройство «CON» распознает символы CR, LF, TAB и BS. Перевод строки (LF) переводит курсор на строку ниже текущей. LF на последней строке экрана приводит к прокрутке всего экрана вверх на одну строку.

См. также: SETCURSOR, Элементы Управления Принтером

ВИДЕОФУНКЦИИ

BACKCOLOR (возвращает цвет фона)

строка Числовое значение или выражение, которое задает строку на экране.
столбец Числовое значение или выражение, которое задает столбец на экране.

BACKCOLOR возвращает цвет фона для указанного знакоместа. Возвращаемое значение лежит в диапазоне от 0 до 15 включительно, что соответствует шестнадцати цветам переднего плана. Если параметры выходят за допустимые пределы, то возвращается ноль.

В байте видеоатрибута фоновый цвет хранится в старшем ниббле (4 бита). То есть, если значение, полученное от BackColor использовано для порождения кода цветового стиля, то сначала его надо умножить на шестнадцать, и затем прибавить к нему значение цвета для переднего плана.

Возвращаемый тип данных: BYTE

COLOR (возвращает код цветового стиля)

Функция COLOR возвращает активный для знакоместа с координатами (СТРОКА,СТОЛБЕЦ) код цветового стиля (комбинацию цветов фона и переднего плана).

Возвращаемый тип данных: BYTE

FORECOLOR (возвращает цвет переднего плана)

FORECOLOR возвращает цвет текста для знакоместа с координатами (СТРОКА,СТОЛБЕЦ). Возвращаемое значение лежит в диапазоне от 0 до 15 включительно. Если параметры выходят за допустимые пределы, то возвращается ноль.

В байте видеоатрибута цвет переднего плана хранится в младшем ниббле, то есть, для получения кода цветового стиля надо результат от FORECOLOR прибавить к результату от BACKCOLOR умноженному на шестнадцать.

Илон Маск рекомендует:  Что такое код odbc_commit

Возвращаемый тип данных: BYTE

GRAPHIC (возвращает текущий видеорежим)

n Целочисленная константа, переменная или выражение.

Функция GRAPHIC возвращает байт, содержащий текущий внутренний видеорежим. В зависимости от режима, возвращается следующее:

GRAPHIC(0) возвращает тип адаптера (EGA, VGA, SVGA) если текущий экран открыт не в графическом режиме. GRAPHIC(1) возвращает одно из приведенных выше значений для графических режимов или 5Ah для текстового.

GRAPHIC(1) проверяет, не находится ли экран в графическом режиме и, если так, то какой адаптер используется. GRAPHIC(0) обычно используется для определения типа адаптера дисплея перед открытием экрана в графическом режиме.

Возвращаемый тип данных: Byte

LOOK (считать символ(ы) с экрана)

строка Числовое значение или выражение, которое задает Y-соординату для чтения. По умолчанию — последняя строка, которой было обращение.
столбец Числовое значение или выражение, которое задает X-координату первого символа, который надо прочитать. По умолчанию — последний столбец, к которому было обращение.
шаблон Шаблон формата или метка строки, описанной с шаблоном формата. Шаблон используется для деформатирования прочитанного с экрана значения в переменную. Длина шаблона определяет количество столбцов, которые будут прочитаны с экрана.

Функция LOOK считывает ASCII-коды символов с экрана, начиная со знакоместа, с координатами (СТРОКА,СТОЛБЕЦ). Если какие-то параметры опущены, то чтобы это отметить, требуются запятые. LOOK работает одинаково как в текстовых, так и в графических режимах. (SPA — интересно, а для русских букв в графике работает?)

Возвращаемый тип данных: STRING

MAKECOLOR (возвращает код цветового стиля)

текст Целая константа, переменная или выражение в диапазоне 0..15, представляющая собой цвет переднего плана (или текста).
фон Целая константа, переменная или выражение в диапазоне 0..15, представляющая собой цвет заднего плана (или фона).

MAKECOLOR возвращает код цветового стиля для заданной комбинации цветов текста/фона.

Возвращаемый тип данных: BYTE

MOUSECOL (X-координата мышки)

MOUSECOL возвращает баутовое значение, соответствующее номеру столбца, в котором находится курсор мышки на виртуальном экране.

Возвращаемый тип данных: BYTE

MOUSEROW (Y-координата мышки)

MOUSEROW возвращает баутовое значение, соответствующее номеру строки, в которой находится курсор мышки на виртуальном экране.

Возвращаемый тип данных: BYTE

ПРОЦЕДУРЫ КЛАВИАТУРЫ

ALIAS (установить альтернативный код клавиши)

код Числовой код или EQUATE-метка кода клавиши.
новый-код Числовой код или EQUATE-метка кода клавиши. Можно использовать неприсвоенные ранее коды.

ALIAS изменяет генерируемый при нажатии клавиши код. НОВЫЙ-КОД не находится в таблице кодов клавиш. Коды от 700 до 999 не присвоены, и могут быть использованы как НОВЫЕ-КОДЫ. Практический эффект от этого возможность запретить реагировать на КОД, если ваша программа не проверяет НОВЫЙ-КОД. Если оба параметра опущены, то ALIAS отменяет все переназначения клавиш.

См. также: Equate-коды клавиш

ASK (получить один символ)

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

PRESS (поместить код в буфер)

код Числовая константа или EQUATE-метка кода клавиши.
string Строковая константа, переменная или выражение.

PRESS имитирует нажатия на клавиши во внутреннем буфере клавиатуры Клариона (а не буфере DOS). PRESS(КОД) помещает в буфер одно нажатие. PRESS(СТРОКА) помещает в буфер строку целиком. Строка заполняет буфер (статическую очередь), размер которого ограничен лишь доступной основной памятью. На каждое нажатие в строке отводится 32 байта, т.е теоретический максимум равен примерно 2500 символов в большинстве «нормальных» приложений.

SETKEYCODE (вернуть код клавиши)


код Целая константа или EQUATE-метка кода клавиши.

SETKEYCODE заставляет функцию KEYCODE вернуть заданный КОД. КОД НЕ помещается в буфер клавиатуры.

См. также: ALIAS, KEYCODE, Equate-коды клавиш

ФУНКЦИИ КЛАВИАТУРЫ

ENTRY (принять ввод с клавиатуры)

строка Числовое значение или выражение, которое задает строку, на которой производится ввод.
столбец Числовое значение или выражение, которое задает столбец, на котором производится ввод
шаблон Шаблон формата или метка строки, описанной с шаблоном формата. Параметр ШАБЛОН определяет длину поля вормат ввода с клавиатуры в переменную. Переменная показывается и редактируется в режиме реверсного отображения (цвета фона и текста меняются местами).

ENTRY читает нажатия клавиш с клавиатуры. Программа ждет, пока редактирование поля не завершится клавишей завершения поля (обычно ENTER) или клавишей взведенной (через ALERT). ENTRY устанавливает реверсные цвета для СТРОКИ и СТОЛБЦА и включает курсор на время редактирования поля.

Возвращаемый тип данных: STRING

KEYBOARD (возвращает ожидающее нажатие на клавишу)

Функция KEYBOARD возвращает первый код из хранящихся в буфере клавиатуры нажатий на клавиши. Используется для определения, есть ли нажатия, которые надо обрабатывать операторами ASK или ACCEPT.

Возвращаемый тип данных: LONG

См. также: ASK, ACCEPT, Equate-коды клавиш

KEYCODE (возвращает код клавиши завершения поля)

Функция KEYCODE возвращает код клавиши, которой завершилось редактирование поля. Эта функция работает только для результатов функции ENTRY и операторов ASK, SETKEYCODE или ACCEPT.

Возвращаемый тип данных: LONG

См. также: ASK, ACCEPT, Equate-метки кодов клавиш

How to change text color and console color in code::blocks?

I am writing a program in C. I want to change the text color and background color in the console. My sample program is —

When I compile this program code::blocks gives me an error — textcolor not defined. Why is this so? I work in a GNU GCC compiler and Windows Vista. If it is not going to work what is the duplicate of textcolor. Like that I want to change the background color of the console. The compiler gives me the same error just the name of the function is different. How to change the color of the console and text. Please help.

I am okay even if the answer is in C++.

7 Answers 7

Functions like textcolor worked in old compilers like turbo C and Dev C. In today’s compilers these functions would not work. I am going to give two function SetColor and ChangeConsoleToColors. You copy paste these functions code in your program and do the following steps.The code I am giving will not work in some compilers.

The code of SetColor is —

To use this function you need to call it from your program. For example I am taking your sample program —

When you run the program you will get the text color in RED. Now I am going to give you the code of each color —

Now I am going to give the code of ChangeConsoleToColors. The code is —

In this function you pass two numbers. If you want normal colors just put the first number as zero and the second number as the color. My example is —

In this case I have put the first number as zero and the second number as 15 so the console color will be white as the code for white is 15. This is working for me in code::blocks. Hope it works for you too.

Скрипт на qlua — Светофор

По следам этого поста скрипт на qlua, называется «Светофор».
Суть скрипта- отслеживать дистанцию до «дна», которое представляет собой лои 2008 года+накопленная инфляция.

Подсветка строк:
зеленым- цена ниже уровня инфляции
желтым — до дна менее 50%
красным — до дна более 80%

сортировка строк по ctrl+клик

В чем не смог разобраться:
как получить лой 2008 года по акции (вбито вручную)
как получить полное название компаний (вбито вручную)
кто знает — подскажите!

Как это выглядит в Квике:

Бэктест на проливе 2014 года:

Код:

Работа с цветом. Ранее использовались функции setcolor()/getcolor() для установки/выяснения текущего цвета рисования

Читайте также:

  1. I. Контрольная работа
  2. II. Законодательное и нормативно-правовое регулирование вопросов воинского учета и бронирование граждан, пребывающих в запасе и работающих в организациях здравоохранения.
  3. II. Тригонометрические функции и функции работающие с углами.
  4. III. Метод определения платежеспособности физических лиц, разработанная Сбербанком России.
  5. III. Работа с дебиторами
  6. III. Работа с текстом после чтения
  7. L Если исполнитель работал во время Великой Отечественной войны или участвовал в ней, срок действия исключительного права продлевается на четыре года.
  8. V. Работа переменной силы
  9. WINDOWS XP: ЭФФЕКТИВНАЯ РАБОТА
  10. А. Программирование работы гирлянды, работающей в режиме бегущей волны
  11. Баллистическая работа мышц
  12. Без дисциплины работать трудно

Ранее использовались функции setcolor()/getcolor() для установки/выяснения текущего цвета рисования. Рассмотрим работу с цветом более подробно.

Известно, что любой цвет является композицией трех основных цветов: Red (красный), Green (зеленый), Blue (синий). Дополнительные цвета – смесь основных:

При различной аппаратной настройке монитора magenta, например, может быть пурпурным, сиреневым, малиновым, вишневым; голубой — бирюзовым.

В зависимости от интенсивности (яркости) каждого из основных цветов в смеси получаем различные оттенки. Следовательно, 4-битовая комбинация позволяет закодировать 15 базовых цветов. Кодирование стандартно: I – интенсивность, RGB – цвета.

I R G B Название Компоненты I R G B Название Компоненты
0 0 0 0 Черный Нет 0 0 0 1 Синий Синий
0 0 1 0 Зеленый Зеленый 0 0 1 1 Голубой Зеленый + Синий
0 1 0 0 Красный Красный 0 1 0 1 Фиолетовый Красный + Синий
0 1 1 0 Коричневый Красный + Зеленый 0 1 1 1 Белый Красный + Зеленый + Синий
1 0 0 0 Серый 1 0 0 1 Ярко- синий
1 0 1 0 Ярко- зеленый 1 0 1 1 Ярко- голубой
1 1 0 0 Ярко- красный 1 1 0 1 Ярко- фиолетовый
1 1 1 0 Желтый 1 1 1 1 Ярко- белый

В языках программирования обычно можно указывать как номер цвета, так и его буквенное обозначение по первым буквам. В языке С(С++) в соответствующем заголовочном файле задается сопоставление букв и чисел по вышеприведенной таблице.

Т.к. емкость видеопамяти ограничена, в ряде случаев возникает конфликт между цветностью и разрешающей способностью. Этим объясняется возможность цветных видеоадаптеров работать в разных режимах (модах), позволяющих увеличивать разрешающую способность (количество точек) за счет уменьшения количества цветов и наоборот. (См. параметр graphmode функции initgraph()). Например, в простейшем случае для адаптера CGA возможны 2 варианта представления изображений: 2 бита на каждый пиксел (4 цвета, 320*200 точек) и 1 бит на каждый пиксел (2 цвета, 640*200 точек).

белый светло- темно- черный белый и черный

Для VGA можно получить 640*350 точек при воспроизведении 16 цветов из палитры 4096 оттенков (о палитре – далее) или 320*200 точек при воспроизведении одновременно 256 цветов. Если видеопамять VGA — 256 К, можно уменьшить число страниц видеобуфера (вместо 2 получить 1, 16 цветов, 640х480 точек).

Практически любой видеоадаптер способен отобразить гораздо больше цветов, чем определяется количеством бит, отведенным под один пиксел. Например, монитор EGA адаптера способен отображать 64 цвета, т.к. имеет 6-битовый видеосигнал. Видеоадаптер переводит 4-битовый цвет пиксела в 6-битовый видеосигнал. Для перевода используется некоторое подобие таблицы, называемое палитрой. Фактически адаптер имеет 16 специальных внутренних регистров, где для каждого логического цвета хранится его 6-битовое значение видеосигнала (6 бит, т.к. 3 основных цвета + бит интенсивности, следовательно, на каждый цвет — 2 бита). Цвет в палитре задается байтом вида 00rgbRGB. Малые буквы обозначают бит интенсивности соответствующего цвета.

Существует возможность менять в таблице соответствие логического цвета и видеосигнала, выбирая его из 64 возможных цветов.

4-битовый атрибут
Регистр используемой цветовой матрицы

Логическое И

6-битовый сигнал, подаваемый на дисплей

void far setpalette(int color, int colorvalue);

Для логического цвета color устанавливается физический цвет colorvalue.

Обратная функция void far getpalette(struct palettetype far * palette)


заполняет структуру palette, формат которой описан в заголовочном файле, данными о текущей палитре.

int gdriver = DETECT, gmode, errorcode;

int color, maxcolor, ht;

/* инициализация графики, автоопределение */

errorcode = graphresult(); /* анализ результатов инициализации */

if (errorcode != grOk) /* обнаружена ошибка */

printf(«Ошибка графики: %s\n», grapherrormsg(errorcode));

printf(«Для выхода из программы нажмите любую клавишу»);

exit(1); /* выход с кодом ошибки */

ht = 2 * textheight(«W»);

/* показать цвета по умолчанию */

for (color=1; color

/* выбор драйвера и видеорежима, поддерживающих */

/* использование функции setrgbpalette() */

int gdriver = VGA, gmode = VGAHI, errorcode;

/* структура, где запоминается палитра для последующего восстановления */

struct palettetype pal;

int i, ht, y, xmax;

/* инициализация графики и локальных переменных */

errorcode = graphresult(); /* анализ результатов инициализации */

if (errorcode != grOk) /* обнаружена ошибка */

printf(«Ошибка графики: %s\n», grapherrormsg(errorcode));

printf(«Для выхода из программы нажмите любую клавишу»);

exit(1); /* выход с кодом ошибки */

getpalette(&pal); /* копируем палитру для последующего восстановления */

setrgbpalette(pal.colors[i], i*4, i*4, i*4);

/* ИЗМЕНИТЕ любое из 3 цветовых значений или все 3: */

/* i*8, i*8, i*8; i*8, i*4, i*4; i*4, i*4, i*8 *18; *108; *1008 и т.д. */

Setcolor ( COLOR(0,255,0) ); // зеленыйцвет

circle ( x, y, R );

При вызове функции circleв скобках указывают координаты центра и радиус окружности в пикселях. Это могут быть числа, имена переменных или арифметические выражения, например:

circle ( 200, y0+20, R );

Заливка произвольной области

Иногда бывает нужно залить каким-то цветом произвольную область, ограниченную контуром одного цвета. Это можно сделать с помощью функции

floodfill:

Setfillstyle ( 1, 11 ); // стиль 1, цвет 11

Floodfill (x, y, 0); // до границы цвета 0

Для заливки нужно знать координаты (x,y)одной (любой!) точки внутри этой области. Кроме того, нужно, чтобы граница области была одного цвета, без разрывов. Цвет границы указывается последним в списке данных, которые передаются функции floodfill.

Надписи

Функция outtextxyпозволяет выводить текст в любом месте окна. Ей нужно задать координаты (x,y)левого верхнего угла текста. Цвет текста устанавливается с помощью функции setcolor:

setcolor ( 9 );

outtextxy ( x, y, «Вася» );

Пример программы

Напишем программу, которая использует стандартные функции

для рисования домика. Попытайтесь разобраться в ней самостоятельно.

Процедуры

Не нашли то, что искали? Воспользуйтесь поиском:

Илон Маск рекомендует:  Or - Ключевое слово Delphi

Лучшие изречения: Увлечёшься девушкой-вырастут хвосты, займёшься учебой-вырастут рога 9794 — | 7668 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Что такое код setcolor

BLANK удаляет все символы из прямоугольной области на экране. НО BLANK не очищает активные видеоатрибуты-цвета. Ранее активизированные атрибуты PAINT структуры SCREEN и/или оператора SETCOLOR могут повлиять на цвета в прямоугольнике.

Коды цветовых стилей (видеоатрибуты)

Каждое знакоместо в видеопамяти состоит из двух байт; один данные (символ) и второй — видеоатрибуты. Байт видеоатрибутов содержит трехбитный цвет фона, бит мигания/яркости и четырехбитный цвет переднего плана (текста). Эти биты скомпонованы в одно байтный код цветового стиля с возможными значениями 0..255, который задает комбинацию цветов фона/текста. Бит мигания может служить битом яркости фона при помощи процедуры SetNoBlink. При запрещенном мигании, для фона можно использовать те же 16 цветов, что и для текста. Если же мигание разрешено, то для фона можно использовать только 8 цветов, а остальные 8 будут приводить к миганию текста. Код цветового стиля получается сложением значений фона и текста. В нижеследующей таблице приведены значения, используемые для создания кодов цветовых стилей.


PAINT (закрасить прямоугольник на экране)

строка Числовое значение или выражение, которое задает строку для начального (верхнего левого) угла. По умолчанию — 1.
столбец Числовое значение или выражение, которое задает столбец для начального (верхнего левого) угла. По умолчанию — 1.
rows Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию — вся высота экрана.
columns Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).

PAINT записывает активные видеотрибуты SETCOLOR в прямоугольную область экрана. Символы в прямоугольнике остаются без изменений. PAINT стоит применять только после выполнения оператора SETCOLOR с параметром-цветом. Если какие-то параметры пропущены, запятые, ограничивавшие их должны ставиться.

SCROLL (прокрутить прямоугольную область экрана)

строка Числовое значение или выражение, которое задает начальную (верхнюю) строку. По умолчанию — 1.
столбец Числовое значение или выражение, которое задает начальный (левый) столбец прямоугольника. По умолчанию 1.
строк Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию — вся высота экрана (структуры SCREEN)
столбцов Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).
счетчик Позитивное или негативное значение или выражение, которое задает на сколько строк прокрутить. Если СЧЕТЧИК положителен, то прокрутка вверх, если отрицательный, то вниз. По умолчанию СЧЕТЧИК=+1.

SCROLL перемещает символы в прямоугольной области экрана вверх или вниз. По мере сдвига символов, СЧЕТЧИК строк удаляется сверху (снизу) прямоугольника, и СЧЕТЧИК пустых строк создается внизу (вверху). Параметры СТРОКА и СТОЛБЕЦ задают координаты верхнего левого угла прямоугольника относительно верхнего левого угла физического экрана; они НЕ ссылаются на верхний левый угол структуры SCREEN.

SCROLL НЕ изменяет активные видеоатрибуты в прямоугольнике. Ранее активные атрибуты оператора PAINT в SCREEN-структуре или оператора SETCOLOR могут повлиять на цвета в прямоугольнике. Хотя символы сдвигаются, цвета раскраска прямоугольника НЕ меняется.

SETBLINK разрешает мигание. Если оно разрешено, то для фона можно использовать только 8 цветов. Это нормальный режим работы, до тех пор, пока мигание не запрещено процедурой SETNOBLINK.

SETCOLOR (установить видеоатрибуты)

цвет Числовое значение или выражение, которое задает код цветового стиля. Допустимые значения ЦВЕТа — 0..255.

SETCOLOR меняет байт выидеоатрибута для каждого символа, записываемого в видеопамять после него. ЦВЕТ точный код цветового стиля (это НЕ ссылка на внутренний массив, используемый в структуре SCREEN параметром COLOR).

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

SETCURSOR (включить курсор)

строка Числовое значение или выражение, задающее строку на экране.
столбец Числовое значение или выражение, задающее столбец на экране.

SETCURSOR показывает курсор в позиции заданной СТОЛБЦОМ и СТРОКОЙ. Используется для позиционированного вывода на устройство «CON». SETCURSOR указывает первую строку и столбец для вывода оператором TYPE, или оператором PRINT, у которого устройством для вывода отчета является «CON.» Если параметры не заданы, то SETCURSOR гасит курсор.

SETGRAPHIC (установить графический режим)

режим Целая константа или EQUATE, задающая графический видеорежим (EGA, VGA, SVGA).

SETGRAPHIC задает графический режим для SCREEN-структур с атрибутом GRAPHIC. Графический режим определяется автоматически и не требует изменения, как правило. SETGRAPHIC перекрывает режим автоопределения режима для следующего открываемого SCREEN. Разрешенные для РЕЖИМа значения:

Если экран уже открыт как графический, SETGRAPHIC(90) не повлияет на него. Если же экран ЕЩЕ не в графическом режиме, SETGRAPHIC(90) принудительно вызовет вывод следующих экранов в текстовом режиме, даже если у них установлен атрибут GRAPHIC.

SETMOUSE (позиционирование курсора мышки)

строка Целая константа, переменная или выражение, задающее строку, в которую поместить курсор мышки. По умолчанию ноль.
столбец Целая константа, переменная или выражение, задающее столбец, куда поместить курсор мышки. По умолчанию ноль.

SETMOUSE размещает курсор мышки на экране. Если СТРОКА и СТОЛБЕЦ опущены, то SETMOUSE выключает курсор мышки. Если программа собирается использовать мышь, то по крайней мере, один SETMOUSE требуется (вероятно где-то ближе к началу программы).

В графическом режиме курсор мышки представляет стрелку, а в текстовом — прямоугольный блок (знакоместо), до тех пор, пока не использованы операторы LOADSYMBOLS или USESYMBOLS.

См. также: LOADSYMBOLS, USESYMBOLS

SETNOBLINK запрещает мигание на экране. Обычно, фон можно раскрасить в 8 цветов. При запрещенном мигании, бит отвечающий за мигание может быть использован как бит яркости фона. Это позволяет использовать для фона те же 16 цветов, что и для текста.

Монохромные или CGA мониторы НЕ поддерживают запрещение мигания. Таким образом, для SETNOBLINK нужен, как минимум, EGA.

SETTEXT (установить размер экрана в текстовом режиме)

строк Целая константа, переменная или выражение, задающее число строк на физическом экране в текстовом режиме.
столбцов Целая константа, переменная или выражение, задающее число столбцов на физическом экране в текстовом режиме.

SETTEXT позволяет точно задать, скажем, режим 43 или 50 строк. Без применения SetText, текстовый режим остается таким же, каким он был при запуске программы.

SETTEXT использует метод наилучшего размещения для параметров СТРОК и СТОЛБЦОВ. Видеоадаптер может поддерживать различные текстовые режимы, так что, в принципе, SETTEXT(200,200) может достичь максимально возможного разрешения в текстовом режиме.

SHOW (показать на экране)

строка Числовое значение или выражение, которое задает строку на экране, в которую будет выведено ВЫРАЖЕНИЕ. По умолчанию — последняя строка, в которой происходил вывод.
столбец Числовое значение или выражение, которое задает столбец, в который будет выведено ВЫРАЖЕНИЕ. По умолчанию — последний столбец, в который производился вывод.
выражение Метка переменной, константы, числовое или строковое выражение.
формат Шаблон формата или метка строки (STRING) описанной с форматом вывода (picture).

SHOW выводит переменные или выражения прямо на экран. Если выражение слишком длинно, чтобы разместиться в строке, оно усекается. Чтобы показать, что какие-то параметры пропущены, требуются запятые. То, что выводит SHOW, затирает то, что было ранее на экране.

TYPE (вывести строку на экран)

строка Строковая константа, переменная или выражение.

TYPE выводит строку на стандартное устройство вывода (STDOUT). Пока не определено иначе, в качестве STDOUT DOS использует устройство CON. Строка появится на экране начиная с текущего положения курсора. Можно использовать SETCURSOR, чтобы разместить курсор в нужном месте.

Устройство «CON» распознает символы CR, LF, TAB и BS. Перевод строки (LF) переводит курсор на строку ниже текущей. LF на последней строке экрана приводит к прокрутке всего экрана вверх на одну строку.

См. также: SETCURSOR, Элементы Управления Принтером

ВИДЕОФУНКЦИИ

BACKCOLOR (возвращает цвет фона)

строка Числовое значение или выражение, которое задает строку на экране.
столбец Числовое значение или выражение, которое задает столбец на экране.

BACKCOLOR возвращает цвет фона для указанного знакоместа. Возвращаемое значение лежит в диапазоне от 0 до 15 включительно, что соответствует шестнадцати цветам переднего плана. Если параметры выходят за допустимые пределы, то возвращается ноль.

В байте видеоатрибута фоновый цвет хранится в старшем ниббле (4 бита). То есть, если значение, полученное от BackColor использовано для порождения кода цветового стиля, то сначала его надо умножить на шестнадцать, и затем прибавить к нему значение цвета для переднего плана.

Возвращаемый тип данных: BYTE

COLOR (возвращает код цветового стиля)

Функция COLOR возвращает активный для знакоместа с координатами (СТРОКА,СТОЛБЕЦ) код цветового стиля (комбинацию цветов фона и переднего плана).

Возвращаемый тип данных: BYTE

FORECOLOR (возвращает цвет переднего плана)

FORECOLOR возвращает цвет текста для знакоместа с координатами (СТРОКА,СТОЛБЕЦ). Возвращаемое значение лежит в диапазоне от 0 до 15 включительно. Если параметры выходят за допустимые пределы, то возвращается ноль.

В байте видеоатрибута цвет переднего плана хранится в младшем ниббле, то есть, для получения кода цветового стиля надо результат от FORECOLOR прибавить к результату от BACKCOLOR умноженному на шестнадцать.

Возвращаемый тип данных: BYTE

GRAPHIC (возвращает текущий видеорежим)


n Целочисленная константа, переменная или выражение.

Функция GRAPHIC возвращает байт, содержащий текущий внутренний видеорежим. В зависимости от режима, возвращается следующее:

GRAPHIC(0) возвращает тип адаптера (EGA, VGA, SVGA) если текущий экран открыт не в графическом режиме. GRAPHIC(1) возвращает одно из приведенных выше значений для графических режимов или 5Ah для текстового.

GRAPHIC(1) проверяет, не находится ли экран в графическом режиме и, если так, то какой адаптер используется. GRAPHIC(0) обычно используется для определения типа адаптера дисплея перед открытием экрана в графическом режиме.

Возвращаемый тип данных: Byte

LOOK (считать символ(ы) с экрана)

строка Числовое значение или выражение, которое задает Y-соординату для чтения. По умолчанию — последняя строка, которой было обращение.
столбец Числовое значение или выражение, которое задает X-координату первого символа, который надо прочитать. По умолчанию — последний столбец, к которому было обращение.
шаблон Шаблон формата или метка строки, описанной с шаблоном формата. Шаблон используется для деформатирования прочитанного с экрана значения в переменную. Длина шаблона определяет количество столбцов, которые будут прочитаны с экрана.

Функция LOOK считывает ASCII-коды символов с экрана, начиная со знакоместа, с координатами (СТРОКА,СТОЛБЕЦ). Если какие-то параметры опущены, то чтобы это отметить, требуются запятые. LOOK работает одинаково как в текстовых, так и в графических режимах. (SPA — интересно, а для русских букв в графике работает?)

Возвращаемый тип данных: STRING

MAKECOLOR (возвращает код цветового стиля)

текст Целая константа, переменная или выражение в диапазоне 0..15, представляющая собой цвет переднего плана (или текста).
фон Целая константа, переменная или выражение в диапазоне 0..15, представляющая собой цвет заднего плана (или фона).

MAKECOLOR возвращает код цветового стиля для заданной комбинации цветов текста/фона.

Возвращаемый тип данных: BYTE

MOUSECOL (X-координата мышки)

MOUSECOL возвращает баутовое значение, соответствующее номеру столбца, в котором находится курсор мышки на виртуальном экране.

Возвращаемый тип данных: BYTE

MOUSEROW (Y-координата мышки)

MOUSEROW возвращает баутовое значение, соответствующее номеру строки, в которой находится курсор мышки на виртуальном экране.

Возвращаемый тип данных: BYTE

ПРОЦЕДУРЫ КЛАВИАТУРЫ

ALIAS (установить альтернативный код клавиши)

код Числовой код или EQUATE-метка кода клавиши.
новый-код Числовой код или EQUATE-метка кода клавиши. Можно использовать неприсвоенные ранее коды.

ALIAS изменяет генерируемый при нажатии клавиши код. НОВЫЙ-КОД не находится в таблице кодов клавиш. Коды от 700 до 999 не присвоены, и могут быть использованы как НОВЫЕ-КОДЫ. Практический эффект от этого возможность запретить реагировать на КОД, если ваша программа не проверяет НОВЫЙ-КОД. Если оба параметра опущены, то ALIAS отменяет все переназначения клавиш.

См. также: Equate-коды клавиш

ASK (получить один символ)

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

PRESS (поместить код в буфер)

код Числовая константа или EQUATE-метка кода клавиши.
string Строковая константа, переменная или выражение.

PRESS имитирует нажатия на клавиши во внутреннем буфере клавиатуры Клариона (а не буфере DOS). PRESS(КОД) помещает в буфер одно нажатие. PRESS(СТРОКА) помещает в буфер строку целиком. Строка заполняет буфер (статическую очередь), размер которого ограничен лишь доступной основной памятью. На каждое нажатие в строке отводится 32 байта, т.е теоретический максимум равен примерно 2500 символов в большинстве «нормальных» приложений.

SETKEYCODE (вернуть код клавиши)

код Целая константа или EQUATE-метка кода клавиши.

SETKEYCODE заставляет функцию KEYCODE вернуть заданный КОД. КОД НЕ помещается в буфер клавиатуры.

См. также: ALIAS, KEYCODE, Equate-коды клавиш

ФУНКЦИИ КЛАВИАТУРЫ

ENTRY (принять ввод с клавиатуры)

строка Числовое значение или выражение, которое задает строку, на которой производится ввод.
столбец Числовое значение или выражение, которое задает столбец, на котором производится ввод
шаблон Шаблон формата или метка строки, описанной с шаблоном формата. Параметр ШАБЛОН определяет длину поля вормат ввода с клавиатуры в переменную. Переменная показывается и редактируется в режиме реверсного отображения (цвета фона и текста меняются местами).

ENTRY читает нажатия клавиш с клавиатуры. Программа ждет, пока редактирование поля не завершится клавишей завершения поля (обычно ENTER) или клавишей взведенной (через ALERT). ENTRY устанавливает реверсные цвета для СТРОКИ и СТОЛБЦА и включает курсор на время редактирования поля.

Возвращаемый тип данных: STRING

KEYBOARD (возвращает ожидающее нажатие на клавишу)

Функция KEYBOARD возвращает первый код из хранящихся в буфере клавиатуры нажатий на клавиши. Используется для определения, есть ли нажатия, которые надо обрабатывать операторами ASK или ACCEPT.

Илон Маск рекомендует:  Mysql реализация языка sql в субд mysql

Возвращаемый тип данных: LONG

См. также: ASK, ACCEPT, Equate-коды клавиш

KEYCODE (возвращает код клавиши завершения поля)

Функция KEYCODE возвращает код клавиши, которой завершилось редактирование поля. Эта функция работает только для результатов функции ENTRY и операторов ASK, SETKEYCODE или ACCEPT.

Возвращаемый тип данных: LONG

См. также: ASK, ACCEPT, Equate-метки кодов клавиш

Хостинг в Европе для новичков (от 25 руб/мес) и VIP-хостинг для профессионалов (от 1000 руб/мес)

Скидка 25% на все тарифы хостинга по промокоду STDCITF

Блог только про Java

Учимся программировать на Java с нуля

Работа с цветом в Java

В Java поддерживаются цвета в переносимой, аппаратно-независимой форме. Цветовая система в библиотеке AWT позволяет сначала задать какой угодно цвет, а затем найти наилучшее соответствие этому цвету с учетом аппаратных ограни­чений, накладываемых на отображение в том устройстве, где выполняется аплет или прикладная программа.

Таким образом, прикладной код не должен зависеть от того, насколько отличается поддержка цвета в разных аппаратных устройствах. Цвет инкапсулируется в классе Color.

В классе Color определяется несколько констант (вроде Color.black) для описания наиболее употребительных используемых цветов.


В следующей программе мы создаем экземпляр цвета с помощью конструктора класса Color. С помощью String объявляем переменную Иван Франко которая будет ссылаться на текст «Критика на творчество Ивана Франко». Данный текст будем выводить в окошко аплета с тремя разными цветами c1, c2 и c3.

Вот что должно получится:

Имеется также возможность создавать свои цвета, используя один из до­ступных конструкторов цвета. Ниже приведены три наиболее часто используемые формы конструкторов класса Color.

Первый конструктор данного класса принимает три аргумента, задающие цвет в определенном сочетании красной, зеленой и синей составляющих. Значения этих составляющих должны находиться в пределах от 0 до 255, как показано ниже:

Второй конструктор класса Color принимает единственный аргумент в виде целочисленного значения цвета, составленного из трех основных цветов (RGB).

Попробуйте купить лайки в Одноклассниках с помощью сервиса avi1. Здесь Вы сможете получить не только достаточно крупные скидки на оптовые покупки ресурса, но и весьма качественное и надежное исполнение услуги.

Это целочисленное значение организовано таким образом, чтобы на красную со­ставляющую приходились двоичные разряды с 16-го по 23-й бит, на зеленую со­ставляющую — с 8-го по 15-й бит, на синюю — с 0-го по 7-й бит. Ниже приведен при­мер применения такого конструктора:

И последний конструктор класса Color принимает три значения составляю­щих цвета в формате с плавающей точкой и в пределах от 0.0 до 1.0, обозначаю­щих относительные значения красной, зеленой и синей составляющих цвета.

Составив цвет с помощью одного из описанных выше конструкторов, можно воспользоваться им в качестве образца для установки цвета переднего плана и/или фона с помощью методов setForeground() и setBackground(). Этот цвет можно также выбрать в качестве текущего для рисования.

Конвертер цветов

С помощью универсального конвертер цветов вы можете легко перевести цвет из одной цветовой модели в ряд других.

В первую очередь, калькулятор служит для удобной работы с современными форматами CSS3-цветов. Поддерживается конвертация из HEX в RGB/RGBA и HSL/HSLA, RGB в CMYK, XYZ, LAB, и обратно.

А также специальный функционал для замещения альфа-канала при переводе цвета из RGBA в RGB (и HSLA в HSL).

Справка по цветовым моделям

Далее приводится краткое описание цветовых систем с которыми работает конвертер, разъяснение по форматам, а также примеры использования полученных цветов в CSS/HTML.

HEX / HTML

Цвет в формате HEX — это ни что иное, как шестнадцатеричное представление RGB.

Цвета представляются в виде трёх групп шестнадцатеричных цифр, где каждая группа отвечает за свой цвет: #112233, где 11 — красный, 22 — зелёный, 33 — синий. Все значения должны быть между 00 и FF.

Во многих приложениях допускается сокращённая форма записи шестнадцатеричных цветов. Если каждая из трёх групп содержит одинаковые символы, например #112233, то их можно записать как #123.

Цветовое пространство RGB (Red, Green, Blue) состоит из всех возможных цветов, которые могут быть получены путём смешивания красного, зелёного, и синего. Эта модель популярна в фотографии, телевидении, и компьютерной графике.

Значения RGB задаются целым числом от 0 до 255. Например, rgb(0,0,255) отображается как синий, так как синий параметр установлен в его самое высокое значение (255), а остальные установлены в 0.

Некоторые приложения (в частности веб-браузеры) поддерживают процентную запись значений RGB (от 0% до 100%).

Цветовые значения RGB поддерживаются во всех основных браузерах.

С недавних пор современные браузеры научились работать с цветовой моделью RGBA — расширением RGB с поддержкой альфа-канала, который определяет непрозрачность объекта.

Значение цвета RGBA задается в виде: rgba(red, green, blue, alpha). Параметр alpha — это число в диапазоне от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный).

RGBA поддерживается в IE9+, Firefox 3+, Chrome, Safari, и в Opera 10+.

Цветовая модель HSL является представлением модели RGB в цилиндрической системе координат. HSL представляет цвета более интуитивным и понятным для восприятия образом, чем типичное RGB. Модель часто используется в графических приложениях, в палитрах цветов, и для анализа изображений.

HSL расшифровывается как Hue (цвет/оттенок), Saturation (насыщенность), Lightness/Luminance (светлота/светлость/светимость, не путать с яркостью).

Hue задаёт положение цвета на цветовом круге (от 0 до 360). Saturation является процентным значением насыщенности (от 0% до 100%). Lightness является процентным значением светлости (от 0% до 100%).

HSL поддерживается в IE9+, Firefox, Chrome, Safari, и в Opera 10+.

По аналогии с RGB/RGBA, для HSL имеется режим HSLA с поддержкой альфа-канала для указания непрозрачности объекта.

Значение цвета HSLA задается в виде: hsla(hue, saturation, lightness, alpha). Параметр alpha — это число в диапазоне от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный).

Цветовая модель CMYK часто ассоциируется с цветной печатью, с полиграфией. CMYK (в отличие от RGB) является субтрактивной моделью, это означает что более высокие значения связаны с более тёмными цветами.

Цвета определяются соотношением голубого (Cyan), пурпурного (Magenta), жёлтого (Yellow), с добавлением чёрного (Key/blacK).

Каждое из чисел, определяющее цвет в CMYK, представляет собой процент краски данного цвета, составляющей цветовую комбинацию, а точнее, размер точки растра, выводимой на фотонаборном аппарате на плёнке данного цвета (или прямо на печатной форме в случае с CTP).

Например, для получения цвета «PANTONE 7526» следует смешать 9 частей голубой краски, 83 частей пурпурной краски, 100 — жёлтой краски, и 46 — чёрной. Это можно обозначить следующим образом: (9,83,100,46). Иногда пользуются такими обозначениями: C9M83Y100K46, или (9%, 83%, 100%, 46%), или (0,09/0,83/1,0/0,46).

HSB / HSV

HSB (также известна как HSV) похожа на HSL, но это две разные цветовые модели. Они обе основаны на цилиндрической геометрии, но HSB/HSV основана на модели «hexcone», в то время как HSL основана на модели «bi-hexcone». Художники часто предпочитают использовать эту модель, принято считать что устройство HSB/HSV ближе к естественному восприятию цветов. В частности, цветовая модель HSB применяется в Adobe Photoshop.

HSB/HSV расшифровывается как Hue (цвет/оттенок), Saturation (насыщенность), Brightness/Value (яркость/значение).

Hue задаёт положение цвета на цветовом круге (от 0 до 360). Saturation является процентным значением насыщенности (от 0% до 100%). Brightness является процентным значением яркости (от 0% до 100%).

Цветовая модель XYZ (CIE 1931 XYZ) является чисто математическим пространством. В отличие от RGB, CMYK, и других моделей, в XYZ основные компоненты являются «мнимыми», то есть вы не можете соотнести X, Y, и Z с каким-либо набором цветов для смешивания. XYZ является мастер-моделью практически всех остальных цветовых моделей, используемых в технических областях.

Цветовая модель LAB (CIELAB, «CIE 1976 L*a*b*») вычисляется из пространства CIE XYZ. При разработке Lab преследовалась цель создания цветового пространства, изменение цвета в котором будет более линейным с точки зрения человеческого восприятия (по сравнению с XYZ), то есть с тем, чтобы одинаковое изменение значений координат цвета в разных областях цветового пространства производило одинаковое ощущение изменения цвета.

Чистый код на PHP

Это принципы разработки ПО, взятые из книги Clean Code Роберта Мартина и адаптированные для PHP. Это руководство не по стилям программирования, а по созданию читабельного, многократно используемого и пригодного для рефакторинга кода на PHP.

Не каждый из этих принципов должен строго соблюдаться, и ещё с меньшим количеством все будут согласны. Это лишь рекомендации, не более, но все они кодифицированы в многолетнем коллективном опыте автора Clean Code.

Содержание

Переменные

Используйте значимые и произносимые имена переменных

Плохо:

Хорошо:

Для одного типа переменных используйте единый словарь

Плохо:

Хорошо:

Используйте имена, по которым удобно искать


Мы прочитаем больше кода, чем когда-либо напишем. Поэтому важно писать такой код, который будет читабелен и удобен для поиска. Но давая переменным имена, бесполезные для понимания нашей программы, мы мешаем будущим читателям. Используйте такие имена, по которым удобно искать.

Плохо:

Хорошо:

Используйте пояснительные переменные

Плохо:

Неплохо:

Так лучше, но мы всё ещё сильно зависим от регулярного выражения.

Хорошо:

С помощью именования подпаттернов снижаем зависимость от регулярного выражения.

Избегайте ментального сопоставления

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

Плохо:

Хорошо:

Не добавляйте ненужный контекст

Если имя вашего класса/объекта с чем-то у вас ассоциируется, не проецируйте эту ассоциацию на имя переменной.

Плохо:

Хорошо:

Вместо сокращённых или условных используйте аргументы по умолчанию

Плохо:

Хорошо:

Функции

Аргументы функций (в идеале два или меньше)

Крайне важно ограничивать количество параметров функций, потому что это упрощает тестирование. Больше трёх аргументов ведёт к «комбинаторному взрыву», когда вам нужно протестировать кучу разных случаев применительно к каждому аргументу.

Идеальный вариант — вообще без аргументов. Один-два тоже нормально, но трёх нужно избегать. Если их получается больше, то нужно объединять, чтобы уменьшить количество. Обычно если у вас больше двух аргументов, то функция делает слишком много. В тех случаях, когда это не так, чаще всего в качестве аргумента достаточно использовать более высокоуровневый объект.

Плохо:

Хорошо:

Функции должны делать что-то одно

Это, безусловно, самое важное правило в разработке ПО. Когда функции делают больше одной вещи, их труднее составлять, тестировать и обосновывать. А если вы можете наделить функции только какими-то одиночными действиями, то их будет легче рефакторить, а ваш код станет гораздо чище. Даже если вы не будете следовать никакой другой рекомендации, кроме этой, то всё равно опередите многих других разработчиков.

Плохо:

Хорошо:

Имена функций должны быть говорящими

Плохо:

Хорошо:

Функции должны быть лишь одним уровнем абстракции

Если у вас несколько уровней абстракции, то на функцию возложено слишком много задач. Разбиение функций позволяет многократно использовать код и облегчает тестирование.

Плохо:

Хорошо:

Уберите дублирующий код

Старайтесь полностью избавиться от дублирующего кода. Он плох тем, что если вам нужно менять логику, то это придётся делать в нескольких местах.

Представьте, что вы владеете ресторанчиком и отслеживаете, есть ли продукты: помидоры, лук, чеснок, специи и т. д. Если у вас несколько списков с содержимым холодильников, то вам придётся обновлять их все, когда вы готовите какое-то блюдо. А если список один, то и вносить изменения придётся только в него.

Зачастую дублирующий код возникает потому, что вы делаете две и более вещи, у которых много общего. Но небольшая разница между ними заставляет вас писать несколько функций, и те по большей части делают одно и то же. Удаление дублирующего кода означает, что вы создаёте абстракцию, которая может обрабатывать все различия с помощью единственной функции/модуля/класса.

Правильный выбор абстракции критически важен, поэтому нужно следовать принципам SOLID, описанным в разделе «Классы». Плохие абстракции могут оказаться хуже дублирующего кода, так что будьте осторожны! Но если можете написать хорошие, то делайте это! Не повторяйтесь, иначе окажется, что при каждом изменении вам нужно обновлять код в нескольких местах.

Плохо:

Хорошо:

Не используйте флаги в качестве параметров функций

Флаги говорят вашим пользователям, что функции делают больше одной вещи. А они должны делать что-то одно. Разделяйте свои функции, если они идут по разным ветвям кода в соответствии с булевой логикой.

Плохо:

Хорошо:

Избегайте побочных эффектов

Функция может привносить побочные эффекты, если она не только получает значение и возвращает другое значение/значения, но и делает что-то ещё. Побочным эффектом может быть запись в файл, изменение глобальной переменной или случайная отправка всех ваших денег незнакомому человеку.

Но иногда побочные эффекты бывают нужны. Например, та же запись в файл. Лучше делать это централизованно. Не выбирайте несколько функций и классов, которые пишут в какой-то один файл, используйте для этого единый сервис. Единственный.

Главная задача — избежать распространённых ошибок вроде общего состояния для нескольких объектов без какой-либо структуры; использования изменяемых типов данных, которые могут быть чем-то перезаписаны; отсутствия централизованной обработки побочных эффектов. Если вы сможете это сделать, то будете счастливее подавляющего большинства других программистов.

Плохо:

Хорошо:

Не пишите в глобальные функции

Засорение глобалами — дурная привычка в любом языке, потому что вы можете конфликтовать с другой библиотекой, а пользователи вашего API не будут об этом знать, пока не получат исключение в production. Приведу пример: вам нужен конфигурационный массив. Вы пишете глобальную функцию вроде config() , но она может конфликтовать с другой библиотекой, пытающейся делать то же самое. Поэтому лучше использовать шаблон проектирования «синглтон» и простую конфигурацию.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL