TlačiťTlačiť Slovenčina English Hľadať RSS

© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 2. 5. 2024.

Stránka sa načítava, prosím čakajte…

Dátum: 1. 3. 2013, pred viacerými rokmi, aktualizované: 3. 1. 2020, pred štyrmi rokmi

Zadanie

Vyriešte kreslenie hviezdneho fraktálu s pomocou rekurzie!

 
obrázok

Podstatná časť riešenia

Nasledujúci kód obsahuje iba definíciu rekurzívnej metódy, ktorú je potrebné umiestniť do šablóny hlavnej triedy a zavolať ju v konštruktore s vhodnou hodnotou dĺžky. Experimentujte s rôznymi hodnotami a pokúste sa dopracovať k riešeniu zobrazenom na obrázku v zadaní.

Šablónu hlavnej triedy môžete nájdete pod príkladom alebo v dokumentácii programovacieho rámca GRobot. otvárané v novom okne
(obvykle ide o externý odkaz)

(Poznámka: Šablónu generuje aj generátorom projektov BlueJ, odporúčaný typ projektu – Jednoduchý, ale ten je v súčasnosti zastaraný. Nie je kompatibilný s najnovšou verziou programovacieho rámca.)

~

public void starFractal(double dĺžka)
{
	if (dĺžka >= 5)
	{
		vľavo(18);
		for (int i = 0; i < 5; ++i)
		{
			dopredu(dĺžka);
			vľavo(18);
			starFractal(dĺžka * 0.45);
			vpravo(18);
			vpravo(144);
			// (Poznámka: Predchádzajúce dva príkazy by sme mohli
			// zlúčiť do jedného. Sú rozdelené len z dôvodu názornosti:
			// 18° na návrat do pôvodnej orientácie a 144° ako pätina
			// zo 720° – cyklus for sa opakuje päťkrát.)
		}
		vpravo(18);
	}
}

 


Šablóna hlavnej triedy

~

import knižnica.*;

public class HviezdnyFraktál extends GRobot
{
	private HviezdnyFraktál()
	{
		/*# «sem vložte volanie metódy starFractal s vhodným argumentom» #*/
	}

	/*# «sem vložte kód príkladu (metódu starFractal)» #*/

	public static void main(String[] args)
	{
		new HviezdnyFraktál();
	}
}