Лабораторная работа №22 Графика.
C++ Builder позволяет программисту разрабатывать программы, которые работают с графикой. В лабораторной работе рассказывается, что надо сделать, чтобы на поверхности формы появилась картинка, сформированная из графических примитивов, или иллюстрация, созданная в графическом редакторе или полученная в результате сканирования фотографии. По мере изучения графических возможностей Builder необходимо выполнить соответствующее задание.
Холст
Программа может вывести графику на поверхность формы или специальных компонентов Image, PaintBox, Bitmap и некоторых других. Все они имеют свойство Сanvas (Canvas - холст). Для того чтобы на поверхности формы или компонента Image появилась линия, окружность, прямоугольник или другой графический элемент (такие элементы называют примитивными или просто примитивами), необходимо к свойству Canvas применить соответствующий метод (табл.22.1). Например, оператор:
Form1->Canvas->Rectangle(10,10,50, 50);
рисует на поверхности формы прямоугольник.
Таблица 22.1. Методы вычерчивания графических примитивов
Метод | Действие |
MoveTo() | Указание начальной точки от которой пройдет линия |
LineTo(x,y) | Рисует линию из текущей точки в точку с указанными координатами |
Rectangle (x1,y1,x2, y2) | Рисует прямоугольник, x1, y1 и х2, у2 — координаты левого верхнего и правого нижнего углов прямоугольника. Цвет границы и внутренней области прямоугольника могут быть разными |
FillRect (x1,y1,x2,y2) | Рисует закрашенный прямоугольник, x1, y1, х2, у2 — определяют координаты диагональных углов |
FrameRect(x1,y1,x2,y2) | Рисует контур прямоугольника, x1, y1, х2, у2 — определяют координаты диагональных углов |
RounRect (x1,y1,x2,y2,x3,y3) | Рисует прямоугольник со скругленными углами |
Ellipse (x1,y1,x2,y2) | Рисует эллипс или окружность (круг), x1, y1, х2, у2 — координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность |
Polyline (points, n) | Рисует ломаную линию, points - структура типа TPoint. Каждый элемент структуры представляет собой запись, поля х и у которого содержат координаты точки перегиба ломаной; n - количество звеньев ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми отрезками точки, координаты которых находятся в структуре: первую со второй, вторую с третьей, третью с четвертой и т. д. |
Методы вывода графических примитивов рассматривают свойство Сanvas как некоторый абстрактный холст, на котором они могут рисовать (Canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек — пикселов. Положение пиксела на поверхности холста характеризуется горизонтальной (X) и вертикальной (Y) координатами. Координаты возрастают сверху вниз и слева направо (рис. 22.1). Левый верхний пиксел поверхности формы (клиентской области) имеет координаты (0, 0), правый нижний — (clientWidth, clientHeight). Доступ к отдельному пикселу осуществляется через свойство Pixels, представляющее собой двумерный массив, элементы которого содержат информацию о цвете точек холста.
Следует обратить внимание на важный момент. Изображение, сформированное на поверхности формы, может быть испорчено, например, в результате полного или частичного перекрытия окна программы другим окном. Поэтому программист должен позаботиться о том, чтобы в момент появления окна программа перерисовала испорченное изображение. К счастью, операционная система Windows информирует программу о необходимости перерисовки окна, посылая ей соответствующее сообщение, в результате чего возникает событие OnPaint. Событие OnPaint возникает и в момент запуска программы, когда окно появляется на экране в первый раз. Таким образом, инструкции, обеспечивающие вывод графики на поверхность формы, надо поместить в функцию обработки события onPaint.
Рис. 22.1. Координаты точек поверхности формы (холста) |
Листинг 22.1
void __fastcall TForm1::FormPaint(TObject *Sender)
{
for(int i=1;i<=10;i++){
Form1->Canvas->MoveTo(10*i,100);
Form1->Canvas->LineTo(10*i,10);
}
Задание1. Постройте координатную сетку для первого квадранта в диапазоне от 0 до 10 с шагом 1. Установите на форме кнопку. Программу поместите в обработчик кнопки.
- Московский государственный университет
- Компоненты
- Событие и функция обработки события
- Редактор кода
- Система подсказок
- Навигатор классов
- Шаблоны кода
- Справочная система
- Сохранение проекта
- Компиляция
- Предупреждения и подсказки
- Компоновка
- Запуск программы
- Ошибки времени выполнения
- Внесение изменений
- Настройка приложения
- Название программы
- Значок приложения
- Перенос приложения на другой компьютер
- Структура простого проекта
- 2. Задание на выполнение работы
- 1. Электроэнергия.
- 2. Игра «угадай число».
- 3. Гороскоп
- 4. Межгород
- 6. Алфавит
- 7. Палиндром
- 8. Метеослужба
- 9. Статистика
- 10. Кафе.
- Лабораторная работа №22 Графика.
- Карандаш и кисть
- Графические примитивы
- Ломаная линия
- Прямоугольник
- Многоугольник
- Окружность и эллипс
- Лабораторная работа №23 Иллюстрации
- Битовые образы
- Мультипликация
- Метод базовой точки
- Использование битовых образов
- Загрузка битового образа из ресурса программы
- Создание файла ресурсов
- Подключение файла ресурсов
- Int w, h; // размер кадра
- Int с; // номер воспроизводимого кадра
- Лабораторная работа №25
- 1. База данных и субд
- Локальные и удаленные базы данных
- Структура базы данных
- Псевдоним
- Компоненты доступа и манипулирования данными
- Создание базы данных
- Доступ к базе данных Доступ к базе данных обеспечивают компонентыDatabase, Table, Query и DataSource.Значки этих компонентов находятся на вкладкахData Accessи bde(рис. 25.8).
- Отображение данных
- Манипулирование данными
- Выбор информации из базы данных
- Перенос программы управления базой данных на другой компьютер
- 2. Задание на выполнение работы
- Литература