Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2-semestr / 11-ameliy_jif

.pdf
Скачиваний:
0
Добавлен:
20.09.2026
Размер:
268 Кб
Скачать
☆
11-ámeliy jumıs. GUI ortalıǵında grafikalıq imkaniyatlar. GUI
ortalıǵında grafikalıq jaǵday, súwretlerdi hám funkciya grafiklerin sızıw
(Chart).
Jumıstıń maqseti: Windows Forms (C++/CLI) ortalıǵında GDI+
járdeminde súwretler (Images) menen islesiw hám `Chart` komponenti arqalı maǵlıwmatlardı vizuallastırıw (grafikler sızıw) kónlikpelerin qáliplestiriw. Súwretlerdi júklew, masshtablaw, aylandırıw hám saqlaw usılların úyreniw. Statistikalıq maǵlıwmatlardı (mısalı, matematika funkciyaları yamasa esabatlar)
Teoriyalıq bólim:
Súwretler menen islesiw (GDI+) GDI+ (System::Drawing) kitapxanası `Image` hám `Bitmap` klassları
arqalı rasterli (piksel) súwretlerdi (JPG, PNG, BMP) basqarıwǵa imkaniyat
beredi.
`Image` klassı: Súwretler ushın abstrakt tiykar klass. Onıń
`FromFile()` metodı arqalı fayldan súwret júklewge boladı.
`Bitmap` klassı: Pikseller menen tikkeley islesiw ushın arnalǵan
klass. `GetPixel(x, y)` hám `SetPixel(x, y, color)` metodları arqalı hárbir pikseldiń reńin alıwǵa yamasa ózgertiwge boladı (mısalı,
filtrler jaratıw ushın).
Súwretti sızıw: `Graphics` klassınıń `DrawImage(image, x, y,
width, height)` metodı súwretti formaǵa yamasa basqa
komponentke (`PictureBox`) sızadı.
Chart komponenti (Maǵlıwmatlardı vizuallastırıw)
Windows Forms-ta maǵlıwmatlardı grafikalıq túrde kórsetiw ushın
`Chart` (System::Windows::Forms::DataVisualization::Charting) komponenti
qollanıladı. Bul komponent júdá kúshli hám kóp funkciyalı bolıp, ol Excel
grafiklerine uqsas imkaniyatlardı beredi.
Tiykarǵı elementleri:
`ChartAreas`: Grafiktiń sızılıw maydanı. Bir Chart ishinde bir
neshe maydan bolıwı múmkin.
`Series` (Seriyalar): Maǵlıwmatlar jıynaǵı. Hárbir seriya bir grafikti
(mısalı, "Satılıw" sızıǵı) ańlatadı. `ChartType` qásiyeti arqalı onıń
túrin (`Line`, `Column`, `Pie`, `Spline`) tańlawǵa boladı.
`Points` (Noqatlar): Seriyanıń ishindegi maǵlıwmat noqatları (X,
Y). Olar `series->Points->AddXY(x, y)` metodı arqalı qosıladı.
`Legends`: Grafiktiń túsindirmesi (Legenda). `Titles`: Grafiktiń bas beti.
`Chart` komponenti matematikalıq funkciyalardı (y = sin(x)), statistikalıq
esabatlardı hám real waqıt rejimindegi processlerdi (mısalı, temperatura
ózgeriwi) kórsetiw ushın júdá qolaylı.
ÁMELIY BÓLIM:
Súwretler hám Chart penen islesiw mısalları. 1-mısal: Súwretti júklew hám kórsetiw Formaǵa `PictureBox` hám `Button` qoyamız. Kod (Button_Click):
private: System::Void btnLoad_Click(...) {
// Fayldı tańlaw dialogın ashıw
OpenFileDialog^ dialog = gcnew OpenFileDialog();
dialog->Filter = "Súwretler|*.jpg;*.png;*.bmp";
if (dialog->ShowDialog() == System::Windows::Forms::DialogResult::OK) {
// Súwretti fayldan júklew
Image^ img = Image::FromFile(dialog->FileName);
// PictureBox-qa qoyıw
pictureBox1->Image = img;
// Súwretti qutıǵa sıydırıw (Stretch)
pictureBox1->SizeMode = PictureBoxSizeMode::StretchImage;
}
}
Túsindirme: `OpenFileDialog` paydalanıwshıǵa kompyuterden fayl tańlaw imkaniyatın beredi. `Image::FromFile` metodı tańlanǵan fayldı yadqa júkleydi.
`SizeMode::StretchImage` súwretti qutınıń ólshemine sáykeslep sozadı.
2-mısal: Matematikalıq funkciya grafigi (Sinus) Formaǵa `Chart` komponentin qoyamız. Kod (Form_Load):
private: System::Void MyForm_Load(...) {
// Grafikti tazalaw
chart1->Series[0]->Points->Clear();
// Grafiktiń túrin "Spline" (Iyilgen sızıq) qılıw
chart1->Series[0]->ChartType = System::Windows::Forms::DataVisualization::Charting::SeriesChartType ::Spline;
// Sinus grafigin sızıw (-10 dan 10 ǵa shekem)
for (double x = -10; x <= 10; x += 0.1) {
double y = Math::Sin(x);
chart1->Series[0]->Points->AddXY(x, y);
}
}
Túsindirme: `Series[0]` – bul `Chart` tıń birinshi (default) seriyası. Biz
`AddXY` metodı arqalı oǵan kóp noqatlar qostıq. `Spline` tipi noqatlardı tegis
sızıq penen jalǵaydı.
3-mısal: Gistogramma (Column Chart) Studentlerdiń bahaların kórsetiw.
Kod:
chart1->Series[0]->ChartType = SeriesChartType::Column;
chart1->Series[0]->Points->AddXY("Azamat", 5);
chart1->Series[0]->Points->AddXY("Guli", 4);
chart1->Series[0]->Points->AddXY("Timur", 3);
chart1->Series[0]->Name = "Bahalar";
Túsindirme: `Column` tipi maǵlıwmatlardı baǵanalar retinde kórsetedi. X
kósherinde atlar, Y kósherinde bahalar boladı.
ÁMELIY TAPSÍRMALAR
1. `PictureBox` qa kod arqalı (fayl jolı menen) súwret júkleń.
2. `Chart` qa 5 noqatlı sızıqlı (`Line`) grafik sızıń (1,1), (2,4), (3,9)...
3. Súwretti 90 gradusqa aylandırıń (`RotateFlip`).
4. `Chart` tıń fon reńin (`BackColor`) ózgertiń.
5. "Dumalaq diagramma" (`Pie`) sızıń (Alma: 40%, Anar: 60%).
6. Súwretti faylǵa saqlań (`Save`).
7. `Chart` qa bas bet (`Title`) qosıń.
8. `PictureBox` tıń `SizeMode` qásiyetin (`Zoom`, `Center`) ózgertip kóriń.
9. Súwrettiń reńlerin inversiyalaw (Negativ): `Bitmap` penen hárbir
pikseldiń reńin `255 - R`, `255 - G`, `255 - B` etiń.
10. `Chart` qa eki seriya qosıń: biri Sinus, ekinshisi Kosinus. (Hár qıylı reńde
bolsın).
11. Súwrettiń ústine tekst jazıń (`Graphics` hám `DrawString` qollanıp).
12. `Chart` tıń X hám Y kósherlerine atama (`AxisX->Title`) beriń.
13. Real waqıt grafigi: `Timer` járdeminde `Chart` qa hár sekundta kishi
tosınnan san (random) qosıp, jılısıp turatuǵın grafik dúziń.
14. Súwretti kúlreń (Grayscale) reńge aylandırıń (Formula: `Y = 0.3R +
0.59G + 0.11B`).
Соседние файлы в папке 2-semestr