Народна Освіта » Інформатика » Отображение графических объектов средствами языка программирования

НАРОДНА ОСВІТА

Отображение графических объектов средствами языка программирования

1.    Какие графические примитивы можно создавать в графическом редакторе и текстовом процессоре?

2.    Какие свойства графических примитивов вам известны?

3.    Какие общие свойства метки, кнопки и формы вы знаете?

СРЕДСТВА ДЛЯ РИСОВАНИЯ В OBJECT PASCAL

Графические объекты в проектах, разработанных в Lazarus, можно создавать и отображать разными способами. Одним из них является рисование графических примитивов по их координатам на координатной плоскости.

Часть такой координатной плоскости размещена, например, на форме. Начало координат совпадает с верхним левым углом формы. Ось Ох направлена вправо, ось Оу - вниз. Часть координатной плоскости, которая отображается на форме, имеет размеры ширины и высоты формы. На рисунке 6.32 красным цветом обозначена точка с координатами (100, 200).

Для рисования на форме используется ее свойство Canvas (англ. canvas -полотно, канва).

Каждая точка (пиксель) на форме имеет свои координаты и цвет. Координаты могут быть заданы только целыми числами. Цвет можно задать константой типа TColor. Примеры констант и соответствующих им цветов приведены в таблице 6.1.

Константы для цветов в Lazarus

Таблица 6.1

Константа

Цвет

Константа

Цвет

clBlack

Черный

clSilve

Серебристый

clWhite

Белый

clGray

Серый

clRed

Красный

clGreen

Зеленый

clBlue

Синий

clNavy

Темно-синий

clLime

Салатовый

clOlive

Оливковый

Для того чтобы установить для точки с координатами (х, у) некоторый цвет, например красный, необходимо исполнить команду:

Сапуав.Р1хе1в[х, у] := с1Ней;

Для создания графических примитивов можно использовать команды, приведенные в таблице 6.2.

Таблица 6.2

Команды для рисования графических примитивов на координатной

плоскости формы

Команда

Объяснение

Canvas.MoveTo (x, y)

Выбор на форме точки (х, у), с которой будет начинаться рисование линий

Canvas.LineTo (x, y)

Рисование отрезка от последней точки, в которой происходило рисование, до точки (х, у). Последовательное использование нескольких таких команд приведет к рисованию отрезка или ломаной

Canvas.Rectangle (x1, y1, x2, y2)

Рисование прямоугольника, у которого противоположные вершины расположены в точках (х1, у1) и (х2, у2), а стороны параллельны осям координат

Canvas.Ellipse (x1, y1, x2, y2)

Рисование эллипса, вписанного в прямоугольник, у которого противоположные вершины расположены в точках (х1, у1) и (х2, у2), а стороны параллельны осям координат. Прямоугольник при этом не отображается

Canvas.Pie (x1, y1, x2, y2, x3, y3, x4, y4)

Рисование замкнутой фигуры - сектора эллипса. Точки (х1, у1) и (х2, у2) задают прямоугольник, в который вписан эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (х3, у3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (х4, у4). Дуга рисуется против часовой стрелки от начальной до конечной точки (рис. 6.33).

В приведенном на рисунке 6.33 примере эллипс вписан в прямоугольник, имеющий противоположные вершины в точках A (100, 100) и C (500, 300). Сектор эллипса, образован отрезками, соединяющими центр прямоугольника (точку T (300, 200)) с точками M (300, 100) и N (400, 100), и

дугой эллипса, начинающейся в точке M (300, 100), а заканчивающейся при пересечении эллипса с отрезком TN.

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

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

Таблица 6.3

Свойство

Назначение и примеры значений

Значение по умолчанию

Canvas.Pen.Color

Цвет линии контура

Черный

Canvas.Pen.Width

Толщина линий контура

1 пиксель

Canvas.Pen.Style

Стиль линии контура, например, рэБоШ - сплошная линия, рэЛавй -штриховая линия, рэВо1 - пунктирная линия и др.

Сплошная

Canvas.Brush.Color

Цвет заливки внутренней области

Белый

Canvas.Brush.Style

Стиль заливки внутренней области, например, ЬэБоИй - сплошная заливка, ЬэСгоээ - заливка в виде сетки с горизонтальными и вертикальными линиями, ЬэЛгадСтээ - заливка в виде сетки с диагональными линиями и др.

Сплошная

 

Создавая изображение, состоящее из графических примитивов, следует сначала установить значения свойств контура и внутренней области фигуры, после чего отобразить саму фигуру. На рисунке 6.34 показан результат исполнения процедуры создания цветного прямоугольника: procedure Tform1.Button1Click(Sender: Tobject); begin

Canvas.Pen.Color := clGreen; // цвет контура зеленый

Canvas.Pen.Width := 3; // толщина контура 3 пикселя

Canvas.Brush.Color := clRed; // цвет заливки красный

Canvas.Brush.Style := bsDiagCross; (* стиль заливки — сетка с диагональными линиями *)

Canvas.Rectangle (100, 100, 500, 300); (* прямоугольник с противоположными вершинами в точках (100, 100) и (500, 300) и сторонами, параллельными осям координат *) end;

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

КОМПОНЕНТ ФИГУРА ДЛЯ СОЗДАНИЯ ГРАФИЧЕСКИХ ПРИМИТИВОВ

Графические примитивы в проектах Lazarus можно создавать, используя компонент Фигура.

Чтобы разместить Фигуру на форме, следует дважды щелкнуть на кнопке ** TShape (англ, shape - форма, фигура) на вкладке Additional (англ. additional - дополнительный) окна среды Lazarus.

Свойства Фигуры Name, Enabled, Visible аналогичные соответствующим свойствам формы. Как и для формы, значения свойств Фигуры Top, Left, Height и Width можно изменить или на вкладке Свойства, или перетаскиванием.

Компонент Фигура имеет свойства, определяющие цвет и стиль контура и внутренней области (табл. 6.4).

Свойства компонента Фигура

Таблица 6.4

Свойство

Что определяет ее значение

Pen.Color

Цвет контура

Pen.Width

Толщина контура

Pen.Style

Стиль линии контура

Brush.Color

Цвет заливки внутренней области

Brush.Style

Стиль заливки внутренней области

Значение этих свойств можно устанавливать на вкладке Свойства в окне Инспектор объектов или с использованием команды присваивания. Эти значения могут быть такими же, как и для графических примитивов.

 

Кроме того, Фигура имеет свойство Shape, определяющее ее форму. Это свойство может принимать, например, значения: stRectangle - прямоугольник, stCircle - круг, stSquare - квадрат, stDiamond - ромб, stTriangle - треугольник и др. По умолчанию значение этого свойства определяет квадрат с контуром черного цвета толщиной 1 пиксель и сплошной заливкой белого цвета.

На рисунке 6.35 приведен пример изображения, созданного с использованием нескольких объектов Фигура с различными значениями свойств.

ОТОБРАЖЕНИЕ ИЗОБРАЖЕНИЙ ИЗ ВНЕШНИХ ФАЙЛОВ

В проектах можно отображать изображения, хранящиеся во внешних файлах. Для этого предназначен компонент Область изображения. Для его размещения на форме следует дважды щелкнуть на кнопке 9 TImage (англ, image - изображение) на вкладке Additional в окне среды Lazarus.

Свойства Области изображения Name, Enabled, Visible аналогичны соответствующим свойствам формы. Как и для формы, значения свойств Области изображения Top, Left, Height и Width можно изменить или на вкладке Свойства, или перетаскиванием.

Отображение изображения, хранящегося во внешнем файле, определяется значениями таких свойств (табл. 6.5):

Таблица 6.5

Свойства компонента Область изображения

Свойство

Объяснение

Picture

Выбор файла с графическим изображением для отображения в Области изображения

AutoSize

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

Stretch

При значении true изображение, полученное из файла, принимает размеры Области изображения. При значении false изображение сохраняет свои размеры и не зависит от размеров компонента

Proportional

При значении true ширина и высота изображения, полученного из файла, будут изменяться пропорционально при размещении в Области изображения. При значении false ширина и высота изображения могут изменяться не пропорционально

 

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

Графические примитивы можно рисовать по их координатам на координатной плоскости, часть которой размещена на форме. Для этого используется ее свойство Canvas. Каждая точка на форме имеет свои координаты и цвет. Для каждого графического примитива можно задать значения свойств его контура и внутренней области.

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

Можно отображать изображения, содержащиеся во внешних файлах. Для этого предназначен компонент Область изображения.

1*. Как размещена на форме координатная плоскость?

2°. Какое свойство формы используется для рисования графических примитивов?

3*. Какие команды используются для рисования графических примитивов - линия, ломаная, прямоугольник, эллипс, сектор?

4*. Как изменить контур и внутреннюю область графических примитивов?

5°. Какой компонент используется для создания графических примитивов? Как его установить на форме?

6*. Значение каких свойств Фигуры определяют вид ее контура и внутренней области?

7*. Значение какого свойства Фигуры определяет ее форму? Какие значения оно может принимать?

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

9*. Как выбрать файл для отображения в Области изображения?

 

1°. Создайте проект, при исполнении которого после выбора кнопки будет нарисован на форме прямоугольник по образцу, приведеному на рисунке. Сохраните проект в папке с именем Задание 6.8.1, созданной в вашей папке.

2*. Создайте проект, после запуска которого на форме будет нарисовано изображение следующих графических примитивов:

а)    отрезок от точки (10, 10) до точки (200, 100) красного цвета, тип линии - штрих-пунктир, толщина линии - 5;

б)    ломаная из четырех отрезков синего цвета, стиль линии - точками, толщина - 3;

в)    прямоугольник с противоположными вершинами в точках (50, 50) и (250, 150), линии контура - красные сплошные толщиной 1, заливка серебристого цвета, стиль заливки - горизонтальные линии;

г)    эллипс, вписанный в прямоугольник с вершинами в точках (100, 20) и (200, 300), линии контура - желтые пунктирные толщиной 2, заливка салатового цвета, стиль заливки - вертикальные линии;

д)    сектор эллипса, вписанного в прямоугольник с вершинами (50, 50) и (150, 150), начальная точка дуги (150, 100), конечная, -(100, 150), линии контура - белые сплошные толщиной 4, заливка оливкового цвета, стиль заливки - наклонные линии. Сохраните проект в папке с именем Задание 6.8.2, созданной в вашей папке.

3*. Создайте проект, при исполнении которого будет построено изображение из фигур в соответствии с образцом на рисунке. Сохраните проект в папке с именем Задание 6.8.3, созданной в вашей папке.

 

4*. Создайте проект, при исполнении которого из фигур будет построено изображение:

а) грузовика;    ££.9 в) компьютера;

б) робота;    ^ г) ракеты.

Стиль и цвет фигур выберите самостоятельно. Сохраните проект в папке с именем Задание 6.8.4, созданной в вашей папке.

5°. Создайте проект, при исполнении которого на форме будет отображаться изображение, содержащееся в файле, например Глава 6\ Пункт 6.8\задача 6.8.5.jpg. Сохраните проект в папке с именем Задание 6.8.5, созданной в вашей папке.

6*. Создайте проект, при исполнении которого на форме в качестве фона будет размещено изображение из файла, например Глава 6\ Пункт 6.8\задания 6.8.6.jpg. Поверх него из фигур создайте изображение автомобиля. Сохраните проект в папке с именем Задание 6.8.6, созданной в вашей папке.

7*. Разместите на форме кнопку, фигуру, три флажка и поле с раскрывающимся списком. Создайте проект, в котором при выборе кнопки в зависимости от выбранного значения в списке Фигура будет менять форму, принимая значения квадрата, круга или треугольника, а в зависимости от выбранных флажков контур будет иметь толщину 1 или 4, цвет заливки будет желтым или зеленым, стиль заливки - сплошной или диагональные линии. Сохраните проект в папке с именем Задание 6.8.7, созданной в вашей папке.

ПРАКТИЧЕСКАЯ РАБОТА № 13

«Составление и исполнение алгоритмов с графическим отображением данных»

Внимание! Работая с компьютером, соблюдайте правила безопасности и санитарно-гигиенические нормы.

1.    Откройте окно среды Lazarus.

2.    Создайте проект, после запуска которого на исполнение:

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

б)    в нижней части формы будет размещено изображение из файла Глава 6\Пункт 6.8\практическая 13.jpg;

в)    из фигур будет создано изображение дома.

3.    Сохраните проект в папке с именем Практическая 13, созданной в

вашей папке.

4.    Запустите проект на исполнение.

5.    Проанализируйте полученный результат.

6.    Закройте окно исполнения проекта.

7.    Закройте окно среды Lazarus.

 

Это материал учебника Информатика 8 класс Ривкинд

 

Категорія: Інформатика

Автор: admin от 16-10-2016, 02:52, Переглядів: 3591