Projekt zawiera klasy krzywych:
- spirala logarytmiczna (plik log.l)
- krzywa lissajous (plik lissajous.l)
- krzywa motylkowa (plik motylkowa.l)
Projekt ilustruje schemat podziału programu na pliki. Otwórz i uruchom program zawarty w pliku krzywe_sl.l.
Program jest bardzo prosty: tworzy obiekt o wybranym typie krzywej i na podstawie parametrów tej krzywej tworzy
suwaki. Przy pomocy instrukcji include
program dołącza definicje krzywych znajdujące się w osobnych plikach.
Dzięki podziałowi na klasy i pliki definicje krzywych również są czytelnymi, krótkimi fragmentami kodu. Na wzór
jednej z krzywych możesz stworzyć własną. Konieczne jest zachowanie konwencji:
Każdy plik z definicją krzywej powinien dołączać plik z definicją klasy bazowej, ale tak by jednocześnie
uniknąć wielokrotnego dołączania pliku:
if not defined? "krzywa [include "krzywa.l]
Klasa bazowa zawiera prototyp funkcji fn
oraz całą maszynerię konieczną do odmalowania krzywej
po zmianie rozmiaru czy skali okna graficznego, obsługę zmiany parametrów, itp.
Spróbuj dodać do projektu plik z klasą dla krzywej asteroida:
to asteroid :c
use krzywa :c
to fn
pu setxy :s 0 pd
for [t 0 360] [
if :stop [stop]
let "x :s * (cos :t)^:k
let "y :s * (sin :t)^:k
setxy :x :y
]
end
:param,"K := {3 1 13 2}
:param,"S := {150 10 300 1}
end