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:
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 funkcjikomendy
),__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.