Stückweise lineare Funktionen in Scripts: Unterschied zwischen den Versionen

Aus EGIS Wiki
Zur Navigation springen Zur Suche springen
imported>DrBlackError
(Die Seite wurde neu angelegt: „Mit diesem sperrigen Begriff sind Funktions-Kurven gemeint, die vom Programmierer frei erstellt werden können. Definiert werden sie, indem (mindestens 2) X-Y-…“)
 
imported>DrBlackError
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
[[Category:Lexikon]]
[[Category:Unvollständige Seiten]]
[[Category:Unformatierte Seiten]]
Mit diesem sperrigen Begriff sind Funktions-Kurven gemeint, die vom Programmierer frei erstellt werden können. Definiert werden sie, indem (mindestens 2) X-Y-Paare (Punkte) definiert werden, die dann rechnerisch mit geraden Linien verbunden werden. An anderer Stelle treten solche Funktionen in LOTUS auch auf, z.B. als Volume-Kurven im Sound-Editor.
Mit diesem sperrigen Begriff sind Funktions-Kurven gemeint, die vom Programmierer frei erstellt werden können. Definiert werden sie, indem (mindestens 2) X-Y-Paare (Punkte) definiert werden, die dann rechnerisch mit geraden Linien verbunden werden. An anderer Stelle treten solche Funktionen in LOTUS auch auf, z.B. als Volume-Kurven im Sound-Editor.
Ein typisches Beispiel hierfür sind Motorkennlinien. Diese folgen nicht einer einzelnen mathematischen Formel, sondern müssen entsprechenden Diagrammen der Datenblätter nachempfunden werden.
Ein typisches Beispiel hierfür sind Motorkennlinien. Diese folgen nicht einer einzelnen mathematischen Formel, sondern müssen entsprechenden Diagrammen der Datenblätter nachempfunden werden.

Aktuelle Version vom 18. Juli 2021, 16:23 Uhr


Mit diesem sperrigen Begriff sind Funktions-Kurven gemeint, die vom Programmierer frei erstellt werden können. Definiert werden sie, indem (mindestens 2) X-Y-Paare (Punkte) definiert werden, die dann rechnerisch mit geraden Linien verbunden werden. An anderer Stelle treten solche Funktionen in LOTUS auch auf, z.B. als Volume-Kurven im Sound-Editor. Ein typisches Beispiel hierfür sind Motorkennlinien. Diese folgen nicht einer einzelnen mathematischen Formel, sondern müssen entsprechenden Diagrammen der Datenblätter nachempfunden werden.


Die Funktionen werden nach folgendem Prinzip angelegt:

Im Initialisierungs-Teil eine neue "Funktionshülle" definieren Im Initialisierungs-Teil der Funktion nacheinander Wertepaare hinzufügen Funktion an beliebiger Stelle verwenden Konkret werden diese Schritte wie folgt durchgeführt:


Zuerst muss eine globale Integer-Variable definiert werden, die zur Identifikation der Funktion dient:


Testfunction: integer;


Mit der Funktion LinFuncNew kann man nun im Initialisierungs-Teil eine neue Funktion anlegen:


Testfunction := LinFuncNew;


Dieser Funktion kann man nun mit mehrmaligem Aufruf von LinFuncAddPair(id, x, y) die nötigen Wertepaare übergeben. Die Reihenfolge ist wichtig! X muss stets größer werden!


Code LinFuncAddPair(Testfunction, 2, 6); LinFuncAddPair(Testfunction, 6, 5); LinFuncAddPair(Testfunction, 7, 8); LinFuncAddPair(Testfunction, 8, 2);


Schließlich kann man an jeder beliebigen Stelle (natürlich erst nach der Definition) die Funktion mit LinFuncGetValue(id, x) verwenden:


Ergebnis := LinFuncGetValue(Testfunction, 4); // Ergebnis = 5.5