; Główna procedura rysująca korale ;---------------------------------------------- oto korale :ile ; Rysuje sznur korali zawierający ':ile' paciorków. ; Pierwszy i ostatni koralik jest czerwonym kwadratem ; Pozostałe są kółkami o losowym kolorze. ; Długość sznura wynosi 700 ; Koralików może być od 3 do 24. ; ; Wymagane jest wcześniejsze zdefiniowanie procedur ; koło :r - rysuje koło o pormieniu 'r' i zamalowuje go ; kwadrat :bok - rysuje kwadrat o boku 'bok' i też zamalowuje. ; jedno_koło :bok :odl - rysuje jedno kółko i czarny odcinek ; ; Rozmiar koralika nie jest określony w zadaniu, określamy go teraz. ; Tą wielkość mozna zmieniać jeśli nie pasuje. ; niech "rozmiar 20 ; ; Ustalamy grubość kreski - to mozna zmieniać. ; Ale ze względu na :rozmiar grubość powinna być dużo mniejsza od niego. ustalgrubośćpisaka 3 ; ; Sprawdzamy poprawność parametrów jeśli ( :ile < 3 ) [pisz [Ilość korali ma być większa od 2.] stop] jeśli ( :ile > 24 ) [pisz [Ilość korali ma być mniejsza od 25.] stop] ; ; Obliczamy odległość między koralikami i zaokrąglamy niech "odległość 700 / ( :ile - 1 ) niech "odległość zaokr :odległość ; ; Czyścimy ekran. ; Żółw jest na środku ekranu, skierowany na północ cs podnieś lewo 90 naprzód 350 prawo 180 ; Początkowy kwadrat w kolorze czerwonym. ; Skaczemy następnie do środka pierwszego kółka. ukm 4 kwadrat :rozmiar * 2 podnieś naprzód :odległość ; ; Rysujemy :ile - 2 kółek w losowym kolorze, skaczemy po każdym z nich. ; Robi to procedura "jedno_kółko " powtórz :ile - 2 [koło :rozmiar naprzód :odległość] ; ; Rysujemy końcowy kwadrat i wracamy do początku. Chowamy żółwia ukm 4 kwadrat :rozmiar * 2 ; ; Zostało jeszcze dorysowanie poziomych odcinków łańcucha ; Idziemy do punktu ( - 350, 0 ) wróć skier 270 naprzód 350 skier 90 ukp 0 ; idziemy do prawego brzegu lewego kwadratu naprzód :rozmiar ; ... i powtarzamy rysowanie łączących odcinków powtórz :ile - 1 [opuść naprzód :odległość - 2 * :rozmiar podnieś naprzód 2 * :rozmiar] ; To wszystko. Stajemy grzecznie na środku pola sż wróć skier 0 już ; ;-------------------------------------------------- ; Pomocnicza procedura rysująca koło ;-------------------------------------------------- oto koło :r ; Procedura rysuje koło i wypełnia go losowym kolorem, ale obwód koła jest czarny ; Pozycja żółwia i kąt jego ustawienia są zachowywane. ; Parametr ':r'jest promieniem koła. ; ; Nie ma w LOGO bezpośredniej procedury rysowania łuku ; więc przybliżymy koło przez 36 - kąt foremny. Obliczamy bok tego 36 - kąta. niech "bok 2 * 3.1415926 * :r / 36 ; Zaokrąglamy niech "bok zaokr :bok ; Zapamiętujemy bieżącą pozycję ( x,y ) ; przyda się do powrotu do środka koła niech "x pozx niech "y pozy ; Przesuwamy żółwia do brzegu koła i ustawiamy go stycznie do obwodu podnieś skier 0 naprzód :r skier 90 ; rysujemy okrąg na czarno ustalkolorpisaka 0 opuść powtórz 36 [naprzód :bok prawo 10] ; Wracamy do punktu wyjścia podnieś nowex :x ; Nie wiem dlaczego nie działa po prostu 'napoz [:x :y] ' nowey :y ustalkolorpisaka losowa 16 zamaluj już ; ;-------------------------------------------------- ; Pomocnicza procedura rysująca kwadrat ;-------------------------------------------------- oto kwadrat :bok ; Rysuje kwadrat o boku ':bok', środku w punkcie położenia żółwia ; i zamalowuje go aktualnym kolorem rysowania ; Ale obwód kwadratu jest na czarno ; ; Idziemy do górnego lewego rogu kwadratu podnieś naprzód :bok / 2 lewo 90 naprzód :bok / 2 prawo 180 opuść ; Rysujemy obwód kwadratu na czarno ukp 0 powtórz 4 [naprzód :bok prawo 90] ; Wracamy do punktu wyjścia i zamalowujemy kwadrat podnieś naprzód :bok / 2 prawo 90 naprzód :bok / 2 prawo 180 ; Wnętrze kwadratu na czerwono ukp 4 zamaluj już ;--------------------------------------------------