Prijavi problem


Obeleži sve katergorije koje odgovaraju problemu

Jos 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\) правоугаоника тј. \(n\) нијанси које треба да одредимо. Претпоставимо да је вредност неке компоненте боје за почетни правоугаоник \(a\), а за крајњи \(b\). За ту компоненту је потребно онда конструисати линеарну функцију која слика редни број правоугаоника \(i\) у вредност те компоненте боје за тај правоугаоник такву да је за први правоугаоник тј. за \(i = 0\) вредност те компоненте \(a\), а за последњи правоугаоник тј. за \(i=n-1\) вредност те компоненте \(b\). Функција је облика \(p\cdot i + q\) и непознате коефицијенте \(p\) и \(q\) одређујемо из почетних услова. Дакле, за \(i = 0\) важи да је \(p\cdot 0 + q = a\) тј. \(q = a\). Даље, за \(i = n-1\) важи да је \(p\cdot (n-1) + q = b\), па је \(p = \frac{b-a}{n-1}\). Дакле, вредност те компоненте за правоугаоник број \(i\) се израчунава као \(a + i\cdot \frac{b-a}{n-1}\). Пошто ово не мора бити цео број, потребно га је заокружити (нпр. функцијом round).