ГДЗ Информатика 9 класс. Учебник [Бондаренко А.А., Ластовецкий В.В.] 2017
15.02.2019,
9 Клас / Інформатика,
3 972,
0
§ 37. Визуализация элементов табличной величины с помощью графических примитивов (Страница 205)
Вопросы для самопроверки
1. Опишите порядок создания массива автофигур типа TShape.Откройте среду Lazarus, создайте новый проект, в котором будут отображаться в виде линейчатой диаграммы данные из таблицы.
Разработайте интерфейс программы согласно скриншоту.
На форму добавьте компонент Panel как контейнер для компонентов Image и Shape. Разместите на панели компонент Image и 4 компонента Shape (по количеству элементов в массиве). Для создания легенды диаграммы на форму добавим 4 компонента Label.
Объекты TShape принадлежат к типу данных TShape. В разделе описания глобальных переменных опишем следующим образом.
var
Form1: TForm1;
sh: array [1..4] of TShape; // массив типа TShape
implementation
Теперь можно работать с автофигурами, обращаясь к ним, как к элементам массива sh [i]. Аналогично создадим массив типа TLabel для объектов Label.
var
Form1: TForm1;
sh: array [1..4] of TShape; // массив типа TShape
lb: array [1..4] of TLabel; // массив типа TLabel
implementation
Заполнение массивов будет происходить при создании формы.
procedure TForm1.FormCreate (Sender: TObject);
begin
Image1.Canvas.Brush.Color = clWhite; // устанавливаем цвет области
Image1.Canvas.FillRect (Image1.ClientRect) // построениядиаграммы
{Заполнения массива типа TShape}
sh [1] = Shape1; {1-й элемент массива sh - фигура с именем Shape1}
sh [2] = Shape2; sh [3] = Shape3; sh [4] = Shape4;
{Заполнения массива типа TLabel}
lb [1] = Label1; lb [2] = Label2; lb [3] = Label3; lb [4] = Label4;
end;
2. Какой графический метод используют для построения гистограммы круговой диаграммы?
Диаграммы можно создавать, программируя чертежи графических примитивов (линия, прямоугольник, сектор) графическими методами полотна Canvas. Для построения столбцов гистограммы (столбчатой диаграммы) используем графический метод Canvas.Rectangle (x1, y1, x2, y2).
В круговой диаграмме каждому элементу массива соответствует сектор, градусная мера которого пропорциональна величине элемента.
3. Опишите алгоритм построения круговой диаграммы.
Занесены в массив K [1..4] of Integer. Областью построения диаграммы является полотно элемента управления Image1.
const K: array [1..4] of Integer = (2, 6, 15, 7);
cl: array [1..4] of TColor = (clBlue, clGreen, clYellow, clRed) // массив цветов
var
i: Integer; sum, ps: Real; // градусная мера сектора
x0, y0: Integer; // координаты центра диаграммы
wx, wy: Integer; // координаты первой точки
x, y: Integer; // координаты следующих точек
r: Integer; // радиус
begin
Image1.Canvas.Brush.Color = clWhite;
Image1.Canvas.FillRect (Image1.ClientRect)
sum: = 0; For i: = 1 to 4 do sum = sum + K [i]; {Вычисление координат центра диаграммы}
x0 = Image1.Width div 2;
y0 = Image1.Height div 2;
r = Image1.Width div 2; // вычисление радиуса
wx = x0 + r; wy = y0; // первая точка ps: = 0; For i: = 1 to 4 do
With Image1.Canvas do
begin
ps = ps + 2 * pi * K [i] / sum; // угол сектора
x = Round (x0 + r * cos (ps))
y = Round (y0 + r * sin (ps))
Brush.Color = cl [i];
Pie (x0 - r, y0 - r, x0 + r, y0 + r, x, y, wx, wy)
wx = x; wy = y;
end;
end;
Якщо помітили в тексті помилку, виділіть її та натисніть Ctrl + Enter