Stránka sa načítava, prosím čakajte…
© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 2. 5. 2024.
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!
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.
(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(); } }