Иллюстрированный самоучитель по C++ Builder

Холст

C++ Builder позволяет программисту разрабатывать программы, которые работают с графикой. В этой главе рассказывается, что надо сделать, чтобы на поверхности формы появилась картинка, сформированная из графических примитивов, или иллюстрация, созданная в графическом редакторе или полученная в результате сканирования фотографии.


Программа может вывести графику на поверхность формы (или компонента image), которой соответствует свойство canvas (Canvas – холст для рисования). Для того чтобы на поверхности формы или компонента image появилась линия, окружность, прямоугольник или другой графический элемент (примитив), необходимо к свойству Canvas применить соответствующий метод (табл. 3.1).

Например, оператор Forml › Canvas › Rectangle(10.10.50, 50); рисует на поверхности формы прямоугольник.

Таблица 3.1. Методы вычерчивания графических примитивов.

Метод Действие
LineTo(x,y) Рисует линию из текущей точки в точку с указанными координатами
Rectangle (x1,y1,x2, y2) Рисует прямоугольник, x1, y1 и х2, у2 – координаты левого верхнего и правого нижнего углов прямоугольника. Цвет границы и внутренней области прямоугольника могут быть разными
FillRect (x1,y1,x2,y2) Рисует закрашенный прямоугольник, x1, y1, х2, у2 – определяют координаты диагональных углов
FrameRect(x1,y1,x2,y2) Рисует контур прямоугольника, x1, y1, х2, у2 – определяют координаты диагональных углов
RounRect (x1,y1,x2,y2,x3,y3) Рисует прямоугольник со скругленными углами
Ellipse (x1,y1,x2,y2) Рисует эллипс или окружность (круг), x1, y1, х2, у2 – координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность
Polyline (points, n) Рисует ломаную линию, points – массив типа TPoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной; л – количество звеньев ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми отрезками точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д.

Методы вывода графических примитивов рассматривают свойство canvas как некоторый абстрактный холст, на котором они могут рисовать (Canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек – пикселов. Положение пиксела на поверхности холста характеризуется горизонтальной (X) и вертикальной (Y) координатами. Координаты возрастают сверху вниз и слева направо (рис. 3.1). Левый верхний пиксел поверхности формы (клиентской области) имеет координаты (0, 0), правый нижний – (ciientwidth, clientHeight). Доступ к отдельному пикселу осуществляется через свойство Pixels, представляющее собой двумерный массив, элементы которого содержат информацию о цвете точек холста.

Следует обратить внимание на важный момент. Изображение, сформированное на поверхности формы, может быть испорчено, например, в результате полного или частичного перекрытия окна программы другим окном. Поэтому программист должен позаботиться о том, чтобы в момент появления окна программа перерисовала испорченное изображение. К счастью, операционная система Windows информирует программу о необходимости перерисовки окна, посылая ей соответствующее сообщение, в результате чего возникает событие OnPaint. Событие OnPaint возникает и в момент запуска программы, когда окно появляется на экране в первый раз. Таким образом, инструкции, обеспечивающие вывод графики на поверхность формы, надо поместить в функцию обработки события onPaint.

Иллюстрированный самоучитель по C++ Builder › Графика › Холст
Рис. 3.1. Координаты точек поверхности формы (холста)

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.