y=F(x)     Y als Funktion von X

grafische Darstellung mathemat. Funktionen

Ich selbst habe zwar keine Nutzung für dieses Programm, ist es eine reizvolle Aufgabe für LISP-Programmierung.
Ich habe mir als Beispiel eine Sinus-Kurve genommen. Als X-Wert dient mir der Winkel, gemessen in Grad, und ich den Sinus-Wert verwende ich mit einem Faktor für die Y-Achse. Den Sinus-Wert liefert mir AutoCAD, allerdings braucht es einen Radiant als Argument.
Wie ermittle ich den Sinus- Wert, zunächst mal zeich- nerisch:
Ich zeichne einen Kreis, Zentrum bei 0,0 mit einem Radius von 1. Dann zeichne ich eine Linie im Winkel von 30°. Der Y-Wert des Schnittpunktes ergibt mir den Sinus-Wert.
Müsste, und das kenn ich noch aus meiner Lehrzeit, exakt 0,5 sein.
Sinuskurve.gif Es würde natürlich auch reichen ein Linie mit einer Länge von eins zu zeichnen und den Y-Wert des Endpunktes ermitteln.
Der letzte Hinweis ist auch schon die Lösung, wie ich den Sinus-Wert zum Beispiel mit AutoCAD berechnen kann:
(cadr (polar '(0 0 0)
       (*(/ pi 180) 30) 1))

So kann der Sinus-Wert ermit- telt werden. AutoCAD stellt mir hierfür aber eine Funktion zur Verfügung mit der ich es etwas


einfacher habe. Die Funktion heißt SIN, verlangt aber als Argument einen Winkel gemessen als Bogenmaß.
Bogenmaß = Länge eines Bogens mit einem Radius von 1 bis zum entsprechendem Winkel. So etwas habe ich in meiner oben genannten Er- klärung bereits enthalten. Das Bogenmaß eines Halbkreises ist die Konstante PI = 3.14.. . Das Bogenmaß errechnet sich aus Pi geteilt durch 180 multi- pliziert mit dem zu ermitteldenden Winkel. In AutoCAD/VLisp sieht die Formel so aus:
(*(/ pi 180) Win)
Daraus ergibt sich die Nutzung der Sinus-Funktion:
(sin (*(/ pi 180) Win)) Gebe ich diese Zeile in AutoCAD ein, ersetze Win durch 30 müsste ich 0.5 zurück bekommen: Sinus_30.jpg
Wer sich schon ein wenig mit meinen Tools auseinander gesetzt hat, kennt die Funktion GiB (Grad- in Bogenmaß).

Unter Nutzung dieser Funktion könnte die Eingabe so aus- sehen:
(sin (GiB Win))
Nun will ich aber den Sinus-Wert über den X-Wert darstellen. Eine erste Lösung ist — und sie wissen bei ist sie erst einmal Arbeitsintensiv:
Ich habe die Polar-Funktion verwendet, welche drei Argu- mente erwartet:
Ausgangspunkt, Richtung und Entfernung.
Das Ergebnis ist nicht ganz so prickelnd. Die Kurve ist recht flach! Klar der Sinus-Wert bewegt sich ja auch nur zwischen 1- und 1. Ich muss noch einen Faktor hinzufügen: Ich habe den Faktor 100 hin- zugefügt.


Um nicht jeden Punkt einzeln einzugeben, kann ich eine Schleife benutzen. Eine WHILE-Schleife wird so lange durchlaufen, bis eine Bedingung erfüllt ist. Die Bedingung könnte der X-Wert sein. Ich definiere einen Start-Wert, einen maximalen und einen Steigerungswert, z.B. 180 für den oberen Sinusbogen und 360 für eine komplette Sinus-Schwinge:
Meine Eingaben inclusive WHILE-Schleife reduzieren sich erhebnlich:
Und das Ergebnis — jetzt mit feinerer Teilung kann sich sehen lassen.
Jetzt kann ich innerhalb der Routine den Start-, End- und Steigerungs-Wert einstellen. Ich nehme noch den Faktor hinzu und will diese Werte mit dem Routinen-Aufruf über- geben:
Habe ich bis jetzt nur den Progammnamen eingegeben, muss ich jetzt wissen, was ich in welcher Reihenfolge mit ein- geben muss. Dies sollte ich z.B. in einer PRINC oder ALERT- Funktion unterbringen.


Ich habe das Programm Sinus genannt und als Start-Wert 0, Endwert 360, Teilung 10 und als Faktor 100 verwendet.
Das obige Bild zeigt meinen Programm-Aufruf und das Er- gebnis auf einem 100er Raster.

In den letzten Tagen habe ich meine Routine dahin erweitert, dass ich auch die Berech- nungsformel mit dem Pro- gramm-Aufruf übergebe.
Zusätzlich habe ich die einzelnen Berechnungsergeb- nisse in einer Punktliste gespeichert, um am Ende auch den Bildschirmausschnitt auf das gezeichnete Objekt zu lenken.
Das Ergebnis meiner Arbeiten erhalten Sie durch ein Klick auf die folgende Grafik

yFx-Meldung.jpg
Index © Werner-Maahs@T-Online.de