Projekt zawiera klasy krzywych:

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