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

Задавање боја

Све облике можеш цртати у различитим бојама. Боју можеш добити на основу имена које се наводи као параметар функције pg.Color. Moжеш користити већ готове боје навођењем одговарајуће ниске: 'black' за црну, 'white' за белу, 'gray' за сиву, 'blue' за плаву, 'green' за зелену, 'orange' за наранџасту, 'yellow' за жуту и слично. Подсетимо се, ниске се наводе било између једноструких, било између двоструких наводника (равноправно се, на пример, могу користити``’blue’`` и "blue"). На пример, ако позовеш функцију py.draw.line(prozor, pg.Color('blue'), (0, 0), (200, 200), 3) на прозору ће се приказати дуж плаве боје чија су темена тачке са координатама \((0, 0)\) и \((200, 200)\) дебљине 3 пиксела.

Наведимо имена основних боја које ћемо користити у нашим програмима.

pg.Color("black") Црна
pg.Color("white") Бела
pg.Color("red") Црвена
pg.Color("green") Зелена
pg.Color("blue") Плава
pg.Color("cyan") Reзеда
pg.Color("magenta") Љубичаста
pg.Color("yellow") Жута
pg.Color("orange") Наранџаста

Поиграј се мало са бојама у наредном програму и покушај да обојиш прозор у све ове боје.

Можда ћеш пожелети да поред основних боја које се могу добити на основу њиховог имена, самостално дефинишеш неку своју боју тј. нијансу. То можеш најлакше урадити коришћењем модела боје RGB (енгл. red-green-blue). Светло било које боје се може добити комбиновањем светла црвене (Red), зелене (Green) и плаве (Blue) боје. На пример, комбиновањем црвеног и зеленог светла добија се жуто светло, комбиновањем црвеног и плавог љубичасто, а комбиновањем плавог и зеленог резеда. Комбиновањем светла све три основне боје добија се бело светло док се црно светло добија када се сва три светла искључе. Сиво светло се добија када се измеша подједнака количина, црвеног, зеленог и плавог светла.

../_images/RGB.png

Боју тако можемо описати наводећи три броја (у овом случају то су бројеви од 0 до 255), који редом представљају количину црвене, зелене и плаве компоненте у боји коју дефинишемо. У програмском језику Python боју, дакле, можеш представити и тројком бројева и то у облику трочлане уређене торке (нпр. (123, 80, 56)) или трочлане листе (нпр. [123, 80, 56]). Торку или листу можеш навести директно као аргумент функције који одговара боји, а можеш је упамтити у променљивој и касније користити више пута. На пример, доделом REZEDA = (0, 255, 255) дефинишемо резеда боју наводећи одговарајуће количине црвене, зелене и плаве светлости коју ова боја садржи (пошто је то мешавина плаве и зелене боје у њој нема нимало црвене, а плава и зелена компонента су на максимуму). Након тога, ту боју можемо употребити и у позиву функције (нпр. prozor.fill(REZEDA)). Имена тих променљивих не морају бити написана великим словима, али то је добар обичај. У програмима које будеш читао можда се сусретнеш и са дефиницијом облика REZEDA = (0, 255, 255, 10). Као што видиш овде се наводе четири параметра и последњи, четврти параметар одређује прозирност боје, тј. овако задата резеда боја је слабијег интензитета.

Резимирајмо сада RGB вредности неких карактеристичних боја.

(255, 0, 0) црвена
(0, 255, 0) зелена
(0, 0, 255) плава
(255, 255, 0) жута
(0, 255, 255) резеда
(255, 0, 255) љубичаста
(255, 255, 255) бела
(0, 0, 0) црна
(128, 128, 128) сива
(255, 128, 0) наранџаста
(255, 128, 128) розе

Поиграј се мало са бојама наведним у RGB облику у наредном програму и покушај да обојиш прозор у све ове боје. Пробај да уносиш и друге комбинације вредности између 0 и 255.