Winkelfunktionen aus Tabellen auslesen , BASIC

  • Hier mal eine kleine "Pufferanwendung" der un-dynamischen Art.


    Dabei wird eine Sinustabelle angelegt. Diese kann beliebig viele Einträge haben, was mit MAX festgelegt wird. In den reservierten Bereich werden dann MAX Werte hineingeschrieben und zwar so, daß eine komplette Sinusschwingung darin vorhanden ist - also von 0 bis zu 2 mal Pi , d.h. von 0 bis 360 Grad.


    Das schöne an so einer Tabelle ist nun, daß man a.) bereits die Skalierungen für den Bildschirm da mit hineinrechnen kann ( was später allerlei Multiplikationen spart ) und b.) man auch an verschiedenen Stellen beginnen kann die Inhalte auszulesen.


    Daher läßt sich mit zwei Werten die fortlaufend "durch" diese Daten wandern - sozusagen als Read-Pointer - sowohl ein Sinus als auch der dazugehörige Cosinus auslesen.

    Die Werte sind dann jeweils direkt plotbar als ( X,Y ) Päärchen.




    Zeilen 100 - 153 legen die Tabelle und Variablen an.

    Zeilen 200 - 270 schalten die Grafik ein und laufen für eine bestimmte Menge Schritte immer wieder von vorn durch die Tabelle. Dabei wird mit zwei Read-Pointern einmal ein Wert ausgelesen für X und zum anderen ein zweiter Wert um 90 Grad versetzt ( was so einem Cosinus entspricht ) für Y.


    Durch fixes Setzen auf 0 als Startwert bei Überschreiten des letzten Wertes der Tabelle kommt es zu einer Art Schrittfehler, der auftritt, wenn ein von 1 verschiedener Wert für die Erhöhung des Read-Pointers genutzt wird. Daraus ergibt sich bei jedem Umlauf so eine Art "Leserasterverschiebung" , die aber optisch sehr schöne Effekte macht ( bei DNA würde man von einem Frame Shift sprechen ).




    Wer das nicht mag, kann schreiben


    Code
    R1%=R1%+4 : IF R1% > MAX THEN R1%=R1%-MAX



    Im Anhang noch ein kleiner MP4 Film ( als ZIP gepackt ) mit vier Varianten der Figuren.


    Interessant sind auch Figuren, bei denen einer der beiden Read-Pointer jede Runde zusätzlich noch um eine extra Position verschoben wird.