Grafika żółwia jest charakterystyczna dla języka LOGO, przeznaczonego do nauki programowania dla dzieci. Jej podstawową zaletą jest podobieństwo do "ręcznego rysowania". Łatwiej jest projektować rysunek przesuwając odpowiednio pisak (w LOGO nazywany żółwiem) zamiast obliczać współrzędne każdej kreski, jak to jest w klasycznej grafice Pascala.
Poniżej prezentuję przykład realizacji grafiki żółwia w Delphi z wykorzystaniem obiektu bazującego na TImage.
Aplikacja posiada elementy sterujące umieszczone na pasku narzędziowym ToolBar1. Pozostały obszar zajmuje ekran żółwia tworzony dynamicznie.
Przycisk Button1 służy do kasowania ekranu, pozostałe służą do testowania różnych możliwości żółwia (rysowanie figur, fraktale itp).
Żółw jest rodzajem pisaka, który możemy ustawić w określonym punkcie ekranu, przesuwać po ekranie oraz ustawiać i zmieniać kierunek ruchu. Żółw, poruszając się, może za sobą zostawiać kreskę lub przemieszczać się bez rysowania.
Położeniem startowym żółwia jest środek ekranu (współrzędne x=0,y=0), żółw skierowany do góry (kąt=0).
Stan żółwia określają cztery pola:
Dodatkowo należy określić współrzędne środka ekranu w pikselach
Klasa TZolw dziedziczy po klasie TImage rozszerzając ją o metody charakterystyczne dla grafiki żółwia. Ich opis znajduje się w dalszej części strony. Należy dopisać w sekcji uses moduł ExtCtrls.
Są to jedyne procedury bezpośrednio wykorzystujące pikselową grafikę "Pascalowską". Są wykorzystywane wszędzie tam, gdzie zmienia się położenie żółwia. Sposób przeliczania współrzędnych, a zwłaszcza pionowej wynika z różnic między współrzędnymi ekranowymi a "żółwiowymi". Ilustruje to rysunek:
Procedura upoz ustawia kursor w podanym punkcie ekranu bez zmiany kąta, przy czym uwzględniany jest stan pióra.
Procedura ukat ustawia kąt żółwia, przeprowadzając jednocześnie normalizację tak, aby sprowadzić go do przedziału <0-360).
Metody przestawiają żółwia o podaną liczbę kroków w aktualnym kierunku naprzód (np) lub wstecz (ws). Działanie np polega na odpowiednim zastosowaniu metody upoz, ws wykorzystuje np:
Poniższe procedury rysują podstawowe figury foremne.
Dla obydwu procedur punktem startowym i końcowym jest środek ekranu.
Procedura nkatop rysuje wielokąt o n bokach opisany na okręgu o promieniu r.
Procedura nkatwp rysuje wielokąt o n bokach wpisany w okrąg o promieniu r.
Aby narysować okrąg wystarczy wywołać jedną z powyższych procedur dla dużej wartości n (np. n=50).