Студопедия Главная Случайная страница Обратная связь

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

РАБОТА С ГРАФИКОЙ





 

Рисовать в программе можно непосредственно на поверхности формы либо выделяя на форме специальные области для рисования – это делается с помощью компонентов 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-09-04; просмотров: 494. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия