Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Kardioidy
  • Język programu: Basic
  • Platforma: ZX Spectrum
  • Kod zamieszczono w Bajtek 01/1987
  • Autor listingu: M.W.
  • Listing nadesłał: Faust

Stan listingu:

4
Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku

Program ten kreśli miły dla oka wzór, złożony z odbitych symetrycznie krzywych, zwanych kardioidami.
Krzywe te opisane są równaniem parametrycznym:
x = y*(1 -cos(k))*cos(k)
y = r*(1 -cos(k))*sin(k)
gdzie 0 <= k <= 2n
Geometrycznie krzywa ta może być interpretowana jako droga punktu okręgu, toczącego się (zewnętrznie) po okręgu o tym samym promieniu.
Rysunek kreśli się długo, co spowodowane jest powolnym obliczaniem wartości funkcji trygonometrycznych przez Spectrum — aż czterech w każdym kroku algorytmu.
Zmienna "Rozdzielczość" określa dokładność tworzonego rysunku. "Promień" jest proporcjonalny do jego wielkości, zaś "Gęstość" wyznacza ilość krzywych, składających się na jedną połowę wzoru.
Wykreślenie jednego rysunku nie jest jednak kresem możliwości naszego programu (inaczej niewielki byłby z niego pożytek). Zmieniając równania parametryczne krzywych — np. znaki + na -, funkcje SIN i COS oraz parametry K i R — możemy uzyskać cały szereg nowych, interesujących deseni.
 

Kardioidy