Садржај
1. Програмирање у пајтону - Увод у Pygame
1.1. Увод у Pygame
1.2. Основна структура Пајгејм програма
2. Координатни систем
2.1. Подсетник на Пајтон - Торке и листе
2.2. Координатни систем
2.3. Квиз - координатни систем
3. Боје
3.1. Подсетник на Пајтон - функције и варијабле
3.2. Боје
3.3. Квиз боје
4. Дужи
4.1. Дужи
4.2. Домаћи задатак
4.3. Квиз - дужи
5. Квадрати, правоугаоници и елипсе
5.1. Цртање облика - квадрати и правоугаоници
5.2. Цртање облика - елипсе
5.3. Домаћи задатак
5.4. Квиз - правоугаоници и елипсе
6. Кругови и многоуглови
6.1. Цртање облика - кругови
6.2. Цртање облика - многоуглови (полигони)
6.3. Домаћи задатак
6.4. Квиз - кругови и многоуглови
7. Симетрично пресликане координате
7.1. Симетрично пресликане координате
7.2. Домаћи задатак
7.3. Квиз - симетрија
8. Скалирање и центрирање, релативно задавање координата и димензија
8.1. Пајтон подсетник - дефинисање функција
8.2. Повећавање и смањивање једног објекта, центрирање
8.3. Релативне координате и димензије
8.4. Домаћи задатак
8.5. Квиз - релативне координате и димензије
9. Релативно задавање координата - утврђивање
9.1. Релативне координате - утврђивање
9.2. Домаћи задатак
9.3. Квиз - релативне координате и димензије
10. Слике и текст
10.1. Слике и текст
10.2. Вежбање
10.3. Квиз - слике и текст
11. Цртање уз помоћ петљи
11.1. Пајтон подсетник - петље
11.2. Цртање облика помоћу петљи
11.3. Домаћи задатак - петље
11.4. Квиз - цртање облика помоћу петљи
12. Цртање уз помоћ петљи 2
12.1. Употреба генератора случајних бројева
12.2. Правилно распоређивање боја
12.3. Квиз - понављање облика коришћењем петљи
13. Гранање
13.1. Пајтон подсетник гранање
13.2. Комбиновање гранања и петље
13.3. Домаћи задатак
13.4. Квиз - гранање
14. Угнежђене петље
14.1. Пајтон подсетник - угнежђене петље
14.2. Угнежђене петље
14.3. Домаћи задатак
14.4. Квиз - угнежђене петље
15. Цртање уз помоћ петљи - обнављање
15.1. Цртање уз помоћ петљи - обнављање
16. Завршни квиз
16.1. Завршни квиз

6.2. Цртање облика - многоуглови (каже се и полигони)

Троугао се може нацртати помоћу три појединачне дужи. На сличан начин можемо нацртати и било који други многоугао (полигон). Међутим, ако се многоуглови цртају на тај начин, они се не сматрају као целина и не могу, на пример, бити попуњени. Библиотека PyGame даје могућност и за директно цртање многоуглова.

Многоугао се црта функцијом pg.draw.polygon чији су параметри редом:

  • прозор на ком се црта,

  • боја,

  • листа уређених парова који представљају координате темена многоугла (она се обично наводи у облику [(x1, y1), (x2, y2), ..., (xn, yn)]).

Многоугао се састоји од дужи које спајају суседна темена (тачке) у наведеној листи. Подразумева се да је многоугао затворен, тј. да многоугао садржи и линију између последњег и првог темена. Као и до сада, ако се иза листе темена наведе дебљина, црта се само ивица многоугла, а ако се тај аргумент изостави или се наведе нула, онда се многоугао испуњава бојом.

Размотримо наредни пример.

Многоугао

Кућицу смо нацртали као црвени испуњен многоугао, а затим смо њен оквир нацртали као црну многоугаону линију дебљине 3 пиксела. Да не бисмо исту листу координата наводили два пута, увели смо променљиву temena.

https://petljamediastorage.blob.core.windows.net/root/Media/Default/Kursevi/OnlineNastava/kurs-sedmi-pygame/kuca.png

Увежбај цртање многоуглова тако што ћеш решити наредних неколико задатака.

Срце

Напиши програм који исцртава црвено срце.

Срце можемо нацртати и помоћу једног квадрата и два круга.

https://petljamediastorage.blob.core.windows.net/root/Media/Default/Kursevi/OnlineNastava/kurs-sedmi-pygame/srce_koordinate1.png

Претпоставимо да се центар квадрата (тачка \(О\)) налази у центру прозора (координате су јој \((100, 100)\)) и претпоставимо да су висина и ширина квадрата (заправо његове дијагонале) једнаке 100 пиксела. На основу тога можеш једноставно израчунати положаје темена квадрата (нпр. тачка A има координате \((50, 100)\)). Пошто квадрат није постављен тако да му странице буду паралелне осама, не можемо га цртати помоћу pg.draw.rect, али можемо помоћу pg.draw.polygon. Центри кругова се налазе на средиштима страница квадрата. Координате средишта дужи су једнаке аритметичким срединама одговарајућих координата крајева (ово можете да докажете ако посматрате правоугли троугао коме је дата дуж хипотенуза, а катете су паралелне коодинатним осама). На основу реченог лако можемо одредити координате центара (на пример, координате тачке \(M\) су \((75, 75)\)). На крају остаје да се одреди полупречник круга. То можемо урадити експериментално (тако што испробавамо разне вредности све док не добијемо задовољавајућу слику). Међутим, много је боље применити знање из математике и полупречник израчунати. Означимо полупречник круга, страницу квадрата и дијагоналу квадрата редом са \(r, a, d\). Овде је \(r = {a \over 2}\), а, пошто је \(a = {d \over \sqrt{2}}\), следи да је \(r = \frac{d}{2 \sqrt{2}} = \frac{d}{4} \sqrt{2}~\). Дужина дијагонале је 100 пиксела, па је зато полупречник \(25 \sqrt{2}\), што је око 35 пиксела.

Новогодишња јелка

Напиши програм који исцртава новогодишњу јелку. Потребне координате можеш да очиташ када покренеш пример и позиционираш миша на тачку која те интересује.

Споји тачке

У низу tacke дата су темена многоугла. Нацртај тај многоугао на позадини боје darkgreen, попуњен бојом khaki. Шта представља многоугао који цртамо?

Најважније из ове лекције:

  • Функција за цртање многоугла, pg.draw.polygon узима као аргументе прозор на коме се црта, боју, листу координата темена многоугла, дебљину спољне линије.

  • Функција за цртање многоугла у општем облику изгледа овако: pg.draw.polygon(prozor, boja, [(teme1_x, teme1_y), (teme2_x, teme2y), (teme3_x, teme3_y)...], debljina).

Претходна лекција
Следећа лекција
A- A+
Тема
Темa

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.