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.
Do'stlaringiz bilan baham: |