§ 4. Элементы управления для работы с графикой
Сайт: | Профильное обучение |
Курс: | Информационные технологии. 11 класс (Базовый уровень) |
Книга: | § 4. Элементы управления для работы с графикой |
Напечатано:: | Гость |
Дата: | Суббота, 4 Май 2024, 18:56 |
4.1. Элемент управления для вставки рисунка (Image)
При создании приложений нередко возникает необходимость украсить их графическим изображением. В этом случае можно воспользоваться компонентом Image (изображение). На панели компонентов Additional компонент изображение представлен в виде , имя объекта Image. Компонент Image, помещенный на форму, получает имя ImageN, где N — номер 1, 2, 3… (пример 4.1). Некоторые свойства компонента Image приведены в таблице (пример 4.2). Используя cвойство Picture, можно выбрать и загрузить изображение на этапе проектирования приложения. Изображение может быть выбрано в окне редактора изображений (кнопка около свойства Picture в окне инспектора объектов). В этом случае рисунок сохраняется в файле формы и для работы приложения отдельного файла с рисунком не требуется. Компонент поддерживает вставку рисунков в форматах JPEG, PNG, BMP. Если требуется обработка изображения (любые изменения рисунка), то рисунок должен быть сохранен в формате BMP. Для рисунков формата PNG с прозрачным фоном при загрузке сохраняется прозрачность. Свойство Picture компонента Image обладает методами LoadFromFile и SaveToFile, которые используются для загрузки и сохранения изображения. Метод LoadFromFile может быть использован для загрузки изображения при открытии приложения. В этом случае файл с рисунком должен находиться в папке проекта (или нужно прописать полный путь к файлу). Пример 4.3. Создать проект, в котором на форме разместить фоновое изображение. При нажатии на кнопку поверх фонового изображения должно появиться другое изображение. Этапы выполнения задания
|
Пример 4.1. Компонент Image (изображение) на форме: Пример 4.2. Некоторые свойства компонента Image (изображение).
Пример 4.3. Форма на этапе конструирования: Обработчик события OnClick для Button1.
Работающее приложение: До нажатия на кнопку: После нажатия на кнопку: Поскольку горизонтальное положение медведя задается случайным образом, то при каждом нажатии на кнопку медведь будет прорисован в новом месте. |
4.2. Построение графиков функций
Некоторые компоненты в Delphi, такие как форма, компонент Image и др., имеют свойство Canvas (канва, холст). Канва представляет собой область, на которой можно рисовать или выводить на нее растровые изображения. Система координат у канвы такая же, как и для любого компонента в Delphi — точка с координатами (0, 0) расположена в верхнем левом углу, ось ОY направлена вниз. Каждая точка имеет координаты X и Y. Координаты измеряются в пикселях. Важнейшее свойство пикселя — его цвет. Цвет пикселя канвы определяется значением свойства Pixels. Это свойство представляет собой двумерный массив, в котором хранится цвет каждого пикселя. Для задания цвета в Delphi можно воспользоваться несколькими способами (пример 4.4). Класс TCanvas содержит большое количество свойств и методов, позволяющих строить изображения. Многие из методов канвы совпадают с процедурами, которые использовались в библиотеке GraphABC среды программирования PascalABC.Net. Описание этих методов приведено в приложении. Пример 4.5. Создать проект, в котором построить график функции y = xsinx на промежутке, заданном пользователем. Этапы выполнения задания
5.1. Нарисовать оси координат в виде двух перпендикулярных линий, пересекающихся в центре компонента Image. Если в работающем приложении изменить концы промежутка, то график будет порисован поверх уже имеющегося (пример 4.6). Чтобы избежать такой ситуации, перед построением графика нужно очистить компонент. Для этого можно использовать команду: Image1.Picture := Nil; |
Пример 4.4. Способы задания цвета в Delphi:
Пример 4.5. Форма на этапе конструирования: Обработчик события OnClick для компонента Button1.
Работающее приложение: Пример 4.6. Изменение начальных значений концов промежутка: Константа Nil, имеет значение «ничего». Формально — это значение указателя, который не ссылается ни на какой объект.
|
4.3. Построение диаграмм
Основные принципы построения гистограмм и круговых диаграмм разбирались в 10-м классе (примеры 4.6 и 6.8). Используя аналогичные методы канвы диаграммы можно построить в Delphi. Пример 4.7. Создать проект, в котором построить гистограмму по данным массива из n элементов (n = 10). Массив описать с константными данными или добавить данные в массив случайным образом. 1. Поместить на форму компоненты: изображение (Image), и два компонента Button. 2. Изменить свойства Caption у компонента Button1 на «Диаграмма с константными данными». 3. Изменить свойства Caption у компонента Button2 на «Диаграмма со случайными данными». 4. Написать обработчик события OnClick для компонента Button1, в котором диаграмма строится с помощью прямоугольников. 4.1. Найти максимальный элемент в массиве — max. 5. Обработчик для компонента Button2 будет отличаться от обработчика для компонента Button1 только способом получения элементов массива. 5.1. Массив должен быть описан в разделе randomize; |
Пример 4.7. Форма на этапе конструирования: Обработчик события OnClick для компонента Button1:
Работающее приложение: |
4.4. Анимация
Эффект анимации достигается за счет того, что перед взглядом пользователя происходит быстрая смена изображений. Каждый из кадров анимации остается на экране очень небольшой промежуток времени. Для замера интервалов времени можно использовать компонент таймер. Он расположен на панели System и представлен в виде . Компонент Timer, помещенный на форму, получает имя TimerN, где N — номер 1, 2, 3… (пример 4.8). Некоторые свойства компонента Timer приведены в таблице (пример 4.9). Компонент имеет единственный обработчик — OnTimer, в котором описываются действия, происходящие по истечении интервала срабатывания таймера. Пример 4.10. Создать проект, в котором самолет будет пролетать над городом. Этапы выполнения задания
|
Пример 4.8. Компонент таймер на форме: Компонент Timer не виден при работе приложения, поэтому место его размещения на форме не имеет значения. Пример 4.9. Некоторые свойства компонента таймер.
Пример 4.10. Форма на этапе конструирования: Обработчик события OnCreate для формы:
Обработчик события OnClick для компонента Button1:
Обработчик события OnTimer для компонента Timer1:
Работающее приложение: |
Вопросы к параграфу
1. Какой компонент используется для размещения изображений? 2. Какое свойство позволяет загрузить готовое изображение в компонент Image? 3. С помощью какого свойства можно установить прозрачный фон для изображения? 4. Что такое канва? 5. Какой метод канвы позволяет закрасить пиксель? 6. Какой компонент используется для отсчета времени? |
Упражнения
1. Добавьте в проект из примера 4.4. еще одно животное (например, белку). Для размещения белки нужно добавить еще одну кнопку. Местоположение определить случайным образом в верхушке какого-либо дерева.
2. Добавьте в проект 4.5 перечисленные возможности.
2.1. Оси координат со стрелками и подписями.
2.2. Единичный отрезок на оси X.
2.3. График функции y = 0.3x2 – 4x + 2, в той же системе координат, красным цветом.
3. Измените проект из примера 4.8 так, чтобы строилась линейчатая диаграмма (столбики расположены горизонтально).
4*. Измените проект из примера 4.8 так, чтобы значения в массив можно было вводить. Для этого числа необходимо записывать в компонент Edit, считывать строку из чисел и пробелов, выделять цифры и преобразовывать их в числовые значения.
5. Изменить проект из примера 4.10. Заменить самолет на вертолет и добавить кнопку «Стоп», при нажатии на которую вертолет остановится. *После остановки вертолета должен появиться парашют с грузом, который опустится вниз.
6*. Создайте анимацию движения Луны вокруг Земли. Для расчета координат верхнего левого угла Image2, содержащего Луну, можно воспользоваться параметрическим уравнением окружности: x = Rsin(t), y = Rcos(t), где R — радиус, t — параметр, изменяющий свое значение от 0 до 2π.