Stránka sa načítava, prosím čakajte…
© 2005 – 2024 Roman Horváth, všetky práva vyhradené. Dnes je 6. 5. 2024.
Dátum: 22. 2. 2013, pred viacerými rokmi, aktualizované: 30. 7. 2020, pred štyrmi rokmi
Zadanie
Vyriešte kreslenie nasledujúceho útvaru s pomocou rekurzie.
Riešenie
~
import knižnica.*; public class Štvorcoid extends GRobot { private Štvorcoid() { // Úvodné nastavenia: super(600, 600); Svet.zbaľ(); Svet.nekresli(); skry(); // Na umiestnenie kresby do stredu je potrebné posunúť sa // o polovicu uhlopriečky štvorca správnym smerom: double dĺžka = 300; skoč(0, -dĺžka / Math.sqrt(2)); // (Poznámka: ak ste porozumeli riadku vyššie, tak viete, // že sa robot posunul o polovicu dĺžky uhlopriečky smerom // nadol. Tak sa dostal do spodného rohu najväčšieho štvorca // na kresbe v zadaní. Odtiaľ začne kresliť a tam aj skončí.) // Zvyšok zabezpečí niekoľkonásobná krekurzia metódy štvorcoid, // ktorá samú seba počas jedného vykonania zavolá tri razy… štvorcoid(dĺžka); Svet.kresli(); } void štvorcoid(double dĺžka) { if (dĺžka > 3) { doľava(45); for (int i = 0; i < 4; ++i) { dopredu(dĺžka / 4); doľava(90); štvorcoid(dĺžka / 4); doprava(90); dopredu(dĺžka / 2); doľava(90); štvorcoid(dĺžka / 4); doprava(90); dopredu(dĺžka / 4); doprava(135); dopredu(dĺžka / 3); štvorcoid(dĺžka / 6); dozadu(dĺžka / 3); doľava(45); } doprava(45); } } public static void main(String[] args) { new Štvorcoid(); } }