siatki połączeń


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!

pobierz projekt