ЦВЕТ И ГРАФИКА
В графическом режиме экран рассматривается как решетка, точки в узлах которой могут быть включены (белым или другим возможным цветом) или выключены. Точка идентифицируется координатами x, y; x — номер позиции по горизонтали (от 0 до 319 или до 639 в зависимости от режима) , y — номер позиции по вертикали (от 0 до 199 или до 349 в зависимости от режима) . Точка с координатами 0,0 находится в верхнем левом углу экрана.
Графический режим устанавливается (или отменяется) оператором SCREEN.
SCREEN i[, j] i = 0, j = 0 черно-белый текстовый режим i = 0, j = 1 цветной текстовый режим i = 1, j = 0 цветная графика при средней разрешающей способности (320 позиций по горизонтали, 200 по вертикали) i = 1, j = 1 черно-белая графика при средней разрешающей способности i = 2 черно-белая графика при высокой разрешающей способности (640 позиций по горизонтали, 350 по верти кали) После выполнения оператора SCREEN точка устанавливается в середину экрана.
Оператор COLOR устанавливает цвет фона экрана и палитру (из трех цветов) для окрашивания точек (для текстового режима — еще и цвет рамки) .
Существует две палитры цветов: 0 и 1, следующего состава: Палитра 0я. Палитра 1 1 — зеленый 1 — голубой 2 — красный 2 — сиреневый 3 — желтый 3 — белый Для фона можно выбрать один из 16 цветов (0 — черный, 1 — синий, 2 — зеленый, 3 — бирюзовый, 4 — красный, 5 — лиловый, 6 коричневый, 7 — белый, 8 — серый, 9 — голубой, 10 — ярко-зеленый, 11 ярко-бирюзовый, 12 — ярко-красный, 13 — ярко-лиловый, 14 — желтый, 15 — ярко-белый) Оператор COLOR имеет вид COLOR i, j[, k] — 17 где i — цвет фона, j — номер палитры, k — цвет рамки.
Например, операторы SCREEN 1,0 COLOR 9,0 устанавливают цветной графический режим при средней разрешающей способности; цвет фона — голубой; последующие операторы должны использовать цвета из 0-й палитры.
В графическом режиме (для получения на экране неподвижных изображений) могут использоваться следующие операторы: PSET(PRESET) — включает (или выключает) точку; LINE- чертит линию; CIRCLE- чертит окружность или ее часть; PAINT- закрашивает указанную часть экрана.
Более сложные операторы для получения движущихся изображений (DRAW, GET, PUT) рассматриваются в п. 4.
Оператор PSET (x, y) включает точку с координатами x, y.
Оператор PSET STEP (x, y) включает точку, отстоящую на x позиций по горизонтали и на y позиций по вертикали от текущей точки. Например, если в предыдущем положении точка имеет координаты (60,75) , то оператор PSET (10,20) определяет точку с координатами (10,20) , а оператор PSET STEP (10,20) определяет точку с координатами (70,95) .
Операторы PSET (x, y) , 0 или PRESET(x, y) стирают точку (x, y) с экрана.
Оператор LINE позволяет начертить отрезок прямой, указав его начало (x1, y1) , конец (x2, y2) и цвет k LINE[(x1, y1) ]-(x2, y2) , k Если начальная точка отсутствует, то линия будет прочерчена, начиная с точки, в которой остановился предыдущий оператор.
С помощью оператора LINE можно также чертить и закрашивать прямоугольники LINE (x1, y1) (x2, y2) , [k], B[F] Точки (x1, y1) и (x2, y2) трактуются при этом как левая нижняя и — 18 правая верхняя вершины прямоугольника. Если цвет k отсутствует, то прямоугольник будет начерчен 3-м цветом палитры. При наличии параметра F площадь внутри прямоугольника будет закрашена. Например, оператор LINE (80,175) — (100,25) , 2, BF закрашивает красным цветом прямоугольник, расположенный между 80-ой и 100-ой позициями по горизонтали и 175-ой и 25-ой позициями по вертикали.
Оператор CIRCLE позволяет строить окружности, дуги, секторы и эллипсы.
Оператор CIRCLE(x, y) , r, k чертит окружность радиуса r с центром в точке (x, y) цветом k.
После вычерчивания окружности последней использованной точкой считается ее центр.
Оператор CIRCLE (x, y) , r, k, ALPHA1, ALPHA2 вычерчивает дугу, имеющую начало под углом ALPHA1 и конец под углом ALPHA2.
Например, оператор (при PI = 3.1416) CIRCLE (160,100) , 80,2, PI/2, PI строит дугу от PI/2 до PI окружности радиуса 80 с центром в точке (160,100) вторым цветом палитры.
Если использовать знак » — » перед начальной и конечной точками дуги, то будет нарисован сектор, т.е. конечные точки дуги будут соединены с центром. Например, CIRCLE (160,100) , 80,2, PI/2, — PI Можно изобразить сплюснутую (или наоборот вытянутую) окружность, добавив в оператор CIRCLE еще один параметр. Если значение этого параметра меньше 1, то окружность будет сплюснута по вертикали, если больше 1, то — по горизонтали. Например, CIRCLE (160,100) , 80,2. 3/4 Все параметры оператора CIRCLE задаются в определенном порядке и разделяются запятыми. Обязательными являются только параметры, указывающие положение центра и радиус окружности. Остальные параметры необязательны, однако, запятые должны быть оставлены, если пропущены параметры в середине списка.
Оператор PAINT позволяет закрашивать большие области экрана.
Для закрашивания необходимо указать произвольную точку внутри закрашиваемой области (x, y) , цвет, которым нужно закрасить область (k1) и цвет границы, которую нельзя пересекать при закрашивании (k2) , k1 и k2 могут совпадать. Оператор PAINT имеет вид — 19 PAINT (x, y) , k1, k2 Например, оператор PAINT (160,100) , 2,2 закрасит окружность нарисованную последним оператором CIRCLE, красным цветом, как и цвет окружности, использованный в операторе CIRCLE.
VBA Excel. Стандартная палитра из 56 цветов
За ограниченную палитру в VBA Excel отвечает свойство ColorIndex, которое используется для записи и чтения:
Свойство ColorIndex принимает и возвращает значения от 1 до 56.
Наименования 56 цветов палитры
Наименования 56 цветов стандартной ограниченной палитры Excel на русском и английском языках:
| Индекс | Наименование по-русски |
Наименование по-английски | Оттенок |
|---|---|---|---|
| 1 | Черный | Black | |
| 2 | Белый | White | |
| 3 | Красный | Red | |
| 4 | Лайм | Lime | |
| 5 | Синий | Blue | |
| 6 | Желтый | Yellow | |
| 7 | Фуксия* | Fuchsia* | |
| 8 | Цвет морской волны | Aqua | |
| 9 | Темно-бордовый | Maroon | |
| 10 | Зеленый | Green | |
| 11 | Темно-синий | Navy blue | |
| 12 | Оливковый | Olive | |
| 13 | Пурпурный | Purple | |
| 14 | Бирюзовый | Teal | |
| 15 | Серебряный | Silver | |
| 16 | Серый | Gray | |
| 17 | Светло-пурпурно-синий | Light purple blue | |
| 18 | Розовато-лиловый | Mauve | |
| 19 | Бледно-желто-зеленый | Pale yellow green | |
| 20 | Бледно-голубой | Pale blue | |
| 21 | Сливовый | Plum | |
| 22 | Лососевый | Salmon | |
| 23 | Темно-сине-голубой | Light navy blue | |
| 24 | Барвинок | Periwinkle | |
| 25 | Темно-синий | Navy blue | |
| 26 | Фуксия* | Fuchsia* | |
| 27 | Желтый | Yellow | |
| 28 | Цвет морской волны | Aqua | |
| 29 | Пурпурный | Purple | |
| 30 | Коричнево-малиновый | Maroon | |
| 31 | Сине-зеленый | Teal | |
| 32 | Синий | Blue | |
| 33 | Небесно-голубой | Vivid sky blue | |
| 34 | Бледно-голубой | Pale blue | |
| 35 | Бледно-зеленый | Pale green | |
| 36 | Светло-желтый | Light yellow | |
| 37 | Сине-голубой | Shade of blue | |
| 38 | Бледно-пурпурно-розовый | Pale magenta pink | |
| 39 | Светло-сиреневый | Light lilac | |
| 40 | Оранжево-персиковый | Peach-orange | |
| 41 | Светло-синий | Light blue | |
| 42 | Светло-бирюзовый | Light turquoise | |
| 43 | Желто-зеленый | Yellow green | |
| 44 | Желтый мандарин | Tangerine yellow | |
| 45 | Сигнальный оранжевый | Safety orange | |
| 46 | Оранжевый | Orange | |
| 47 | Темно-сине-серый | Dark blue gray | |
| 48 | Светло-серый | Light gray | |
| 49 | Полуночно-синий | Midnight blue | |
| 50 | Зеленая трава | Green grass | |
| 51 | Темно-зеленый | Dark green | |
| 52 | Темно-коричневый | Dark brown | |
| 53 | Темно-красный | Dark red | |
| 54 | Розовато-лиловый | Mauve | |
| 55 | Синий пигмент | Blue pigment | |
| 56 | Темный уголь | Dark charcoal |
* Вместо термина Фуксия (Fuchsia) можно использовать термин Маджента (Magenta), так как в RGB-модели Фуксия и Маджента являются одним и тем же цветом.
Обратите внимание, что в стандартной палитре Excel из 56 цветов есть повторяющиеся оттенки. Наименования цветов (по их HEX-кодам) подобраны, главным образом, по статьям, опубликованным в Википедии.
RGB и HEX коды оттенков палитры
RGB и HEX коды оттенков 56-цветной палитры Excel:
| Индекс | Код HEX | Код RGB | Оттенок |
|---|---|---|---|
| 1 | #000000 | RGB(0, 0, 0) | |
| 2 | #ffffff | RGB(255, 255, 255) | |
| 3 | #ff0000 | RGB(255, 0, 0) | |
| 4 | #00ff00 | RGB(0, 255, 0) | |
| 5 | #0000ff | RGB(0, 0, 255) | |
| 6 | #ffff00 | RGB(255, 255, 0) | |
| 7 | #ff00ff | RGB(255, 0, 255) | |
| 8 | #00ffff | RGB(0, 255, 255) | |
| 9 | #800000 | RGB(128, 0, 0) | |
| 10 | #008000 | RGB(0, 128, 0) | |
| 11 | #000080 | RGB(0, 0, 128) | |
| 12 | #808000 | RGB(128, 128, 0) | |
| 13 | #800080 | RGB(128, 0, 128) | |
| 14 | #008080 | RGB(0, 128, 128) | |
| 15 | #c0c0c0 | RGB(192, 192, 192) | |
| 16 | #808080 | RGB(128, 128, 128) | |
| 17 | #9999ff | RGB(153, 153, 255) | |
| 18 | #993366 | RGB(153, 51, 102) | |
| 19 | #ffffcc | RGB(255, 255, 204) | |
| 20 | #ccffff | RGB(204, 255, 255) | |
| 21 | #660066 | RGB(102, 0, 102) | |
| 22 | #ff8080 | RGB(255, 128, 128) | |
| 23 | #0066cc | RGB(0, 102, 204) | |
| 24 | #ccccff | RGB(204, 204, 255) | |
| 25 | #000080 | RGB(0, 0, 128) | |
| 26 | #ff00ff | RGB(255, 0, 255) | |
| 27 | #ffff00 | RGB(255, 255, 0) | |
| 28 | #00ffff | RGB(0, 255, 255) | |
| 29 | #800080 | RGB(128, 0, 128) | |
| 30 | #800000 | RGB(128, 0, 0) | |
| 31 | #008080 | RGB(0, 128, 128) | |
| 32 | #0000ff | RGB(0, 0, 255) | |
| 33 | #00ccff | RGB(0, 204, 255) | |
| 34 | #ccffff | RGB(204, 255, 255) | |
| 35 | #ccffcc | RGB(204, 255, 204) | |
| 36 | #ffff99 | RGB(255, 255, 153) | |
| 37 | #99ccff | RGB(153, 204, 255) | |
| 38 | #ff99cc | RGB(255, 153, 204) | |
| 39 | #cc99ff | RGB(204, 153, 255) | |
| 40 | #ffcc99 | RGB(255, 204, 153) | |
| 41 | #3366ff | RGB(51, 102, 255) | |
| 42 | #33cccc | RGB(51, 204, 204) | |
| 43 | #99cc00 | RGB(153, 204, 0) | |
| 44 | #ffcc00 | RGB(255, 204, 0) | |
| 45 | #ff9900 | RGB(255, 153, 0) | |
| 46 | #ff6600 | RGB(255, 102, 0) | |
| 47 | #666699 | RGB(102, 102, 153) | |
| 48 | #969696 | RGB(150, 150, 150) | |
| 49 | #003366 | RGB(0, 51, 102) | |
| 50 | #339966 | RGB(51, 153, 102) | |
| 51 | #003300 | RGB(0, 51, 0) | |
| 52 | #333300 | RGB(51, 51, 0) | |
| 53 | #993300 | RGB(153, 51, 0) | |
| 54 | #993366 | RGB(153, 51, 102) | |
| 55 | #333399 | RGB(51, 51, 153) | |
| 56 | #333333 | RGB(51, 51, 51) |
RGB-коды можно использовать в VBA Excel наряду с индексами цветов стандартной палитры, а HEX-коды — в HTML.
sitesaid.ru
Для настройки цвета фона формы и расположенных в форме элементов можно использовать диалоговое окно настройки цветовой палитры .
Для вызова этого диалогового окна необходимо заменить код в событии click кнопки cbcontrol приложения MySmallProject на следующий:
Private Sub cbControl_Click()
cdlMyDialog.ShowColor
End Sub
Расширенное диалоговое окно настройки цветовой палитры можно создать с помощью объекта CommonDialog.
Значения для метода Flags диалогового окна цветовой палитры
Функции цвета
Функция RGB возвращает числовое представление цвета (тип возвращаемого значения при этом long) в соответствии с интенсивностью трех цветовых составляющих:
R (Red— красный),
G (Green — зеленый)
В (Blue — синий).
Интенсивность этих трех основных цветов задается шкалой чисел от О до 255. Синтаксис этой функции такой:
RGB (Red, Green, Blue)
где:
Red — интенсивность красного цвета от 0 до 255;
Green — интенсивность зеленого цвета от 0 до 255;
Blue — интенсивность синего цвета от 0 до 255.
Для примера в табл. 11.2 показаны часто используемые цвета, разложенные по интенсивностям RGB-цветов.
Цвета в RGB-представлении
Чтобы сделать фон формы например синим, необходимо установить в свойстве BackColor формы следующее значение: Form.BackColor = RGB (0,0,255) Функция QBColor предназначена для облегчения работы о стандартными цветами, возвращающая числовое представление одного из цветов, показанных в таблице.
Цвета, возвращаемые функцией QBColor
Синтаксис этой функции:
QBColor (NumberColor)
где NumberColor — числовое значение (номер цвета).
Чтобы установить для формы к примеру синий цвет фона надо написать следующий код:
Form.BackColor = QBColor(1)
Управление цветом
Цвет формы и элементов управления устанавливаются свойствами ForeColor и BackColor. Свойство ForeCoior задает цвет текста, а BackColor устанавливает цвет фона.
Во время разработки приложения эти свойства можно установить в окне Properties (Свойства) объекта, вызвав диалоговое окно настройки цвета.
Для этого необходимо выделить свойство и нажать на кнопку со стрелкой в правом столбце свойства. Как видно из рисунка, это диалоговое окно состоит из двух вкладок: Palette (Палитра) и System (Системные).
На вкладке Palette можно установить произвольные цвета из палитры, на вкладке System можно выбрать цвет из списка цветовой схемы Windows, которая устанавливается в панели управления Windows вызовом окна настройки Свойства: Display. При использовании цветовой схемы необходимо иметь в виду, что при изменении настройки цветовой схемы Windows соответственно изменятся и цвета приложения.
В режиме выполнения приложения свойства ForeColor и BackColor можно установить простым присвоением, используя функции цвета или встроенные константы Visual Basic
Цвета консоли
Стандартные цвета консоли (TextWindow)
Всего существует 16 доступных цветов для фона и 16 — для текста (256 сочетаний), каждый из 16 цветов обозначается в MS Small Basic английскими названиями, также их можно задавать числовыми значениями от 0 до 15:
Чёрный — «Black» — 0
Тёмно-синий — «DarkBlue» — 1
Тёмно-зелёный — «DarkGreen» — 2
Тёмно-голубой — «DarkCyan» — 3
Тёмно-красный — «DarkRed» — 4
Тёмно-малиновый — «DarkMagenta» — 5
Тёмно-жёлтый — «DarkYellow» — 6
Серый — «Gray» — 7
Тёмно-серый — «DarkGray» — 8
Синий — «Blue» — 9
Зеленый — «Green» — 10
Голубой — «Cyan» — 11
Красный — «Red» — 12
Малиновый (Пурпурный) — «Magenta» — 13
Желтый — «Yellow» — 14
Белый — «White» — 15
Задавать цвет можно как в виде английского названия, так и в виде числа, что продемонстрировано в следующем примере.
Вот простенькая программа, демонстрирующая возможности консоли (текстового окна) по выводу различных цветов. На экране в столбцах меняется цвет текста от 0 до 15 слева направо, а в строках — цвет фона — также от 0 до 15 сверху вниз.
Вы можете скопировать указанный ниже код программы в IDE MS Small Basic и запустить: