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

20.1. Симетрично пресликане координате

На досадашњим цртежима смо координате углавном очитавали помоћу миша или су унапред биле задате у тексту задатка. У овом поглављу ћемо видети како одређене координате можемо израчунати на основу познавања неких других координата.

Биће нам веома важан међусобни однос положаја и величина објеката у прозору. Kao што знаш, увећавањем \(x\) координате објекти се померају надесно, умањивањем \(x\) координате на лево, умањивањем y координате померају се нагоре, а увећавањем \(y\) координате, померају се надоле.

Симетрични кругови

Често ће цртежи које цртамо бити симетрични у односу на неку хоризонталну или вертикалну праву. На пример, ако је прозор ширине 300 пиксела, тада је његова усправна оса удаљена 150 пиксела од леве ивице. Ако желимо да два круга распоредимо симетрично око те усправне осе прозора (на пример, желимо да то буду два ока) и ако први круг има центар у тачки \((110, 80)\), тада други круг треба да има центар у тачки \((190, 80)\).

Наиме, (хоризонтално) растојање од центра левог круга до усправне осе треба да буде исто као растојање од те усправне осе до центра десног круга. Пошто је лево растојање једнако 150 - 110 = 40, десно растојање ће такође бити 40, па је x координата центра десног круга 150 + 40 = 190. Тачке су на истој висини, па им је \(y\) координата једнака. Веома слично се одређују координате и када је оса симетрије било која друга хоризонтална или вертикална права.

Симетрични правоугаоници и елипсе

Поступак одређивања параметара правоугаоника и елипсе која је симетрично пресликана мало се разликује од оног за круг или дуж. Треба водити рачуна о томе да је горње лево теме правоугаоника описаног око тражене елипсе, у ствари, слика горњег десног темена правоугаоника описаног око познате елипсе.

Нека је на слици доле плава елипса позната, а црвена тражена. Погледајте следећи програм и обратите пажњу на тачке \(M_1\) и \(M_2\). Такође, обратите пажњу и на горња лева темена ових правоугаоника. Да бисмо црвени правоугаоник нацртали као симетричну слику плавог, морамо пронаћи координате горњег левог темена црвеног правоугаоника. А како бисмо то урадили, морамо прво да на основу координата тачке \(M_1\) пронађемо координате тачке \(M_2\), која је подједнако удаљена од усправне осе прозора као и тачка \(M_1\). Након тога, биће довољно да одузмемо ширину правоугаоника од \(х\) координате тачке \(M_2\) и добићемо \(х\) координату горњег левог темена црвеног правоугаоника.

Мачка

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

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

  • два круга (глава и врх њушке),

  • шест елипси (очи, зенице и делови њушке),

  • шест линија (бркови).

Приликом цртања користе се боје gray, darkgray, black, yellow и green.

Да видиш слику коју треба да нацрташ, притисни дугме Прикажи пример. Можеш да очитаваш само координате облика на левој половини слике, а они су већ нацртани у програму. X-координате тачака на десној половини слике се не могу очитавати, али се могу израчунати користећи симетрију.

Дат је комплетан програм, који можете да испробате и овде.

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

  • Непознате координате често можемо израчунати на основу познатих координата у одређеном програму.

  • Када одређене облике пресликавамо по некој оси, важно је да обратимо пажњу на кључне тачке за цртање тог облика и да пронађемо у које ће се тачке оне пресликати.

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