Студопедия — РАБОТА С ГРАФИКОЙ
Студопедия Главная Случайная страница Обратная связь

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

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






 

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



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

Этапы и алгоритм решения педагогической задачи Технология решения педагогической задачи, так же как и любая другая педагогическая технология должна соответствовать критериям концептуальности, системности, эффективности и воспроизводимости...

Понятие и структура педагогической техники Педагогическая техника представляет собой важнейший инструмент педагогической технологии, поскольку обеспечивает учителю и воспитателю возможность добиться гармонии между содержанием профессиональной деятельности и ее внешним проявлением...

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

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

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

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