Užduotys

PRADEDANTIEJI - 1 KLASĖS UŽDUOTYS

  • 25. Užduotis.

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėsė, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    								void setup() {
    									size(400, 400);
    								
    								}
    								
    								void draw() 
    								{
    								 fill(130);
    								 rect(100, 240, 60, 150);
    								 fill(0, 250, 0);
    								 ellipse(130, 140, 160, 200);
    								
    								 fill(100);
    								 rect(200, 240, 160, 150);
    								 line(200, 240, 280, 100);
    								 line(360, 240, 280, 100);
    								 fill(200);
    								 rect(280, 260, 60, 60);
    								} 
  • 26. Užduotis.

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėsė, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
    println(3 > 5); // Prints "false"
    println(5 > 3); // Prints "true"
    println(5 > 5); // Prints "false"
    
    println(3 < 5); // Prints "true"
    println(5 < 3); // Prints "false"
    println(5 < 5); // Prints "false"
    
    println(3 >= 5); // Prints "false"
    println(5 >= 3); // Prints "true"
    println(5 >= 5); // Prints "true"
    
    println(3 <= 5); // Prints "true"
    println(5 <= 3); // Prints "false"
    println(5 <= 5); // Prints "true"
    
    
    
    println(3 == 5); // Prints "false"
    println(5 == 3); // Prints "false"
    println(5 == 5); // Prints "true"
    
    println(3 != 5); // Prints "true"
    println(5 != 3); // Prints "true"
    println(5 != 5); // Prints "false"
    
  • Atsakymas

    Atsakymas skirtas pasitikrinti

  • 27. Užduotis.

    Nupieškite "pimpačkiuką" (minion)

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

  • 28. Užduotis.

    Padarykite kiek įmanoma panašesnį į pateiktą pavyzdį. Turi būti du stačiakampiai pirmas nuo kairės krašto iki pelytės ir antras nuo pelytės iki dešinės galo. Turi būti nupieštos rodyklės

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

PAŽENGĘ - 2 KLASĖS UŽDUOTYS

  • 27. Užduotis.

    Nupie6kite "pimpačkiuką" (minion)

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

  • 28. Užduotis.

    Padarykite kiek įmanoma panašesnį į pateiktą pavyzdį. Turi būti du stačiakampiai pirmas nuo kairės krašto iki pelytės ir antras nuo pelytės iki dešinės galo. Turi būti nupieštos rodyklės

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

ŽINOVAI 3-4 KLASĖS UŽDUOTYS

  • 26a Užduotis

    Atvaizduokite 4 kamuoliukus (ellipse) pasinaudojus žinomo dydžio ciklu. Padarykite taip, kaip parodyta programoje. Turime atvaizduoti 9 kartus tą patį gyvūną (gyvūno paveikslėlis "data/animal2.png"). Atvaizdavimui reikia pasinaudoti žinomo dydžio ciklą.

  • 26b Užduotis

    Atvaizduokite kamuoliuko (ellipse) judėjimą pasinaudojus žinomo dydžio ciklu. Kamuoliuko judėjimui reikia pasinaudoti du ciklus, kurių dydis 50. Cikle tui būti x ir y koordinačių taškai. Atvaizdavimui reikia pasinaudoti žinomo dydžio ciklą.

  • video aprašai
  • 26a. Atsakymas
    		PImage animal; 
    		void setup() {
    		size(450, 300);
    		animal = loadImage("data/animal2.png");
    		} 
    		void draw() {
    		for(int i=0; i < width; i+=50)
    			{
    			image(animal, i,100, 50, 100);
    		}
    		} 
    		
  • 26b. Atsakymas
    		int num = 50;
    		int[] x = new int[num]; 
    		int[] y = new int[num]; 
    		void setup() { 
    		size(400, 400);
    		noStroke();
    		fill(255, 102);
    		}
    		void draw() { 
    		background(0); 
    		for (int i = num-1; i > 0; i--) { 
    		x[i] = x[i-1];
    		y[i] = y[i-1];
    		}
    		
    		x[0] = mouseX; 
    		y[0] = mouseY; 
    		for (int i = 0; i < num; i++) { 
    		ellipse(x[i], y[i], i/2.0, i/2.0); 
    		} 
    		} 
    		
  • 27 Užduotis

    Pasirinkite kokį eilėrašti ir paspaudus ir slenkant pelės klavišu turi rodyti tekstą. Turi būti panašus į pateiktą pavyzdį.

  • Sprendimas
    pamoka27 tekstas
  • 28 Užduotis

    Turime rašyti ten kur pelytė. Koordinates ir simbolius saugome masyvuose. Paspaudus pelyte turi viskas išsitrinti

  • Sprendimas
    pamoka28 tekstas

IŠMANANTYS 5-8 KLASĖS UŽDUOTYS

  • 25 Užduotis .

    Reikia sukurti programą, kaip parodyta. Mygtukai turi būti aprašome kaip objektai. Papildomai bus sukurtas objektas, kuris savyje turės nuotrauką ir visas funkcionalumas bus paveldėtas iš aprašyto objekto "Button"

  • Sprendimas
    pamoka25a pamoka25b pamoka25c
  • 26 Užduotis .

    Reikia sukurti programą, kaip parodyta. Mygtukai turi būti aprašome kaip objektai. Papildomai bus sukurtas objektas, kuris savyje visų mygtukų (Button) funkcionalumą. Mygtukai bus sudėti kaip masyvai (jų bus 100). Paspaudus turi pasikeisti spalva ir turi atvaizduoti taip tekstas, kuris mygtukas paspaustas.

  • Sprendimas
    pamoka25a pamoka25b pamoka25c pamoka25d pamoka25e
  • 27 Užduotis .

    Reikia sukurti programą, kaip parodyta. Turi būti šliaužiklis nuo 0 iki 300 ir pagal šliaužiklio reikšmę turi didėti stačiakampis.

  • Sprendimas
    pamoka27a pamoka27b
  • 27 Užduotis .

    Reikia sukurti programą, kaip parodyta. Turime atvaizduoti nuotrauką ir turime keisti nuotraukos spalvų intencyvumą priklausomai nuo pelytės pozicijos. Kuo labiau į dešinę tuo šviesesnė nuotrauką. (Šviesumas turi padidėti iki 10 kartų).

  • Sprendimas
    pamoka28

EKSPERTŲ UŽDUOTYS 

  • 1. Užduotis

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėse, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

    Turime kintamuosius, kurie pateikti kode. Reikia tuos kintamuosius panaudoti, kad gautme tokį pat vaizdą kaip pateikta. pvz line(a, f, b, g);

    Reiks panaudoti: line, rect, ellipse, triangle

  • Sprendimas
    Programuojame processing programoje arba paspaudus mygtuką "programuoti" turėsime langą, kuriame atliksime veiksmus analogiškus processing programai.
    Nustatome ekrano dydį: size(600, 600);
    NoStroke() raktažodžiu nustatome, kad būtų paveikslėliai be linijų kraštinėse.
    Nustatome fono spalvą pasinaudojus background(?); ? - [0..255].
    Stačiakampiui piešti pasinaudojame rect(?, ?, ?, ?);  ? - [0..255].
    Elipsei piešti pasinaudojame ellipse(?, ?, ?, ?);  ? - [0..255].
    Norint piešti figūrą turime rašyti taip: 
    	beginShape();         
    	vertex(?, ?);
    	...
    	...
    	vertex(?, ?);
    	endShape();  
    Norime piešti tik dalį ar visą ellipsę - naudosime arc(?, ?, ?, ?, ?, ?);
    1 parametras atstumas nuo krašto.
    2 atstumas nuo viršaus.
    3 elipsės ilgis.
    4 elipse aukštis.
    5 kokiu kampu pradėsime piešti.
    6 kokiu kampu baigsime piešti.
    Galimos kampo reikšmės nuo 0 iki 2*PI kas atitinka (0..360). Skaičius galime daryti ir didesnius bet jie yra kartotiniai ir neturi prasmės.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    void setup() {
    	size(600, 600);
    	noStroke();
    	background(140);
    	fill(170);
    	rect(0, 0, width, 20);
    	fill(160);
    	rect(0, height-100, width, 100);
    	fill(110);
    	rect(0, height-110, width, 10); 
    	fill(180);
    	rect(width/2-300/2, height-200, 300, 10);     
    	rect(width/2-260/2, height-190, 260, 15);     
    	rect(width/2-260/2, height-175, 10, 100);     
    	rect(width/2+260/2-10, height-175, 10, 100);    
    	fill(110);
    	rect(width/2-260/2, height-75, 10, 5);         
    	rect(width/2+260/2, height-75, -10, 5);
    	fill(160);
    	rect(width/2-260/2, height-190, 260, 5);      
    	fill(200);
    	rect(width/2+150, height-140, 70, 10);   
    	rect(width/2+150, height-130, 10, 60);   
    	rect(width/2+210, height-130, 10, 60);   
    	fill(220, 50, 110);
    	rect(width/2+150, height-150, 70, 10);    
    	fill(110);
    	rect(width/2+150, height-75, 10, 5);    
    	rect(width/2+210, height-75, 10, 5);
    	fill(180);
    	rect(width/2+150, height-130, 10, 5);    
    	rect(width/2+210, height-130, 10, 5);
    	fill(200);
    	rect(width/2-180, height-140, 200, 10);   
    	rect(width/2-180, height-140, 10, 70);    
    	rect(width/2+10, height-130, 10, 60);    
    	fill(220, 50, 110);
    	rect(width/2-180, height-150, 200, 10);   
    	fill(110);
    	rect(width/2-180, height-75, 10, 5);      
    	rect(width/2+10, height-75, 10, 5);
    	fill(180);
    	rect(width/2-180, height-130, 10, 5);
    	rect(width/2+10, height-130, 10, 5);
    	fill(255, 40);
    	ellipse(width/2, 290, 50, 50);   
    	fill(255, 30);
    	ellipse(width/2, 290, 60, 60);   
    	fill(255, 20);
    	ellipse(width/2, 290, 70, 70);   
    	fill(255, 10);
    	ellipse(width/2, 290, 80, 80);   
    	fill(255, 150);                 
    	ellipse(width/2, 290, 40, 40);
    	fill(30);
    	rect(width/2-2, 0, 4, 250);      
    	fill(60);
    	rect(width/2-50, 250, 100, 50); 
    	fill(0, 200, 255);
    	rect(0, 100, 80, 300);  
    	fill(35, 190, 95);
    	rect(0, 300, 80, 100);   
    	fill(220, 220, 255);
    	beginShape();         
    	vertex(0, 200);
    	vertex(40, 230);
    	vertex(40, 300);
    	vertex(0, 300);
    	endShape();
    	fill(200, 200, 235);
    	rect(40, 230, 40, 70);  
    	fill(90, 90, 95);
    	beginShape();
    	vertex(0, 200);        
    	vertex(80, 200);
    	vertex(80, 240);
    	vertex(40, 240);
    	endShape();
    	fill(70, 70, 75);
    	rect(15, 190, 20, 10);  
    	fill(200, 130, 215);
    	rect(0, 240, 10, 30);   
    	fill(100);
    	rect(0, 100, 80, 10);    
    	rect(80, 100, 10, 300);  
    	rect(0, 260, 80, 10);    
    	fill(120);
    	rect(0, 400, 100, 10);  
    	fill(100);
    	rect(0, 410, 90, 30);   
    	fill(80);
    	rect(0, 410, 90, 10);
    	fill(40);
    	rect(0, 110, 110, 4);
    	ellipse(110, 112, 12, 12);
    	fill(255, 150);
    	rect(50, 110, 50, 270);   
    	rect(50, 110, 50, 15);    
    	fill(200);
    	rect(width-110, 190, 110, 170);
    	fill(230, 175, 0);
    	rect(width-100, 200, 100, 150);
    	fill(190, 140, 0);
    	ellipse(width/2-20, height-240, 30, 30); 
    	ellipse(width/2+15, height-240, 30, 30);  
    	fill(0, 150, 0);
    	ellipse(width/2-25, height-248, 3, 3);   
    	fill(200, 150, 0);
    	ellipse(width/2, height-240, 30, 30);    
    	fill(0, 150, 0);
    	ellipse(width/2+3, height-250, 3, 3);
    	fill(0, 150, 255);
    	arc(width/2, height-240, 80, 80, 0, PI); 
    	fill(0, 120, 230);
    	rect(width/2-42, height-240, 84, 5);     
    	fill(255, 30);
    	rect(width/2-100, height-250, 30, 50);   
    	rect(width/2+100, height-250, -30, 50);
    	fill(185, 15, 15, 150);
    	rect(width/2-95, height-230, 20, 25);    
    	rect(width/2+95, height-215, -20, 10);
    	fill(50);
    	rect(width-35, height-125, 20, 25, 10, 10, 0, 0);
    } 
  • 2. Užduotis

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą.

    Reiks panaudoti: cos, sin, sukurti objektą, radians, dinaminį masyvą (pvz.: ArrayList)

  • Sprendimas
    
    							
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    int maxAge = 100;  
    ArrayList obj; 
    boolean pause = false;     
    void setup() {
    size(500, 500);
    background(120, 110, 100);
    obj = new ArrayList();
    for (int i=0; i < 3; i++) {
    Objektas f = new Objektas(width/2, height/2);
    obj.add(f);
    }
    }
    void draw() {
    if (!pause) {
    for (int i=obj.size()-1; i>=0; i-=1) {
    	Objektas f = obj.get(i);
    	f.update();
    	if (f.distFromCenter >= width/2-50 || f.age > maxAge) {
    		obj.remove(i);
    	}
    	f.display();
    }
    if (frameRate < 30) {
    	setup();
    }
    }
    }
    
    
    
    
    
    class Objektas {
    float angleChangeAmt = radians(8);
    float speed =          1;
    float chanceSplit =    2;
    float splitAngle =     radians(16);
    float x, y, prevX, prevY;
    float angle;
    float distFromCenter;
    int age = 0;
    Objektas(float _x, float _y) {
    x =     _x;
    y =     _y;
    prevX = x;
    prevY = y;
    angle = random(0, TWO_PI);
    }
    Objektas(float _x, float _y, float _angle) {
    x = _x;
    y = _y;
    angle = _angle;
    }
    void update() {
    age += 1;
    distFromCenter = sqrt(pow(width/2-x, 2) + pow(height/2-y, 2));
    angle += random(-angleChangeAmt, angleChangeAmt);
    prevX = x;
    prevY = y;
    x += cos(angle) * speed;
    y += sin(angle) * speed;    
    if (random(100) < chanceSplit) {
    	Objektas f = new Objektas(x, y, angle+splitAngle);
    	obj.add(f);
    	angle -= splitAngle;
    }
    }
    void display() {    
    stroke(255, 245, 235, 60);
    line(prevX, prevY, x, y);
    }
    }
    									
     
  • 7 Užduotis

    Padarykite taip, kaip parodyta programoje. Turime panaudoti rekursija atvaizduojant paveikslėlį. Atvaizdavimui nesinaudoti žinomo dydžio ciklu.

  • video aprašai
  • Atsakymas
    									int lygisMin = 3;
        int lygisMax = 10;
        float ilgis = 70;
        
        float kampasMin = PI/24;
        float kampasMax = PI/6;
    
        void recursiveTree (int lygis, float ilgis, float kampas){
            if (lygis>0){  
                pushMatrix();           
                rotate (kampas);         
                line (0,0,0,-ilgis);   
                pushMatrix();           
                translate(0,-ilgis);   
                scale (0.85f);          
                recursiveTree (lygis-1, ilgis, kampas);  
                popMatrix();  
                popMatrix(); 
                pushMatrix();
                rotate (-kampas);
                line (0,0,0,-ilgis);
                pushMatrix();
                translate(0,-ilgis);
                scale (0.85f);
                recursiveTree (lygis-1, ilgis, kampas);
                popMatrix();
                popMatrix();
            }
        }
    
        public void setup() {
            size(500, 500);
            stroke(27, 25, 9);
            strokeWeight(3);
        }
    
        public void draw() {
            background(color(245,247,232));
            
            float kampasP = map (mouseX, 0, width, kampasMin, kampasMax); 
            int lygis = (int)map (mouseY, height,0, lygisMin, lygisMax); 
            
            pushMatrix(); 
            translate (width/2, height); 
            recursiveTree (lygis, ilgis, kampasP); 
            popMatrix(); 
        }
      
Redaktorius