Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Работа с графикой




 

Рисовать в программе можно непосредственно на поверхности формы либо выделяя на форме специальные области для рисования – это делается с помощью компонентов Image и PaintBox. Форма и указанные компоненты имеют свойство Canvas (Холст), которое позволяет выводить графику. Например, оператор

Form1->Canvas->Rectangle(20, 20, 60, 60);

рисует на поверхности формы прямоугольник.

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

 

Методы вычерчивания графических примитивов

 

Метод Действие
   
MoveTo(x, y) Перемещает курсор в позицию с заданными координатами (отсчет координат ведется от левого верхнего угла формы или области рисования)
LineTo(x1, y1) Рисует прямую линию от текущей позиции до точки с координатами (x1, y1)
Polyline(points, n) Рисует ломаную линию; points – массив точек перегиба линии (см. пример ниже), n – количество узлов линии
Rectangle(x1, y1, x2, y2) Рисует прямоугольник, x1, y1, x2, y2 – коорди-наты левого верхнего и правого нижнего углов прямоугольника соответственно.
FillRect(x1, y1, x2, y2) Рисует закрашенный прямоугольник
Ellipse(x1, y1, x2, y2) Рисует эллипс. X1, y1, x2, y2 задают координаты прямоугольника, в который вписывается эллипс
   
Arc(x1, y1, x2, y2, x3, y3, x4, y4) Рисует дугу. Параметры x1, y1, x2, y2 определяют эллипс, частью которого является дуга, x3, y3, x4, y4 задают начальную и конечную точку дуги
Pie(x1, y1, x2, y2, x3, y3, x4, y4) Рисует сектор эллипса или круга. Сектор вырезается против часовой стрелки от точки с координатами (x3, y3) до точки (x4, y4)
TextOutA(x, y, текст) Выводит текст, заданный третьим параметром. Параметры x, y определяют начальную точку, с которой начинается вывод

 

Для вывода отдельных точек используется свойство Pixels[x][y] свойства Canvas. Например, следующий оператор выводит на форму точку красного цвета с координатами (50, 50):

Form1->Canvas->Pilxels[50][50]=clRed;

Здесь clRed – именованная константа, соответствующая красному цвету.

Для окрашивания точки в произвольный цвет используется функция RGB(red, green, blue), где параметры red, green, blue задают доли красного, зеленого и синего цвета в составе данного цвета и могут принимать значения в интервале (0, 255), например:

Form1->Canvas->Pilxels[50][50]=RGB(0, 163, 78);

Вышеописанные методы обеспечивают только вычерчивание графических примитивов. Вид графического элемента определяют свойства Pen (Карандаш) и Brush (Кисть) той поверхности (Canvas), на которой рисуется данный элемент. Карандаш и Кисть, являясь свойствами объекта Canvas, в свою очередь представляют собой объекты. Свойства объектов Pen и Brush описаны в следующих далее таблицах.

 

Свойства объекта Pen

Свойство Определяет
Color Цвет линии
Width Толщину линии (в пикселах)
Style Вид линии. psSolid – сплошная; psClear – линия не отображается; psDash – пунктирная с длинными штрихами; psDot – пунктирная с короткими штрихами; psDashDot – чередование длинных и коротких штрихов

 

Свойства объекта Brush

Свойство Определяет
Color Цвет закрашивания замкнутой области
Style Стиль заполнения области. bsSolid – сплошная заливка; bsHorizontal – горизонтальная штриховка; bsVertical – вертикальная штриховка; bsFDiagonal – диагональная штриховка с наклоном вперед; bsBDiagonal – диагональная штриховка с наклоном назад; bsCross – в клетку; bsDiagCross – диагональная клетка

 

Свойство Font Холста позволяет изменять параметры шрифта. В следующей таблице описываются свойства объекта Font.

 

Cвойства объекта Font

 

Свойство Определяет
   
Name Используемый шрифт. Значение свойства – название шрифта, например Arial
Size Размер в пунктах
   
Style Стиль начертания шрифта. Задается следующими константами: fsBold – полужирный; fsItalic – курсив; fsUnderline –подчеркнутый; fsStrikeOut – перечеркнутый
Color Цвет символов. Задается с помощью именованных констант, например clRed, или с помощью функции RGB()

 

Пример 1. Вывод в области рисования PaintBox красной точки и прямой линии черного цвета по нажатии точки.

Запустите новый проект. Поместите на форме проекта компонент PaintBox (вкладка Win32) и кнопку Button. Для функции обработки нажатия кнопки напишите следующй код:

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

 

PaintBox1->Canvas->Pixels[10][10]=clRed;

PaintBox1->Canvas->MoveTo(50,50);

PaintBox1->Canvas->LineTo(100,100);

}

Пример 2. Вывод заштрихованной окружности непосредственно на поверхность формы.

Используем обработчик события OnPaint (перерисовка) формы. Для функции обработки события OnPaint напишите следующий код:

void __fastcall TForm1::FormPaint(TObject *Sender)

{

Form1->Canvas->Ellipse(40,40,140,140);

}

 

 

Пример 3. Использование объектов Pen и Brush.

Поместите на форму еще одну кнопку Button. Для функции обработки щелчка по кнопке напишите следующий код:

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Canvas->Brush->Color=clRed;

Form1->Canvas->Brush->Style=bsCross;

Form1->Canvas->Pen->Width=3;

Form1->Canvas->Ellipse(40,40,140,140);

}

Пример 4. Работа со шрифтом.

Используйте обработчик события создания формы OnPaint. Добавьте код вывода текста в функцию обработки события перерисовки формы:

void __fastcall TForm1::FormPaint(TObject *Sender)

{

Form1->Canvas->Ellipse(40,40,140,140);

Form1->Canvas->Font->Name="Times New Roman";

Form1->Canvas->Font->Size=20;

Form1->Canvas->Font->Color=clBlue;

Form1->Canvas->TextOutA(100, 5, "Примеры работы с графикой в C++ Builder");

}

Сохраните проект и проверьте его работу.

Задание

Написать программу, выводящую на форму график функции у(x) = sin(x)ex/5 в заданном пользователем интервале и с заданным шагом по x.






Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 525 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2487 - | 2350 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.