Садржај
1. Програмирање у пајтону - Увод у Pygame
15. Цртање уз помоћ петљи - обнављање
16. Завршни квиз

3.2. Боје

Избор „готових“ боја

Са бојама си се сигурно сусрео/сусрела користећи Бојанку (Paint). У њој постоји могућност да изабереш боју којом ћеш цртати. Довољно је да кликнеш на квадратић са бојом из горњег менија и боја је спремна да је користиш!

../_images/paint3.jpg

Пајгејм такође нуди могућност да користиш различите боје. Све облике можеш цртати у разним бојама. Најлакши начин да нешто обојимо у Пајгејму је помоћу функције pg.Color. Ова функција као аргумент има ниску која представља назив боје на енглеском. Посматрај коришћење ове функције као да у Бојанки изаберемо неку од понуђених боја. Разлика је у томе што не кликнемо на квадратић у коме се боја налази, него у програму употребимо функцију и као њен аргумент наведемо име боје.

Ако функцију pg.Color употребимо са аргументом 'blue', жељени елемент ће бити обојен у плаво, за жуту ћемо употребити 'yellow', за зелену 'green' и слично.

Хајде да то сада испробамо. Унеси неку од ових боја уместо три знака питања у програм испод и кликни на ’Покрени програм’. Прво смо употребили функцију prozor.fill чији је једини параметар боја (Пајтон очекује да се у загради након prozor.fill нађе нешто што ће му рећи коју боју да употреби) и која боји цео прозор у задату боју (видећеш, ово ће касније бити корисно за цртање позадине). Онда употребљавамо функцију pg.Color и дајемо јој као аргумент ниску са називом боје. Испробај још неколико различитих боја у програму испод, а на крају лекције налази се листа свих боја које ћемо користити.

Честе грешке:

Једна грешка коју лако можеш направити приликом задавања боје је да уместо да напишеш pg.Color (великo слово C), напишеш pg.color (мало слово c). Тада ће ти се приказати грешка AttributeError: '' object has no attribute 'color'.

Још једна честа грешка је да назив боје не наведеш под наводницима (на пример, да наведеш pg.Color(white)). Тада ће ти се приказати порука NameError: name 'white' is not defined on line 8.

Специфичне боје

Иако су нам боје које смо до сада поменули најчешће довољне, понекад пожелимо да употребимо и неку другу боју или нијансу боје која није понуђена. Када то пожелимо да урадимо у Бојанки, кликнемо на Edit colors и отвара се један овакав прозор:

../_images/paint2.jpg

Видећеш да ти је овако доступно много више боја и довољно је да кликнеш у овај квадрат десно у коме су све боје и изабереш тачну нијансу коју желиш. Међутим, када добијеш жељену боју, видећеш и ове бројеве који се појављују доле десно и видећеш да поред њих пише red, green и blue. Погледај шта се дешава са овим бројевима када изабереш неку другу боју. Свакa бојa коју наше око може да види састоји се управо од ове три основне боје. Све боје можемо описати наводећи ова три броја (у овом случају ови бројеви могу имати вредност од 0 до 255), који редом представљају количину црвене, зелене и плаве компоненте у боји коју дефинишемо.

Што је број неке компоненте већи, то је компонента светлија (јача). На пример, када имамо неки извор светлости у соби, што је светлост слабија (број је мањи), то је и у соби тамније. Такође, што је светлост јача (број је већи), то је у соби светлије.

Немојте да вас збуни то што је овде зелена боја основна (поред плаве и црвене), а у ликовном када сте цртали темперама је то била жута. То је због тога што овде мешамо светлост, а у ликовном сте мешали пигменте боје.

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

../_images/RGB.png

У програмском језику Python, као и у Бојанки (као и у рачунарству уопште), боју можеш представити и тројком бројева и то у облику трочлане уређене торке (нпр. (123, 80, 56)) или трочлане листе (нпр. [123, 80, 56]). Сети се, када кажемо да је нешто уређено, то значи да је битан редослед елемената - и овде ћемо увек прво наводити компоненту црвене, затим компоненту зелене и на крају компоненту плаве, увек истим редоследом. Торку или листу можеш навести директно као аргумент функције који одговара боји, а можеш је упамтити у променљивој и касније користити више пута. На пример, доделом REZEDO = (0, 255, 255) дефинишемо резедo боју (каже се и тиркизна или цијан, а то је у ствари боја светлосне сабље Лука Скајвокера из филма A New Hope: Star Wars: Episode IV) наводећи одговарајуће количине црвене, зелене и плаве светлости коју ова боја садржи - пошто је то мешавина плаве и зелене боје у њој нема нимало црвене, а плава и зелена компонента су на максимуму. Након тога, ту боју можемо употребити и у позиву функције (нпр. prozor.fill(REZEDO)). Имена тих променљивих не морају бити написана великим словима, али то је добар обичај.

Све ово ће ти бити јасније када у следећем програму замениш знакове питања бројевима које желиш и кликнеш на Покрени програм. На тај начин функцији prozor.fill дајеш листу од три броја и она ће прозор обојити у одговарајућу боју (добијену мешањем основних боја у количинама које представљају унети бројеви). После тога покушај да унесеш и боје које су набројане испод кôда задатка.

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

„Готове боје“

RGB

pg.Color("red")

Црвена

(255, 0, 0)

pg.Color("green")

Зелена

(0, 255, 0)

pg.Color("blue")

Плава

(0, 0, 255)

pg.Color("black")

Црна

(0, 0, 0)

pg.Color("white")

Бела

(255, 255, 255)

pg.Color("cyan")

Рeзедо

(0,255, 255)

pg.Color("magenta")

Љубичаста

(255, 0, 255)

pg.Color("yellow")

Жута

(255, 255, 0)

pg.Color("orange")

Наранџаста

(255, 128, 0)

pg.Color("gray")

Сива

(128, 128, 128)

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

  • Боје у Пајгејму можеш користити тако што ћеш позвати функцију pg.Color и њој као аргумент проследити ниску са називом боје, на пример pg.Color("red")

  • Све боје састоје се од 3 компоненте - црвеног светла, зеленог и плавог, а количина сваке компоненте се може изразити бројем између 0 и 255

  • У Пајтону се боје могу представити као уређене тројке ових вредности (255, 0, 0) или као листа која садржи ове вредности [255, 0, 0]

  • Потпуно је свеједно да ли ћеш негде употребити уређену тројку, листу или функцију. На месту где је потребно употребити боју - сваки ће од ових начина бити подједнако добар.

  • Боје којe сâм/сâма дефинишеш можеш сместити и у варијаблу коју ћеш касније лако да употребиш.

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