З дапамогай кампанента Chart (Дыяграма) можна будаваць прыгожыя двух- і трохмерныя дыяграмы на аснове розных даных. Кампанент Chart знаходзіцца на палітры TeeChart STD і намаляваны ў выглядзе . Кампанент Chart, змешчаны на форму, атрымлівае імя ChartN, дзе N — нумар 1, 2, 3… (прыклад 15.5).
Настройка дыяграмы выконваецца з дапамогай рэдактара, які выклікаецца двайной пстрычкай па кампаненце (прыклад 15.6). Параметры адлюстравання дыяграмы ў акне вызначаюцца ў раздзеле Chart, якая складаецца ў сваю чаргу з набору дадатковых падраздзелаў (General, Axis, Title, Legend, Panal, Walls, 3D). Больш падрабязную інфармацыю аб наладзе падраздзелаў можна пачытаць у дадатку.
Кампанент Chart з'яўляецца кантэйнерам аб'ектаў Series — серый даных, якія могуць быць візуалізаваны з дапамогай розных графічных уяўленняў. Уласцівасці серый устанаўліваюцца з дапамогай рэдактара дыяграм ці непасрэдна ў праграмным кодзе. Для дадання серыі выкарыстоўваецца кнопка Add. Затым адбываецца выбар знешняга выгляду дыяграмы (прыклад 15.7) і налада параметраў яе адлюстравання. Пры даданні серыя атрымлівае імя SeriesN, дзе N — нумар 1, 2, 3…
Усе серыі дадаюцца на дыяграму з выпадковымі данымі, таму пры праграмнай апрацоўцы серыю неабходна ачысціць камандай: Series1 -> Clear();
Для дадання даных у серыю выкарыстоўваецца метад Add. Калі даныя павінны адлюстроўвацца ў дэкартавай сістэме каардынат, то выкарыстоўваюць метад AddXY (прыклад 15.8).
Пры выкарыстанні кампанента Chart маштабаванне выконваецца аўтаматычна.
Прыклад 15.9. Стварыць праект, у якім неабходна пабудаваць гістаграму па даным з файла. Для пабудовы дыяграмы варта выкарыстоўваць кампанент Chart.
Этапы выканання задання
- Змясціць на форму кампаненты: дыяграма (Chart) і кнопка (Button).
- Змяніць уласцівасці Caption у кампанента Button1 на «Построить».
- Выбраць тып дыяграмы —гістаграма (Bar).
- Наладзіць наступныя ўласцівасці:
4.1. Змяніць подпіс: Title — замяніць тэкст TChart на Гістаграма. 4.2. Змяніць становішча легенды: Legend → Position — замяніць Right на Bottom.
- Падключыць бібліятэкі для працы з файламі і радкамі.
- Выкарыстоўваць той жа файл, які быў створаны для прыкладу 15.3.
- Напісаць апрацоўшчык падзеі OnClick для кампанента Button1.
7.1. Ачысціць серыю ад выпадковых даных. 7.2. У цыкле счытваць даныя з файла і дадаваць іх да даных серыі.
Прыклад 15.10. Стварыць праект, у якім неабходна пабудаваць графікі функцый y = x cosx і у адной сістэме каардынат. Для пабудовы дыяграмы варта выкарыстоўваць кампанент Chart.
Этапы выканання задання
- Змясціць на форму кампаненты: дыяграма (Chart), два кампанента LabeledEdit і кампанент Button.
- Змяніць уласцівасці Caption у кампанентаў LabeledEdit1, LabeledEdit2 на x0 і xn адпаведна.
- Змяніць уласцівасці Text у кампанентаў LabeledEdit1 і LabeledEdit2 на -30 і 30 адпаведна.
- Змяніць уласцівасці Caption у кампанента Button1 на «Построить».
- Дадаць дзве серыі, для якіх выбраць тып дыяграмы — кропкавая (Point), убраць галачку 3D.
- Змяніць назву серый: кнопка Title — замяніць Series1 на y=x*x+xcosx і Series2 на y=(x(x^2+5)^(1/2) / (x-3)
- Наладзіць наступныя ўласцівасці:
7.1. Уласцівасць Title — выдаліць тэкст TChart. 7.2. Змяніць становішча легенды: Legend → Position — замяніць Right на Bottom. 7.3. Змяніць становішча восей: Axis → Left значэнне Axis → Position — устанавіць 50%; аналагічна для Axis → Bottom змяніць значэнне Axis → Position на 50%. 7.4. Для кожнай серыі: 7.4.1. змяніць памер пункта: Size — 1; 7.4.2. выдаліць мяжу вакол пункта: Border — убраць галачку Visible.
- Напісаць апрацоўшчык падзеі OnClick для кампанента Button1.
8.1. Ачысціць серыі ад выпадковых даных. 8.2. У цыкле з крокам 0.001 вылічаць значэнні функцый і дадаваць даныя ў адпаведнай серыі. 8.3. Для другой серыі дадаць праверку на роўнасць назоўніка нулю. Калі назоўнік па модулю менш 0.01, то варта прапускаць ітэрацыю цыкла.
*Прыклад 15.11. Стварыць праект, у якім неабходна пабудаваць астроіду, зададзеную параметрычнымі ўраўненнямі:
.
Для пабудовы дыяграмы выкарыстоўваць кампанент Chart.
Этапы выканання задання
- Змясціць на форму кампаненты: дыяграма (Chart), кампанент LabeledEdit і кампанент Button.
- Змяніць уласцівасці Caption у кампанента LabeledEdit1 на а.
- Змяніць уласцівасці Text у кампанента LabeledEdit1 на 5.
- Змяніць уласцівасці Caption у кампанента Button1 на «Построить».
- Дадаць серыю, для якой выбраць тып дыяграмы — точечная (Point).
- Наладзіць наступныя ўласцівасці:
6.1. Змяніць подпіс: Title — замяніць тэкст TChart на «Астроида». 6.2. Выдаліць легенду: Legend → Style — убраць галачку Visible. 6.3. Становішча восей і памер пункта ўстанавіць гэтак жа, як і ў прыкладзе 15.10.
- Напісаць апрацоўшчык падзеі OnClick для кампанента Button1.
7.1. Ачысціць серыі ад выпадковых даных. 7.2. У цыкле змяняць параметр t ад 0 да 2p[1] з крокам 0.001. 7.3. Вылічаць значэнні x і y і дадаваць даныя да серыі.
|
Прыклад 15.5. Кампанент Chart на форме:

Прыклад 15.6. Рэдактар дыяграмы:

Прыклад 15.7. Выбар тыпу дыяграмы:


Прыклад 15.8. Метады дадання даных у серыю:
Series1->Add(z, s, color);
Параметры:
z — лік, які адпавядае значэнню даных;
s — подпіс даных;
color — колер.
Series1-> AddXY(x,y,"",color);
Параметры:
x, y — каардынаты пункту, які адлюстроўваецца ў дэкартавай сістэме каардынат;
"" — тут можа быць тэкст подпісу да пункта;
color — колер.
Параметр color можа быць апушчаны. У гэтым выпадку колер элемента дыяграмы вызначаецца наладамі рэдактара.
Прыклад 15.9. Форма на этапе канструявання:

Апрацоўшчык падзеі OnClick для кнопкі.
void __fastcall TForm1::Button1Click (TObject *Sender)
{
ifstream fin("date.txt");
int n;
fin >> n;
Series1 -> Clear();
for(int i = 0; i < n; i++) {
string s;
int d;
fin >> s >> d;
Series1 -> Add(d, s.c_str());
}
}
|
Дадатак у час працы:

Прыклад 15.10. Форма на этапе канструявання:

Змена назвы серыі:

Апрацоўшчык падзеі OnClick для кнопкі.
void __fastcall TForm1::Button1Click TObject *Sender)
{
double x0 = StrToFloat
(LabeledEdit1 -> Text);
double xn = StrToFloat
(LabeledEdit2 -> Text);
Series1 -> Clear();
Series2 -> Clear();
for (double x = x0; x <= xn; x += 0.001) {
double y = x * x + x * cos(x);
Series1 -> AddXY(x, y, "", clBlue);
if ( abs(x - 3) < 0.01 ) continue;
double y1 = x * sqrt(x * x + 5) / (x - 3);
Series2 -> AddXY(x, y1, "", clRed);
}
}
|
Дадатак у час працы:

Прыклад 15.11. Форма на этапе канструявання:

Апрацоўшчык падзеі OnClick для кнопкі.
void __fastcall TForm1::Button1Click (TObject *Sender)
{
double a = StrToFloat
(LabeledEdit1 -> Text);
Series1 -> Clear();
for (double t = 0;
t <= 2 * acos(-1.);
t += 0.001) {
double x = a * cos(t) * cos(t) * cos(t);
double y = a * sin(t) * sin(t) * sin(t);
Series1 -> AddXY(x, y, "", clRed);
}
}
|
Дадатак у час працы:

|