Садржај
1. Робот Карел - линијски програми и бројачка петља
2. Робот Карел - условна петља и гранање
3. Робот Карел - задаци за вежбање
4. Корњача графика - линијски програми и петље
5. Корњача графика - гранање, угнежђене петље, функције, торке и листе
6. Корњача графика - задаци за вежбање
9. Израчунавања - коришћење и дефинисање функција
10. Израчунавања - задаци за вежбање
13. Контрола тока - вежбање
17. Програмирање 2Д графике - Увод у Pygame

19.2. Правоугаоници и елипсе

Цртање квадрата и правоугаоника

У библиотеци Пајгејм можемо једноставно цртати квадрате и правоугаонике. За то користимо следећу функцију са параметрима наведеним у загради, где је rect скраћено од енглеске речи rectangle што значи правоугаоник:

pg.draw.rect(prozor, boja, (x, y, a, b), debljina_linije)

../_images/pravougaonik01.png

Параметри функције су редом:

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

  • боја,

  • уређена четворка бројева чија прва два броја представљају координате горњег левог темена правоугаоника, а друга два представљају редом његову ширину и висину.

Прво се црта црни правоугаоник чије се горње лево теме налази на координатама \((50, 50)\) (прва је координата \(x\) која одређује удаљеност тог темена од леве ивице прозора, а друга је координата \(y\) која одређује удаљеност тог темена од горње ивице прозора), чија је ширина 200 пиксела, а висина 100 пиксела. Затим се црта црвени правоугаоник чије се горње лево теме налази на координатама \((75, 75)\), чија је ширина 150, а висина 50 пиксела. Први позив функције pg.draw.rect садржи и четврти параметар - број 1, који представља дебљину оквира правоугаоника у пикселима. Када се овај параметар изостави (као у другом позиву), добија се правоугаоник попуњен бојом.

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

Кроз наредних неколико задатака увежбај цртање правоугаоника и квадрата.

Пет квадрата у пет боја

Напиши програм који исцртава редом црвени, зелени, плави, црни и бели квадрат димензија 50 пута 50 пиксела, постављен хоризонтално један до другог.

Пошто су сви квадрати димензије 50 пута 50 пиксела, правимо прозор чија је димензија 250 пута 50 пиксела. Координата сваког горњег левог темена квадрата је 0 (пошто се та темена налазе на горњој ивици прозора). Координата \(x\) сваког наредног темена је 50 пиксела већа од претходне. Дакле, горња лева темена тих пет квадрата редом имају координате \((0, 0)\), \((50, 0)\), \((100, 0)\), \((150, 0)\) и \((200, 0)\). Упиши ове координате и димензије правоугаоника на одговарајућа места у програму, а затим покрени програм и провери да ли је твоје решење исправно.

Решење:

Глава робота

Нацртај наранџасту главу робота квадратног облика, која има црне очи и уста квадратног облика. Док помераш миша по покренутом примеру, координате можеш да очитаваш у наслову прозора (координате свих темена на нашој слици су дељиве са 10).

Решење:

Цртање елипси

Библиотека Пајгејм нам омогућава и да цртамо елипсе коришћењем функције pg.draw.ellipse. Елипса се црта тако што се зада описани правоугаоник око ње и то помоћу истих параметара као у случају цртања правоугаоника функцијом pg.draw.rect. У специјалном случају када је описани правоугаоник око елипсе квадрат (када су му ширина и дужина једнаке), елипса је кружног облика.

Дакле, елипса се црта помоћу функције:

pg.draw.ellipse(prozor, boja, (x, y, a, b), debljina_linije)

../_images/elipsa02.png

Параметри функције су редом:

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

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

  • уређена четворка којом се представља правоугаоник у који је елипса уписана (задају се прво координате горњег левог темена правоугаоника, затим његова ширина и висина).

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

Илуструјмо цртање елипсе наредним примером.

Елипсе

Ако обратите пажњу, видећете да је око сваке од три нацртане елипсе нацртан и њен описани правоугаоник и да се у свим случајевима аргументи функције pg.draw.ellipse потпуно поклапају са аргументима функције pg.draw.rect.

Користећи ово што си научио о елипсама, покушај да решиш следећи задатак.

Нацртај три елипсе тако да је прва плаве боје и да је попуњена, а правоугаоник који је око ње описан има горње лево теме у тачки (50, 50), ширина му је 50, а висина 80. Друга није попуњена, већ је исцртана линијом жуте боје и дебљине пет пиксела, истих је димензија као и плава, а правоугаоник у који је уписана има горње лево теме у тачки (125, 50). На крају, трећа елипса је попуњена жутом бојом, а правоугаоник који је око ње описан има горње лево теме у тачки (65, 150), ширину 100 и висину 50.

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

  • Функција за цртање правоугаоника, pg.draw.rect узима као аргументе прозор на коме се црта, боју и уређену четворку бројева координата горњег левог темена правоугаоника, ширине и висине.

  • Позив функције за цртање правоугаоника у општем облику изгледа овако pg.draw.rect(prozor, boja, (gornje_levo_teme_x, gornje_levo_teme_y, sirina, visina), debljina).

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

  • Позив функције за цртање елипсе у општем облику изгледа овако pg.draw.ellipse(prozor, boja, (gornje_levo_teme_x, gornje_levo_teme_y, sirina, visina), debljina).

  • Дебљина линије је последњи аргумент функција за цртање, који може бити изостављен.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+