Przejdź do treści

Smocza Krzywa

Opis problemu

Smocza krzywa to ciekawy fraktal, który wygląda bardzo efektownie.

Specyfikacja

Dane

  • stopień - stopień fraktala
  • długość - długość linii
  • znak - wartość \(1\) lub \(-1\) oznaczająca, w którą stronę należy skręcić

Rozwiązanie

Pseudokod

procedura SmoczaKrzywa(stopień, długość, znak):
    1. Jeżeli stopień = 0, to:
        2. Przód(długość)
        3. Zakończ
    4. Lewo(45 * znak)
    5. SmoczaKrzywa(stopień - 1, długość, 1)
    6. Prawo(90 * znak * -1)
    7. SmoczaKrzywa(stopień - 1, długość, -1)
    8. Lewo(45 * znak)

Schemat blokowy

%%{init: {"flowchart": {"curve": "linear"}, "theme": "neutral"} }%%
flowchart TD
    START(["SmoczaKrzywa(stopień, długość, znak)"]) --> K1{stopień = 0}
    K1 -- PRAWDA --> K2["Przód(długość)"]
    K2 --> STOP([STOP])
    K1 -- FAŁSZ --> K4["Lewo(45 * znak)\nSmoczaKrzywa(stopień - 1, długość, 1)\nPrawo(90 * znak * -1)\nSmoczaKrzywa(stopień - 1, długość, -1)\nLewo(45 * znak)"]
    K4 --> STOP

Implementacja

C++

Python

Blockly