Amaliy matematika va intellektual texnologiyalar fakulteti



Download 443,08 Kb.
bet4/8
Sana17.08.2021
Hajmi443,08 Kb.
#149888
1   2   3   4   5   6   7   8
Bog'liq
kurs ishi c#

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 443,08 Kb.

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




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish