{"id":2519,"date":"2014-06-14T22:47:51","date_gmt":"2014-06-14T21:47:51","guid":{"rendered":"http:\/\/www.arhns.com\/givsf\/?p=2519"},"modified":"2014-06-14T22:47:51","modified_gmt":"2014-06-14T21:47:51","slug":"visebojno-parametarsko-poplocanje-skripta-pomocu-if-petlje","status":"publish","type":"post","link":"https:\/\/www.arhns.uns.ac.rs\/givsf\/visebojno-parametarsko-poplocanje-skripta-pomocu-if-petlje\/","title":{"rendered":"Vi\u0161ebojno parametarsko poplo\u010danje-skripta pomo\u0107u \u201eif\u201c petlje"},"content":{"rendered":"<p>Strategija pri re\u0161avanju problema bila je da se za bilo koji nacrtan mesh terena, prepozna odre\u0111ena visina kojoj \u0107e se dodeliti \u017eeljena boja. Kao reakcija na prepoznatu visinu jednog segmenta mesha, Max treba da napravi \u201ebox\u201c, odnosno plo\u010dicu odre\u0111ene boje.<\/p>\n<p><a href=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2520\" src=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/11-300x191.jpg\" alt=\"Proizvoljan mesh za teren\" width=\"300\" height=\"191\" srcset=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/11-300x191.jpg 300w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/11-1024x652.jpg 1024w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/11.jpg 1272w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Na po\u010detku skripte potrebno je definisati sve globalne promenljive (koje \u0107e se koristiti kroz celu skriptu) kao \u0161to su du\u017eina, \u0161irina i visina Mesha i njegov maksimum i minimum. Tako\u0111e se defini\u0161e \u0161irina i du\u017eina jednog segmenta Mesha.<\/p>\n<p style=\"text-align: center\">\n<p style=\"text-align: center\">duzinaMesha = $.max.x &#8211; $.min.x,<\/p>\n<p style=\"text-align: center\">sirinaMesha = $.max.y &#8211; $.min.y,<\/p>\n<p style=\"text-align: center\">visinaMesha = $.max.z &#8211; $.min.z,<\/p>\n<p style=\"text-align: center\">maksMesha = $.max.z,<\/p>\n<p style=\"text-align: center\">miniMesha = $.min.z,<\/p>\n<p style=\"text-align: center\">pozicijaMeshaX = $.pos.x,<\/p>\n<p style=\"text-align: center\">pozicijaMeshaY = $.pos.y,<\/p>\n<p style=\"text-align: center\">objekat = $,<\/p>\n<p style=\"text-align: center\">\u00a0sirina = sirinaMesha \/ JK.value,<\/p>\n<p style=\"text-align: center\">duzina = duzinaMesha \/ JR.value,<\/p>\n<p>Formiranjem \u201efor\u201c petlje je omogu\u0107en prolazak kroz svaki segment u koloni, a zatim i u redovima dodavanjem promenljive \u201eduzina\u201c posle svakog prolaska kroz celu kolonu (da bi se pre\u0161lo u novu kolonu)<\/p>\n<p>Da bi se svaki segment registrovao kori\u0161\u0107en je zrak \u201eray\u201c koji je definisan u suprotnom smeru od z-ose kako bi presekao dati Mesh.<\/p>\n<p style=\"text-align: center\">zrak = ray [Xobj, Yobj, 1000] [0, 0, -1]<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pozicijaZrak = (intersectRay objekat zrak)<\/p>\n<p>Slede\u0107e naredbe se izvr\u0161avaju samo na mestima na kojima dolazi do presecanja zraka i Mesha.<\/p>\n<p style=\"text-align: center\">if pozicijaZrak != undefined do<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0(&#8230;&#8230;..<\/p>\n<p>U Materijal Editor-u formiramo 6 boja u prvih \u0161est polja (u primeru su kori\u0161\u0107ene nijanse od bele do tamno zelene).Zatim pomo\u0107u \u201eif\u201c petlje defini\u0161emo \u201epoziciju z\u201c, odnosno visinu Mesha na mestu presecanja sa zrakom, i u zavisnosti od te visine dodelimo odre\u0111enu boju iz Material Editor-a. Ova operacija se ponavlja 6 puta za \u0161est razli\u010ditih visina, odnosno boja. (Ukupna visina Mesha je podeljenja na \u0161est \u0161estina)<\/p>\n<p style=\"text-align: center\">if pozicija.z &lt; (miniMesha + visinaMesha\/6) then<\/p>\n<p>\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0( materijal = meditMaterials[1] )<\/p>\n<p>else&#8230;ponavlja se samo se visinaMesha mno\u017ei sa {2, 3, 4, 5 i6}<\/p>\n<p>Na kraju je definisan \u201ebox\u201c , tj plo\u010dica odre\u0111ene visine, du\u017eine, debljine i materijala.<\/p>\n<p style=\"text-align: center\">box length: sirina width: duzina height: visina.value pos:pozicijaObj lengthsegs:1 widthsegs:1 wirecolor:black material:materijal<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Cela ova skripta je upakovana u \u201erollout\u201c, dijalog kojim se jednostavnije mogu menjati parametri (broj plo\u010dica u koloni\/redu i njena debljina). Klikom na dugme \u201ePoplo\u010daj\u201c izvr\u0161ava se funkcija date skripte. Ako Mesh nije selektovan izadje poruka za podse\u0107anje.<\/p>\n<p>&nbsp;<\/p>\n<p>rollout Poplocanje &#8220;Plocice&#8221;<\/p>\n<p>( \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 spinner JK &#8220;Br. u koloni: &#8221; type:#integer range:[1,1000,30]<\/p>\n<p>spinner JR &#8220;Br. u redu: &#8221; type:#integer range:[1,1000,30]<\/p>\n<p>spinner visina &#8220;Debljina plocice: &#8221; type:#integer range:[1,1000,2]<\/p>\n<p>button napravi &#8220;Poplocaj&#8221;<\/p>\n<p>on napravi pressed do<\/p>\n<p>if $ != undefined then<\/p>\n<p>(&#8230;&#8230;)<\/p>\n<p>else<\/p>\n<p>(messageBox &#8220;A da selektujes nesto mozda?&#8221;)<\/p>\n<p>&#8212; rollouta<\/p>\n<p>createDialog Poplocanje width:200\u00a0 &#8212; otvara dijalog<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2521\" src=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/21-300x189.jpg\" alt=\"Poplo\u010davanje\" width=\"300\" height=\"189\" srcset=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/21-300x189.jpg 300w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/21-1024x646.jpg 1024w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/21.jpg 1269w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\u00a0 \u00a0 \u00a0 \u00a0\u00a0<a href=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2522\" src=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/3-300x191.jpg\" alt=\"Izgled finalnog rezultata\" width=\"300\" height=\"191\" srcset=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/3-300x191.jpg 300w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/3-1024x653.jpg 1024w, https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-content\/uploads\/2014\/06\/3.jpg 1271w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Strategija pri re\u0161avanju problema bila je da se za bilo koji nacrtan mesh terena, prepozna odre\u0111ena visina kojoj \u0107e se dodeliti \u017eeljena boja. Kao reakcija na prepoznatu visinu jednog segmenta mesha, Max treba da napravi \u201ebox\u201c, odnosno plo\u010dicu odre\u0111ene boje. Na po\u010detku skripte potrebno je definisati sve globalne promenljive (koje \u0107e se koristiti kroz celu&hellip; <a class=\"more-link\" href=\"https:\/\/www.arhns.uns.ac.rs\/givsf\/visebojno-parametarsko-poplocanje-skripta-pomocu-if-petlje\/\">Continue reading <span class=\"screen-reader-text\">Vi\u0161ebojno parametarsko poplo\u010danje-skripta pomo\u0107u \u201eif\u201c petlje<\/span><\/a><\/p>\n","protected":false},"author":93,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"coauthors":[107],"class_list":["post-2519","post","type-post","status-publish","format-standard","hentry","category-radovi","entry"],"_links":{"self":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts\/2519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/users\/93"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/comments?post=2519"}],"version-history":[{"count":1,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts\/2519\/revisions"}],"predecessor-version":[{"id":2523,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/posts\/2519\/revisions\/2523"}],"wp:attachment":[{"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/media?parent=2519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/categories?post=2519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/tags?post=2519"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.arhns.uns.ac.rs\/givsf\/wp-json\/wp\/v2\/coauthors?post=2519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}