Amaliy matematika va intellektual texnologiyalar fakulteti


Download 447.75 Kb.
bet4/8
Sana05.01.2022
Hajmi447.75 Kb.
#215357
1   2   3   4   5   6   7   8
Bog'liq
kurs ishi c# new

private void button1_Click(object sender, EventArgs e)
{

 

}



"{}" Jingalak qavslari orasida siz tugmani bosish hodisasida bajariladigan kodni yozishingiz kerak

.


C # da grafika

Grafika. .NET doirasi ko'rsatishni qo'llab-quvvatlash uchun nom maydonlarining to'liq to'plamini taqdim etadi ikki o'lchovli grafikalar. Chizish uchun biz Drawing nom maydonidan foydalanamiz, chunki bu biz uchun etarli, chunki biz eng oddiy rasmlarni chizamiz. Chizish paytida e'tibor bering quyidagilar, chunki ba'zi shakllarni rang bilan to'ldirishimiz kerak, buyurtma bu erda muhim, avval to'ldirishni, so'ngra qon tomirini to'ldirishni unutmang. Chizish uchun biz qalamdan, aniqrog'i, statik xususiyatlardan foydalanamiz Qalamlar oilasidan

Masalan:


Cho'tkalar Moviy; // ko'k cho'tka.

To'g'ridan-to'g'ri chizish uchun quyidagi ob'ektlardan foydalaniladi:

Qator:

DrawLine ();. // Chizish uchun 5 ta parametr talab qilinadi:



1. chiziq rangi, Qalamlar oilasidan foydalaning.

2. Yuqori chap burchakning koordinatalari

3. Pastki o'ng burchakning koordinatalari

Masalan:


DrawLine (Qalamchalar, Qora, 100, 100, 500, 500);

To'rtburchak: (avval to'ldirishni, keyin ikkalasini ham unutmang)

FillRectangle (); Chizish uchun 5 ta parametr kerak:

1. rangni to'ldiring, Brushes oilasidan foydalaning.

2. Yuqori chap burchakning koordinatalari

3. Kenglik va balandlik

Masalan:

FillRectangle (Brushes, Bej, 100, 100, 500, 500); // to'rtburchaklar maydonni to'ldirgan

DrawRectangle (qalamlar, qizil, 100, 100, 500, 500); // zarba


Ellips: FillEllipse (); Chizma 5 parametrni talab qiladi: 1. rangni to'ldiring, Brushes oilasidan foydalaning. 2. Yuqori chap burchakning koordinatalari 3. Kenglik va balandlik Masalan: FillEllipse (Brushes. Bej, 100, 100, 500, 500); // to'rtburchaklar maydonni to'ldirdi DrawEllipse (Pens. Red, 100, 100, 500, 500); // zarbani bajargan Ellips sektori: FillPie (); chizish uchun 7 parametr talab qilinadi: 1. Rangni to'ldiring, Brushes oilasidan foydalaning. 2. Yuqori chap burchakning koordinatalari 3. Kenglik va balandlik 4. Sektorni boshlash burchagi 5. Sektorning so'nggi burchagi Masalan: FillPie (Brushes. Bej, 100, 100, 500, 500, 0, 90); // to'rtburchaklar maydonni to'ldirdi DrawPie (Qizil qalamchalar, 100, 100, 500, 500, 0, 90); // Strok ko'pburchagi:

Ko'pburchak toyek massividan qurilgan, shuning uchun avval siz qator yaratishingiz kerak

Point [] tt = {yangi nuqta (20, 10), yangi nuqta (10, 40), yangi nuqta (45,100), yangi nuqta (50b 80)};

Va keyin ko'pburchakni chizish

g.DrawPolygon (Qalamlar, Yashil, tt);

Va agar kerak bo'lsa, uni to'ldiring

g.FillPolygon (qalamlar. Yashil, tt);

Miqyoslanadigan rasm

Biz ko'rib chiqqan barcha narsalar C # da grafik ibtidoiylarni chizishga imkon beradi. Ammo bitta narsa bor, ammo agar shunday bo'lsa

rasmni yaratgandan so'ng, biz shaklning o'lchamini o'zgartirishga harakat qilamiz, shunda biz uning o'lchamini bilib olamiz

tasvir o'zgarmaydi. Va shakli pasayganda, tasvir kesiladi, ya'ni uning bir qismi

u chiqadi, go'yo formaning tashqarisida va biz uni ko'rmayapmiz.

Muammo shundaki, shaklni masshtablash paytida o'lchov birligi kamaymaydi (bu

printsipial ravishda mumkin emas, chunki shaklning o'lchami piksel bilan o'lchanadi), lekin kamayadi

piksellar soni.

Ushbu muammoni hal qilish uchun biz o'z koordinatalar tizimini yaratishga majbur bo'lamiz. Boshlang

yuqori chap burchakda o'sha joyda qoladi. Ammo biz o'lchov birligini o'zgartiramiz, biz uni bog'laymiz

to'g'ridan-to'g'ri shakl o'lchamlariga va shu bilan shakl o'lchamlari o'zgartirilganda,

bizning o'lchov birligimiz ham farq qiladi.

Tushunadigan birinchi narsa shundaki, biz faqat shaklning mijoz tomoniga chizamiz, ya'ni qila olmaymiz



sarlavha, menyu va boshqalarga rasm chizish.


Misol 1. Tugmani bosganingizda shakllar paydo bo'ladi (kvadrat, ellips, chiziq)
private void button2_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); // Подготавливаем перо, рисующее красную линию толщиной 3 пикселя Pen redPen = new Pen(Color.Red, 3); // С помощью пера рисуем прямую линию, прямоугольник и эллипс g.DrawLine(redPen, 140, 170, 140, 230); g.DrawRectangle(redPen, 50, 60, 50, 60); g.DrawEllipse(redPen, 150, 100, 100, 60); g.Dispose(); // Очистка } Пример 2. Ветка параболы. private void button2_Click(object sender, EventArgs e) { Graphics gr = this.CreateGraphics(); Pen myPen = new Pen(Color.BlueViolet); int k = 100; float xmin = 0, xmax = 2, ymin = 0, ymax = 4; float xstep = (xmax - xmin) / k; float kx = this.Width / xmax, ky = this.Height / ymax; float x1 = xmin, y1 = x1 * x1, x2, y2; for (int i = 0; i < k; i++) { x2 = x1 + xstep; y2 = x2 * x2; gr.DrawLine(myPen, kx * x1, this.Height - ky * y1, kx * x2, this.Height - ky * y2); x1 = x2; y1 = y2; } } Пример 3. «Летящая окружность» private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); Pen redPen = new Pen(Color.Red, 3); // красное перо for (int i = 0; i < 100; i+=1) // координаты центра изменяются { g.DrawEllipse(redPen, i+100, i+40, 10, 10);// рисуем эллипс for (int j = 0; j < 10000000; j++) //пустой цикл для задержки времени { } g.Clear(Color.White); //стираем нарисованный эллипс } g.Dispose(); }

private void button2_Click(object sender, EventArgs e) { Graphics gr = this.CreateGraphics(); Pen myPen = new Pen(Color.BlueViolet); int k = 100; float xmin = 0, xmax = 2, ymin = 0, ymax = 4; float xstep = (xmax - xmin) / k; float kx = this.Width / xmax, ky = this.Height / ymax; float x1 = xmin, y1 = x1 * x1, x2, y2; for (int i = 0; i < k; i++) { x2 = x1 + xstep; y2 = x2 * x2; gr.DrawLine(myPen, kx * x1, this.Height - ky * y1, kx * x2, this.Height - ky * y2); x1 = x2; y1 = y2; } } Пример 3. «Летящая окружность» private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); Pen redPen = new Pen(Color.Red, 3); // красное перо for (int i = 0; i < 100; i+=1) // координаты центра изменяются { g.DrawEllipse(redPen, i+100, i+40, 10, 10);// рисуем эллипс for (int j = 0; j < 10000000; j++) //пустой цикл для задержки времени { } g.Clear(Color.White); //стираем нарисованный эллипс } g.Dispose(); }

Vazifa 1. Kardan odamni chizish (uchta to'ldirilgan to'p, burun

sabzi, boshidagi shapka)

Vazifa 2. Dasturni jadval bilan yakunlang. Dastur

parabola y = a * x (ikkita shox bilan) va parametrni chizish kerak

Matn maydonidan o'qilgan "A". (O'qlarni ko'rsatish maqsadga muvofiqdir

koordinatalar)

Vazifa 3. Uchayotgan narsaning effektini yarating

shaklning chetiga yoki boshqa shaklga uchib, undan uchib ketadi.

Vazifa 4. Yomg'ir yoki miltillovchi yulduzlar ta'sirini yarating

osmon. (shakllar paydo bo'ladi va tasodifiy yo'qoladi)

Vazifa 5. Sichqoncha tugmachasini siljitish va bosishda u chiziladi

chiziq.




Download 447.75 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling