Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_Графика.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
986 Кб
Скачать
☆

§4.4 Компонент Chart2, построение графиков

Для быстрого построения диаграмм используется компонент Chart, расположенный на панели Additional. Рассмотрим использование этого компонента на примере.

Допустим, требуется построить два графика функций параболы у=3•x2 - 6•x-100 или гиперболы y=1.3• x3 -6•x2 +2•x-5.

На форму переносятся два компонента RadioButton, которые будут организовывать выбор вида графика, компонент Chart , на котором будет строиться график.

На рис.4.10 показана форма с нанесенными на нее объектами.

Рисунок 4.10 –Форма для построения графиков функций

На Форме могут быть построены одновременно два графика или один из выбранных. Для выбора типа диаграммы следует щелкнуть правой кнопкой мыши внутри компонента Chart. Выбрать подменю «Edit Chart…». Для добавления серии (графика или диаграммы) выбирается пункт «Add»(рис. 4.10, окно 1) , кнопка «Delete » используется для удаления ненужных серий, «Title » для ввода заголовка, «Clone» для создания копии графика и кнопка «Change » для изменения внешнего вида диаграммы (рис. 4.10, окно 2).

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

procedure TForm1.RadioButton1Click(Sender: TObject);

var x:integer; color:tcolor;

begin

if RadioButton1.Checked=true then {Если выбрана парабола}

begin

color:=rgb(128,128,128);

Chart1.Title. font.size:=12; {Размер шрифта заголовка}

Chart1.Title. font.color:=rgb(255,255,255); {Цвет шрифта заголовка}

Chart1.Title. brush.color:=rgb(0,255,0); {Оформление заголовка}

Chart1.Title. brush. style:=bscross; Chart1.Title.Text.add('Парабола'); {Текст заголовка}

for x := -10 to 10 do {Цикл для расчета значений у}

Series1.AddXY( x, 3*x*x-6*x-100, clBlack);

end; end;

Рассмотрим подробнее использование функции AddXY (x, y, цвет). В качестве первого параметра задается переменная. Которая будет откладываться по оси Х, в качестве второго – зависимость, описывающая У, затем указывается цвет графика.

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

for x := -10 to 10 do

Series2.AddXY( x, 1.3*sqr(x)*x -6*x*x+2*x-5, clblue);

На рис. 4.11 показан результат построения обоих графиков. Как видно, парабола построена по точкам, для гиперболы выбран линейный график.

Рисунок 4.11 – Графики функций

На рис.4.10 показано окно редактирования диаграммы (Editing Chart). Нами была рассмотрена первая страница «Series». Страница «General » используется для задания внешнего вида прямоугольной области, в которой строится график : наличие полос прокрутки, размеров и полей по краям графика.

Страница «Axis » задает расположение осей, надписи на них, шаг откладываемых делений (рис.4.12, а), минимальное и максимальное значения.

Р исунок 4.12 – Модификация диаграмм

а) изменение осей; б) изменение параметров отдельных серий

Страница «Titles » используется для задания заголовка и вариантов его оформления. Страница «Legend » позволяет задавать легенду графика, «Panel» - изменять внешнее оформление прямоугольника, в котором строится график, последующие три страницы также определяют внешнее оформление графика.

Кроме вкладки «Chart », которая задает стиль диаграммы в целом, при редактировании можно изменять внешний вид каждой серии отдельно (вкладка «Series»), рис.4.12б.

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

После ввода данных в таблицу, задается построение серий с помощью процедуры.

procedure TForm1.N3Click(Sender: TObject);

var i,n:integer;

begin

n:=9; {Количество данных в каждой серии}

i:=1;

for i:= 1 to n do

begin {Задание значений по осям Х и У}

form1.Series1.AddXY(strtofloat(StringGrid1.Cells[i,0]),strtofloat(StringGrid1.Cells[i,1]));

form1.Series2.AddXY(strtofloat(StringGrid1.Cells[i,0]),strtofloat(StringGrid1.Cells[i,2]));

form1.Series3.AddXY(strtofloat(StringGrid1.Cells[i,0]),strtofloat(StringGrid1.Cells[i,3]));

end;

end;

Как видно из приводимого текста программы, данные для оси Х считываются из нулевой строки таблицы, это года от 1994 по 2002. Первая серия строится на основании данных первой строки таблицы (ВВП), вторая соответственно из второй (Доходы) и аналогично третья серия.

Рисунок 4.13 – Построение серий на основании информации таблиц

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]