WDI – zajęcia 11

Zadanie na dzisiaj polega na zaimplementowaniu hierarchii klas umożliwiającej rysowanie fraktali za pomocą biblioteki turtle. W szczególności chcemy narysować krzywą Kocha oraz trójkąt Sierpińskiego.

Diagram klas wygląda następująco:
Diagram klas
W pierwszej kolejności należy napisać klasę Fraktal, która będzie odpowiedzialna za rysowanie. Klasa ta zawiera następujące atrybuty:

  • turtle – obiekt klasy Turtle, służący do rysowania linii,
  • komendy – funkcja, która dla danej dlugości i głębokości zwraca listę dwójek: (komenda,wartość) (są to dane potrzebne naszemu żółwiowi aby mógł narysować określony kształt),
  • nazwa – nazwa danego fraktala.

Poza tym klasa Fraktal posiada następujące metody:

  • rysuj(dlugosc,glebokosc) – metoda, która dla danej długości i głębokości rysuje określony kształt (kształt jest w naszym przypadku określony przez listę uzyskaną poprzez wywołanie funkcji komendy),
  • __repr__() – metoda specjalna, która pozwala traktować obiekt jako napis, ma zwracać nazwę fraktala,
  • __init__(nazwa,komendy) – metoda specjalna, która pozwala zainicjalizować zmienne podczas tworzenia obiektu.

Następnie można implementować kolejne klasy – konkretne fraktale, na przykład krzywą Kocha. W naszym przypadku klasy te będą dziedziczyć z klasy Fraktal i muszą definiować metodę wzor, której zadaniem jest obliczenie ruchów zółwia dla danej długości i głębokości. Tak zdefiniowaną metodę można przekazać do nadklasy wraz z nazwą fraktala.

Leave a Reply

Your email address will not be published. Required fields are marked *