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

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

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





 

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




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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

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