Садржај
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. Квиз - правоугаоници и елипсе
6. Кругови и многоуглови
6.1. Цртање облика - кругови и многоуглови
6.2. Домаћи задатак
6.3. Квиз - кругови и многоуглови
7. Симетрично пресликане координате
7.1. Симетрично пресликане координате
7.2. Домаћи задатак
Квиз - симетрија
8. Релативно задавање координата и димензија
8.1. Пајтон подсетник - дефинисање функција
8.2. Релативне координате и димензије
8.3. Домаћи задатак
8.4. Квиз - релативне координате и димензије
9. Релативно задавање координата - утврђивање
9.1. Релативне координате утврђивање
9.2. Домаћи задатак
9.3. Квиз - релативне координате и димензије
10. Слике и текст
10.1. Слике и текст
10.2. Квиз - слике и текст
11. Цртање уз помоћ петљи
11.1. Пајтон подсетник - петље
11.2. Цртање облика помоћу петљи
11.3. Домаћи задатак - петље
11.4. Квиз - цртање облика помоћу петљи
12. Цртање уз помоћ петљи 2
12.1. Цртање облика помоћу петљи
12.2. Домаћи задатак
12.3. Квиз - петље 2
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.1. Цртање облика - кругови и многоуглови

Цртање кругова

Библиотека PyGame омогућава и једноставно цртање кругова, коришћењем функције pg.draw.circle. Параметри функције су редом:

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

  • боја којом се црта,

  • уређени пар (обавезно целих бројева) којим се задају координате центра круга,

  • полупречник круга (обавезно цео број).

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

Илуструјмо цртање кругова наредним примером (наведен је само његов централни део, а да би он могао да функционише ван прегледача веба, потребно је да се наведе цео програм укључујући и почетни и завршни део, који је идентичан у свим програмима у овом поглављу).

Првим позивом функције pg.draw.circle нацртана је црвена кружница дебљине 2, са центром у тачки \((50, 50)\), полупречника 30, док је другим позивом нацртан плави круг са центром у тачки \((150, 150)\), полупречника 30 пиксела.

Три круга

Напиши програм који исцртава три круга чији је центар у центру прозора. Највећи треба да има полупречник 100 и да буде црвен, средњи полупречник 75 и да буде плав, а најмањи полупречник 50 и да буде зелен.

У програм смо ставили наредбу за цртање црвеног круга, а твој задатак је да додаш наредбе за цртање плавог и зеленог круга.

Цртање многоуглова

Троугао се може нацртати помоћу три појединачне дужи. На сличан начин можемо нацртати и било који други многоугао. Међутим, ако се многоуглови цртају на тај начин, они се не сматрају као целина и не могу, на пример, бити попуњени. Библиотека 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/srce_koordinate.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.circle узима као аргументе прозор на коме се црта, боју, координате центра круга и полупречник круга.

  • Функција за цртање круга у општем облику изгледа овако pg.draw.circle(prozor, boja, (centar_x, centar_y), poluprecnik, debljina kruznice)

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

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

Претходна лекција
Следећа лекција
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.