![]() |
![]() |
![]() |
Цвет задается числом типа int, в котором три младших байта кодируют интенсивность трех основных цветов -- красного (r), зеленого (g) и синего (b). Для сведения всех трех составляющих цвета в одно целое число используется макрос RGB(r, g, b), определенный в файле vingraph.h. Так, черному цвету соответствует RGB(0, 0, 0), белому -- RGB(255, 255, 255), а промежуточные значения соответствуют всем остальным цветам.
Текущее значение цвета, которым рисуются все графические элементы устанавливается с помощью функции SetColor(int color). Эта установка локальна по отношению к каждой нити в вашем процессе, т.е. каждая независимо выполняемая нить имеет свою установку текущего цвета. По умолчанию установлен белый цвет.
Текущее значение цвета выбирается при каждом вызове функции рисования из области TLS (Thread Local Storage) по ключу. Эта выборка требует некоторых затрат времени. Более быстрым вариантом является непосредственное указание цвета с помощью дополнительного параметра функций рисования. Например, следующие фрагменты кода эквивалентны по своему действию, но второй вариант быстрее:
SetColor (RGB (50, 100, 150)), Line (10, 20, 30, 40); Line (10, 20, 30, 40, RGB (50, 100, 150));
Вы можете запомнить цвет в какой-либо переменной и затем использовать ее для нескольких графических элементов:
int c = RGB (50, 100, 150); Line (10, 20, 30, 40, c); Line (100, 200, 300, 400, c);
Все функции рисования, перечисленные выше, могут вызываться с дополнительным параметром, задающим цвет графического элемента (см., однако, особенности функций Rect() и Arc()).
![]() |
![]() |
![]() |