Prijavi problem


Obeleži sve katergorije 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.

Programiranje grafike pomoću Pygame, priručnik za gimnaziju

Цртање правилних облика уз помоћ петљи - напредније

Матрица боја

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

Овај задатак представља уопштење претходног. Поново се свака компонента боје анализира посебно. Овај пут конструишемо линеарну функцију две променљиве. Претпоставимо да су задате три почетне вредности \(a\), \(b\) и \(c\). Функцију конструишемо у облику \(p\cdot i + q\cdot j + r\), где су \(i\) и \(j\) редни бројеви квадрата (по хоризонтали и вертикали). Почетни услови су овај пут такви да се за \(i=0\), \(j=0\) добија вредност \(a\), да се за \(i=n-1\), \(j=0\) добија вредност \(b\), а да се за \(i=0\), \(j=n-1\) добија вредност \(c\). Тиме се добија систем од три једначине са три непознате из којег лако следи да је \(r = a\), да је \(p = \frac{b - a}{n - 1}\), а да је \(q = \frac{c-a}{n-1}\). Дакле, функција коју тражимо је \(a + i\cdot\frac{b-a}{n-1} + j\cdot\frac{c-a}{n-1}\). Остаје још један проблем који треба решити. Наиме, неке вредности ове функције (за квадрате који се налазе испод споредне дијагонале поља) могу бити мање од нуле или веће од 255. Ако се то догоди, тада је потребно вредности сасећи тј. све вредности веће од 255 претворити у 255, а све вредности мање од 0 претворити у 0. То се једноставно може урадити за неку вредност x тако што се израчуна max(min(x, 255), 0).

Таласићи

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

Решење овог задатка је доста слично претходном. Пречник сваког полукруга (таласића) се израчунава дељењем ширине екрана на број таласића, а полупречник дељењем добијеног количника са два. Усмерење сваког таласића (на горе или на доле) одређујемо помоћу логичке променљиве коју иницијализујемо на вредност тачно и чију вредност мењамо у сваком кораку петље (негирањем, помоћу оператора not). Полукруг цртамо помоћу кружног лука. У случају када је полукруг оријентисан ка горе, тада је почетни угао лука нула степени (уједно и нула радијана), а крајњи угао 180 степени (што износи \(\pi\) радијана), док је код полукруга оријентисаног ка доле почетни угао 180 степени (што износи \(\pi\) радијана), а крајњи нула. Поново приметимо да смо у наредби гранања само одредили вредности које се разликују (почетни и крајњи угао кружног лука), док смо само цртање урадили заједнички.

Клупко

Напиши програм који исцртава клупко, тако што исцрта \(n=500\) насумично одабраних тетива једног круга.

У овом задатку ћемо употребити тригонометријске функције \(sin\) и \(cos\) да бисмо одредили координате тачке на кругу, за познати угао.