Skip to content

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.

Specification

Input

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

Solution

Pseudocode

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)

Block diagram

%%{init: {"flowchart": {"curve": "linear"}, "theme": "neutral"} }%%
flowchart TD
    START(["MinkowskiSausage(stopień, długość"]) --> K1{stopień = 0}
    K1 -- TRUE --> K2["Przód(długość)"]
    K2 --> STOP([STOP])
    K1 -- FALSE --> 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

Implementation

C++

Python

Blockly