Similar presentations:
Графика в CBuilder
1.
Графика вCBuilder
2.
Компонент ImageНа панели компонентов Additional компонент изображение представлен в виде
3.
Свойства компонента ImageСвойство
Назначение
Picture
Используется для отображения изображений. На этапе проектирования
изображение может быть выбрано в окне редактора изображений
(кнопка около свойства Picture в окне инспектора объектов)
Autosize
Значение True у этого свойства показывает, что размер компонента
будет автоматически подгоняться под размер помещенной в него
картинки
Stretch
Значение True у этого свойства показывает, что рисунок будет занимать
весь компонент. При этом возможно искажение изображения
Center
Transparent
Proportional
Значение True у этого свойства показывает, что рисунок будет
отцентрирован относительно компонента
Значение True у этого свойства показывает, что изображение становится
прозрачным. Это можно использовать для наложения изображений друг
на друга (действует только для файлов .bmp)
Значение True у этого свойства показывает, что при изменении
размеров изображения будут сохраняться пропорции
4.
КанваНекоторые компоненты в C++ Builder имеют свойство Canvas (канва, холст)
Технология вывода графической информации основывается на приемах
работы с канвой (класс Tcanvas)
Канва представляет собой область, на которой можно рисовать или
отображать изображения
Канвой обладает форма, компонент Image, PaintBox и другие.
Каждая точка канвы имеет координаты X и Y
Система координат канвы такая же как и для любого компонента в CBuilder –
верхний левый угол имеет координаты (0, 0), ось ОY направлена вниз
Координаты измеряются в пикселях
5.
Пиксели канвыВажнейшее свойство пикселя – его цвет
Цвет пикселя канвы определяется значением свойства Pixels. Это свойство
представляет собой двумерный массив, в котором хранится цвет каждого
пикселя канвы
Например
Image1 -> Canvas -> Pixels[x][y] = clBlue;
6.
КарандашСвойство Pen – карандаш позволяет определять цвет, толщину и стиль линий
Свойство
Назначение
Color
Цвет карандаша
Style
Стиль линии определяет, будет ли она
сплошной или пунктирной
Width
Толщина линии в пикселях
7.
Значения свойства Style у карандашаЗначение
psDash
Описание
Сплошная линия (установлено по
умолчанию)
Штриховая линия
psDot
Пунктирная линия
psDashDot
Штрихпунктирная линия
psDashDotDot
Линия, чередующая штрих и два
пунктира
psClear
Отсутствие линии
psSolid
Вид линии
8.
КистьСвойство Brush – кисть предназначено для заполнения областей заданным шаблоном
Кисть обладает свойствами Color, Style
Значение
Шаблон
Значение
bsSolid
bsClear
bsCross
bsDiagCross
bsHorizontal
bsVertical
bsBDiagonal
bsFDiagonal
Шаблон
9.
Шрифт, свойство FontName
Название шрифта, под которым он зарегистрирован в
Windows, например Times New Roman, Courier и прочие
Size
Высота шрифта в пикселях
Style
Стиль шрифта
Возможные значения: fsBold (полужирный); fsltalic (курсив);
fsUnderline (подчеркнутый); fsStrikeOut (зачеркнутый)
Color
Цвет
10.
Методы канвыLineTo(x, y);
MoveTo(x, y);
Rectangle (x1, y1, x2, y2);
Ellipse(x1, y1, х2, y2);
RoundRect( x1, y1, x2, y2, x3, y3);
FloodFill(x, y, Color, FillStyle);
Рисует линию от точки, определенной свойством
PenPos до точки, указанной в качестве параметра
Устанавливает текущую позицию графического
курсора в точку, заданную в параметрах метода
Рисуется прямоугольник
Его внутренняя область заполняется в
соответствии со значением свойства Brush
Рисуется эллипс
Рисуется прямоугольник со скругленными углами
Параметры x3, y3 определяют ширину и высоту
эллипса для скругления углов
Заливка области холста, прилегающей к точке,
заданной в качестве параметра (для заполнения
заданным в Brush цветом)
11.
Методы канвыArc(x1,y1,х2,y2,х3,y3,х4,y4);
Рисование части эллипса
Pie(x1,y2,x2,y2,x3,y3,x4,y4);
Рисуется сектор эллипса, расположенный внутри
заданного прямоугольника
Chord(x1,y1,x2,y2,x3,y3,x4,y4);
Polygon(Points: array of TPoint, n);
Polyline(Points: array of TPoint);
TextOut(x, y, "Text");
Рисуется замкнутая фигура (сегмент), созданная
пересечением эллипса и отрезка прямой линии
(хорды)
Рисуется сложная фигура, состоящая из отрезков,
последовательно соединяющих точки,
представленные в виде массива элементов TPoint.
Внутренняя часть фигуры заполняется в соответствии
со значением свойства Brush
Метод аналогичен предыдущему, но заполнения
внутренней части фигуры не происходит
Вывод текста
12.
ЭллипсМетод Ellipse(x1, y1, х2, y2); рисует эллипс, в котором точки (x1, y1) и (x2, y2)
определяют прямоугольник, описывающий эллипс
(x1, y1)
(x2, y2)
13.
Прямоугольник со скругленнымиуглами
Метод RoundRect( x1, y1, x2, y2, x3, y3); рисует прямоугольник со скругленными
углами, в котором точки (x1, y1) и (x2, y2) определяют прямоугольник, а значения x3 и y3
определяют скругление
(x1, y1)
x3
y
3
(x2, y2)
14.
Части эллипсаМетоды Arc, Chord и Pie имеют одинаковые параметры (x1, y1, x2, y2, x3, y3, x4, y4)
Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс, в котором
строится дуга, сегмент или сектор
Начальная точка дуги, сегмента или сектора определяется пересечением эллипса
с прямой, проходящей через его центр и точку (x3, y3)
Конечная точка дуги, сегмента или сектора определяется пересечением эллипса с
прямой, проходящей через его центр и точку (x4, y4)
Рисование происходит от начальной точки до конечной против часовой стрелки
15.
Часть эллипса16.
Метод FloodFillFloodFill(x, y, Color, FillStyle);
Метод FloodFill заполняет замкнутую область на канве, содержащую внутри себя
точку с координатами x, y
Граница области заливки определяется сочетанием параметров Color и FillStyle
Если для параметра Fillstyle определить значение fsBorder, то команда будет
работать так же, как и аналогичная команда в среде BP. Будет закрашена область,
ограниченная цветом Color
Если для параметра Fillstyle определить значение fsSurface, то цвет Color
заменится, а другие цвета внутри области останутся неизменными.
Цвет и стиль, которым будет производиться заливка, определяются свойствами Brush
17.
Загрузка файлаif (OpenPictureDialog1 -> Execute()) {
String S = OpenPictureDialog1 ->FileName;
Label1 -> Caption = S;
Image1 -> Picture -> LoadFromFile(S);
}
Для того, чтобы рисунок можно было редактировать в среде CBuilder, он должен быть
формата BMP
18.
Сохранение файлаif (SavePictureDialog1 -> Execute())
{
Image1 -> Picture -> SaveToFile(SavePictureDialog1 -> FileName);
}
19.
Пути к файламOpenPictureDialog1 -> InitialDir =
ExtractFilePath(ParamStr(0));
SavePictureDialog1 -> InitialDir =
OpenPictureDialog1 -> InitialDir;
20.
Краткое руководство по работе с классомTCanvas для начинающих - C++ Builder