Садржај
1. Робот Карел - линијски програми и бројачка петља
2. Робот Карел - условна петља и гранање
3. Робот Карел - задаци за вежбање
4. Корњача графика - линијски програми и петље
5. Корњача графика - гранање, угнежђене петље, функције, торке и листе
6. Корњача графика - задаци за вежбање
9. Израчунавања - коришћење и дефинисање функција
10. Израчунавања - задаци за вежбање
13. Контрола тока - вежбање
17. Програмирање 2Д графике - Увод у Pygame

22.4. Домаћи задатак

Шума

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

Претпоставићемо да на располагању имамо функцију која црта јелку. Овај пут ће та функција примати координате сидра (средину дна стабла јелке), али и димензију јелке. Да би цртеж реалније изгледао, рецимо да неће све крошње бити у истој нијанси зелене боје, већ да ће неке бити тамније, а неке светлије. Стога ћемо функцији за цртање јелке прослеђивати и четврти параметар који ће представљати фактор промене основне зелене боје. Промену боје ћемо постићи кроз посебну функцију која сваку појединачну компоненту дате боје множи са задатим коефицијентом. Ако је тај коефицијент број мањи од 1, боја постаје тамнија, а ако је већи од 1, боја постаје светлија. Приликом сваког позива функције фактор ћемо одређивати као насумично одабран реалан број из интервала \([0.2, 2]\), позивом функције random.uniform(0.2, 2.0).

У главном делу програма распоредићемо шест јелки левог и шест јелки десног дрвореда. У петљама ћемо одржавати координате сидра текуће јелке. Леви дрворед ће почињати мало испод линије хоризонта и мало улево од половине ширине прозора, и свако дрво ће бити померено доле и лево у односу на претходно. То ћемо постићи тако што ћемо у сваком кораку петље умањивати \(x\) и увећавати \(y\) координату. Слично томе, десни дрворед ће почињати мало испод линије хоризонта и мало десно од половине ширине прозора и свако дрво ће бити померено доле и десно \(y\) односу на претходно. То ћемо постићи тако што ћемо у сваком кораку петље увећавати и \(x\) и \(y\) координату. Да би се постигао ефекат перспективе, свако наредно дрво биће мало веће у односу на претходно. То ћемо постићи тако што ћемо у сваком кораку петље увећавати и димензију текућег дрвета.

Допуни наредни програм на основу претходне дискусије.

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