19.1. Дужи¶
Све функције за цртање у библиотеци Пајгејм почињу са pg.draw
.

Дуж \(AB\) се црта позивом функције pg.draw.line
. Позив ове функције у општем облику изгледа овако:
pg.draw.line(prozor, boja, (А_x, А_y), (B_x, B_y), debljina)
.
Први параметар је прозор на коме желимо да нацртамо дуж (увек ћемо га називати баш prozor
).
Други параметар је боја дужи а у прошлом делу смо говорили о томе како се наводи боја.
Следе почетна и крајња тачка (\(A\) и \(B\)) чије координате треба да се унесу у облику
уређених парова (прво иде координата \(x\) , a затим координата \(y\)).
Последњи параметар је дебљина линије којом се исцртава дуж, задата у пикселима.
Пример једног позивa функције изгледао би овако:
pg.draw.line(prozor, pg.Color("black"), (100, 100), (300, 300), 5)
Редослед аргумената наведених у позиву функције је важан! Провери да ли тај редослед знаш.
Координате почетне тачке
Дебљина линије
Прозор
Координате крајње тачке
Боја
Сложи их према правилном редоследу
(Наведи редне бројеве аргумената према редоследу којим се аргументи морају навести, на пример 12435)
Одговор:
Провежбајмо сада цртање дужи кроз неколико задатака. Ови задаци ће ти помоћи да боље упознаш координатни систем који користимо за позиционирање тачака на прозору.
Слово А¶

Напиши програм који помоћу три дужи исцртава слово A.
Циљ овог задатка је да утврдимо наше сналажење у координатном систему. За цртање слова \(A\) потребно је исцртати три дужи (леву косу линију, десну косу линију и хоризонталну црту). Величина прозора је \(200\) x \(200\) и о овоме би требало водити рачуна приликом одређивања координата тачака које представљају темена дужи. Спајањем одговарајућих тачака, формирају се дужи.
Видећете да смо у решењу увели променљиву debljina
да бисмо
дебљину све три линије могли да контролишемо само на једном месту. Ова
променљива је постављена (иницијализована) на почетку на 10 (наредбом
доделе debljina = 10
) и променом вредности ове променљиве, мења се
дебљина све три дужи које чине наше слово. И у наредним програмима
ћемо уводити помоћне променљиве које ће нам помоћи да лакше пишемо и
прилагођавамо наше програме.

На слици се види координате тачака. Тачка \(A\) је од координатног почетка удаљена \(50\) пиксела по оси \(x\) и \(150\) пиксела по оси \(y\), зато су координате тачке \(A\) \(= (50, 150)\). На исти начин се одређују координате осталих тачака. Упиши их у програм уместо упитника, а затим покрени програм и провери да ли се добија слово А (једну линију смо већ уцртали).
Плус¶

Напиши програм који исцртава симбол плус у центру прозора димензије 200x200 пиксела. Симбол се састоји од једне хоризонталне и једне вертикалне дужи дужине 100 пиксела и дебљине 10 пиксела.
Централни корак у решењу задатка је да два пута примениш функцију за
цртање дужи и њеном применом исцрташ симбол плус. У решењу је већ
нацртана вертикална дуж, а твој задатак је да нацрташ хоризонталну дуж
дужине 100 пиксела, зато добро промисли где ћеш поставити почетну,
односно крајњу тачку дужи (овај пут немаш помоћ). Ширина и висина
прозора су 200 пиксела. Анализирај позив функције
pg.draw.line(prozor, pg.Color("black"), (100, 50), (100, 150),
debljina)
и мало га прилагоди.
Видиш да је на месту аргумента за
боју наведен позив функције pg.Color("black")
који враћа црну
боју. Координате темена вертикалне дужи су (100, 50)
и (100,
150)
. Код хоризонталне дужи \(y\) координата треба да буде одређена тако
да се дуж налази на средини прозора по висини, док се \(x\) координата простире од
четвртине, па до три четвртине ширине прозора.
Потребно је да направиш позив pg.draw.line(prozor,
pg.Color("black"), (50, 100), (150, 100), debljina)
.
Најважније из ове лекције¶
Позив функције за цртање дужи \(AB\) у општем облику изгледа овако
pg.draw.line(prozor, boja, (A_x, A_y), (B_x, B_y), debljina)
.Дебљина линије је последњи аргумент и он може бити изостављен.