storinka.click » Інформатика » Визуализация элементов табличной величины с использованием графических примитивов
Інформація про новину
  • Переглядів: 740
  • Дата: 22-02-2018, 05:58
22-02-2018, 05:58

Визуализация элементов табличной величины с использованием графических примитивов

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


1. Где и с какой целью используют диаграммы?

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

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

ВИЗУАЛИЗАЦИЯ ЭЛЕМЕНТОВ ТАБЛИЧНОЙ ВЕЛИЧИНЫ

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

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

Рассмотрим табличную величину из 5 элементов. Разместим на форме 5 компонентов Фигура и установим для каждого из них значение stRectangle свойства Shape. При выполнении обработчика события Click для кнопки будут прочитаны целые числа многострочного текстового поля, из них образована табличная величина из 5 элементов и значения этих элементов будут присвоены высотам соответствующих прямоугольников. Результат выполнения этой процедуры приведен на рисунке 6.5.

Можно рассмотреть табличную величину b из 5 элементов типа TShape, значениями которых будут компоненты Фигура, расположенные на форме. Значения этих элементов определим командами присвоения:

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

Соответствующая процедура будет выглядеть следующим образом:

Если введенные в многострочное текстовое поле числа большие, то и соответственно большими будут и высоты соответствующих прямоугольников. Тогда некоторые прямоугольники могут не вмещаться в окне (рис. 6.6).


Загрузка...

В таком случае, если возможно, необходимо увеличить размеры окна так, чтобы все прямоугольники полностью были видны. Если же размеры окна по каким-либо причинам при выполнении проекта изменить нельзя, то следует выполнить масштабирование высот прямоугольников.

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

Приводим текст процедуры с использованием коэффициента масштабирования:

Обращаем ваше внимание: поскольку высота прямоугольника может быть только целым числом, а в результате операции деления возможно дробное число, то в команде b[i].Height := round(a[i]*100/max) выполнено округление с использованием функции round (англ. round — круглый).

На рисунке 6.7 представлен результат выполнения процедуры с масштабированием для тех же чисел, что и предыдущее выполнение без масштабирования.

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

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

Для того чтобы визуализация была более похожа на традиционный вид диаграммы, для ординат левой нижней и правой верхней вершин прямоугольников использованы числа Forml.Height и Form1.Height-a[i]. Переменная l использована для изменения абсцисс левой нижней и правой верхней вершин прямоугольников. Ее начальное значение 5 (можно было бы взять и другое значение), ширина прямоугольника 20 (поэтому абсциссы левой нижней и правой верхней вершин прямоугольников равны соответственно l и l + 20), расстояние между прямоугольниками 5 (поэтому в цикле значение I увеличивается на 25).

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

Задача. Многострочное текстовое поле содержит 8 целых чисел. Создать обработчик события Click для кнопки, выполнение которого закрасит в зеленый цвет фигуры, для которых соответствующие значения положительные, в красный цвет — фигуры, для которых соответствующие значения отрицательные, и в желтый цвет — фигуры, для которых соответствующие значения равны нулю.


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

2. Разместите на форме (рис. 6.9):

• многострочное текстовое поле высотой 150;

• кнопку с текстом Изобразить;

• 8 компонентов Фигура и установите для каждого из них значение stTriangle свойства Shape и значение 80 свойства Height.

Рис. 6.9. Многострочное текстовое поле, компоненты Фигура и кнопка на форме

3. Сохраните проект в папке с именем Упражнение 6.3, созданной в вашей папке.

4. Создайте обработчик события Click для кнопки. Введите следующий текст процедуры:

5. Сохраните обновленную версию проекта.

6. Запустите проект на выполнение.

7. Введите в многострочное текстовое поле числа: 2; 5; -11; 56; -6; 0; 3; 0. Выберите кнопку Изобразить. Проанализируйте полученный результат (рис. 6.10).

8. Удалите числа из многострочного текстового поля и введите свой набор целых чисел. Выберите кнопку Изобразить. Проанализируйте полученный результат.

9. Закройте окно выполнения проекта.

10. Установите для каждого компонента Фигура значение stCircle свойства Shape и значение 60 свойств Height и Width.

11. Сохраните обновленную версию проекта.

12. Запустите проект на выполнение.

13. Введите свой набор целых чисел в многострочное текстовое поле. Выберите кнопку Изобразить. Проанализируйте полученный результат.

14. Закройте окно выполнения проекта.

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

Процедура для формирования двух табличных величин из 5 элементов: а — из целых чисел, Ъ — из компонентов Фигура и визуализация чисел фигурами соответствующих высот:

Фрагмент процедуры масштабирования высот фигур для удобной визуализации больших чисел:

Пример команды для закрашивания фигуры в красный цвет:

Фрагмент процедуры для визуализации чисел с использованием свойства Canvas:


Загрузка...

Дайте ответы на вопросы

1*. Для чего используют визуализацию? Приведите примеры.

2°. Используя какие объекты, можно визуализировать данные табличной величины?

3°. Используя какие команды, можно сформировать массив из 6 компонентов Фигура?

4°. Как в строке var описать табличную величину из 10 компонентов Фигура?

5*. Используя какие команды, можно поставить в соответствие числам из табличной величины фигуры с соответствующими высотами?

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

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

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

9*. Как визуализировать числа, используя свойство Canvas?

Выполните задания

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

2°. Создайте проект, в котором нужно сформировать табличную величину из 8 целых чисел, находящихся в строках многострочного текстового поля, и визуализировать значение каждого элемента кругом соответствующего радиуса. Сохраните проект в папке с именем Задание 6.3.2, созданной в вашей папке.

3*. Создайте проект, в котором нужно сформировать табличную величину из 8 разных действительных чисел, находящихся в строках многострочного текстового поля, и закрасить в зеленый цвет фигуру, которая соответствует наименьшему элементу табличной величины, а в серый — все другие фигуры. Сохраните проект в папке с именем Задание 6.3.3, созданной в вашей папке.

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

5*. Создайте проект, в котором нужно сформировать табличную величину из 6 малых действительных чисел, находящихся в строках многострочного текстового поля, и визуализировать каждое число треугольником соответствующей высоты, предусмотрев масштабирование. Сохраните проект в папке с именем Задание 6.3.5, созданной в вашей папке.

6*. Создайте проект, в котором нужно сформировать табличную величину из 10 действительных чисел, находящихся в строках многострочного текстового поля, и визуализировать каждое число треугольником соответствующей высоты, предусмотрев масштабирование при наличии больших и малых чисел. Сохраните проект в папке с именем Задание 6.3.6, созданной в вашей папке.

7*. Создайте проект, в котором нужно сформировать табличную величину из 5 действительных чисел, находящихся в строках многострочного текстового поля, и визуализировать каждое число кругом соответствующего радиуса, используя свойство Canvas. Сохраните проект в папке с именем Задание 6.3.7, созданной в вашей папке.

8*. Многострочное текстовое поле содержит 6 целых чисел. Создайте обработчик события Click для кнопки, выполнение которого закрасит в синий цвет прямоугольники, для которых соответствующие значения больше чем 100, а в зеленый цвет — прямоугольники, для которых соответствующие значения больше чем 200. Сохраните проект в папке с именем Задание 6.3.8, созданной в вашей папке.

 

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