Przejdź do treści

Minkowski Sausage

Minkowski Sausage, znana również jako Krzywa Minkowskiego lub Wyspa Minkowskiego, jest rodzajem krzywej fraktalnej. Jest konstruowana poprzez rekursywne modyfikowanie odcinka linii w bardziej złożony kształt. W każdej iteracji każdy odcinek linii jest zastępowany serią mniejszych segmentów, które tworzą wzór zygzakowaty. Ten proces zwiększa złożoność i szczegółowość fraktala z każdym krokiem, co skutkuje kształtem wykazującym samopodobieństwo i skomplikowane wzory na każdej skali.

Specyfikacja

Dane

  • stopień - stopień fraktala
  • długość - początkowa długość linii

Rozwiązanie

Pseudokod

procedura MinkowskiSausage(stopień, długość):
    1. Jeżeli stopień = 0, to:
        2. Przód(długość)
        3. Zakończ
    4. Prawo(30)
    5. MinkowskiSausage(stopień - 1, długość / 2)
    6. Lewo(90)
    7. MinkowskiSausage(stopień - 1, długość / 2)
    8. Prawo(90)
    9. MinkowskiSausage(stopień - 1, długość / 2)
    10. Lewo(30)

Schemat blokowy

%%{init: {"flowchart": {"curve": "linear"}, "theme": "neutral"} }%%
flowchart TD
    START(["MinkowskiSausage(stopień, długość"]) --> K1{stopień = 0}
    K1 -- PRAWDA --> K2["Przód(długość)"]
    K2 --> STOP([STOP])
    K1 -- FAŁSZ --> K4["Prawo(30)
    MinkowskiSausage(stopień - 1, długość / 2)
    Lewo(90)
    MinkowskiSausage(stopień - 1, długość / 2)
    Prawo(90)
    MinkowskiSausage(stopień - 1, długość / 2)
    Lewo(30)"]
    K4 --> STOP

Implementacja

C++

Python

Blockly