Klasa bazowa linked_node
umożliwia tworzenie systemów połączonych ze sobą węzłów.
Wykorzystują ją dwie symulacje: łańcuszek zaczepiony za jeden z końców i rozpięta na ramie siatka. W obu
symulacjach możesz chwytać i przeciągać węzły w czasie działania programów.
Poniższa lista wymienia zasady tworzenia własnych klas węzłów korzystających z linked_node
:
- Węzeł musi być zainicjalizowany przed startem. Inicjalizacja musi wypełnić listę połączeń:
:links
, wygodnie jest więc najpierw utworzyć wszystkie węzły,
a potem je zainicjalizować w drugim obiegu pętli.
Na koniec inicjalizacji wywołaj funkcję
initialized :r :px :py
.
Jest to konieczne do ustawienia początkowej pozycji żółwia i ustawienia promienia, który w symulacjach jest używany
przy obliczaniu siły pomiędzy węzłami.
-
Przedefiniuj funkcję
fcoeff :d
aby zmienić domyślny wzór siły pomiędzy żółwiami w zadaniej odległości.
- Ustaw
"fixed := true
aby unieruchomić żółwia w jednym położeniu.
- Ustaw jeden stoper sterujący symulacją:
"clock := timer [
signalw "forces
(signal "step :dt)
signal "loss
] 20
Przedział czasu powinien być mały, aby zachować wysoką precyzję obliczeń kroków i sił, ale wystarczająco długi,
by wszystkie żółwie zdążyły wykonać swoje obliczenia.
- Ustaw drugi stoper odmalowujący zawartość okna (tak, by uniknąć zbyt częstego odświeżania):
"painter := timer [refresh] 50
- W kodzie łatwo można rozpoznać jeszcze kilka parametrów węzłów takich jak masa, siła ciążenia, itp. Udanej zabawy!