Eingang:Sprung Rampe->OK, aber wie SINUS???
-
Hallo,
ich bin auf folgendes Problem bei einer Erweiterung meines Programmes gestoßen...Ich berechne bis jetzt mit:
for (i=0;i<KMAX;i++) { if (Parameter.Auswahl==Sprung) { (i==0)?(X_EIN[i] = Parameter.Ein):(X_EIN[i] = Parameter.Ein); }...
damit klappt die Sprungfunktion für den Eingang, Parameter.Ein ist für die Sprunghöhe zuständig!
mit:
for (i=0;i<KMAX;i++) { if (Parameter.Auswahl==Rampe) { X_EIN[i] = i*Parameter.Ein; }...
damit klappt auch die Rampenfunktion für den Eingang, Parameter.Ein ist in diesem Falle für die Anstiegsgeschwindigkeit zuständig!
Aber wie bekomme ich jetzt als Eingangsfunktion ne Sinusfunktion hin????
for (i=0;i<KMAX;i++) { if (Parameter.Auswahl==Sinus) { :confused: ? ? ? TOTALE_RATLOSIGKEIT ? ? ? :confused: }...
kann mir da jemand auf die Sprünge helfen...
-
#include <cmath> dobule d = 90; int x = sin(d); cout << x << endl; // Komisches Ergebnis da du nicht vergessen darfst das d in Radianten angegeben werden soll :)
Edit: Code-Tags mögen mich nicht.
MfG SideWinder
-
habe das jetzt mal so:
#include <cmath>
for (i=0;i<KMAX;i++) { if (Parameter.Auswahl==Sinus) { dobule d = 90; int x = sin(d); X_EIN[i] = x; }...
leider ist da alles 0 0 0 0 0 0 0 0 0 0...
-
das hat man nun vom kopieren...
for (i=0;i<KMAX;i++) { if (Parameter.Auswahl==Sinus) { double d = 90; int x = sin(d); X_EIN[i] = x; }...
so sieht es natürlich aus, klaptt trotzdem net
0 0 0 0 0 0 0 0 0 ....
-
Sorry mein Fehler, natürlich speicherst du das Ergebnis von sin() nicht in einer int-Variable sondern ebenfalls in einer float bzw. double Variable! Ganzzahlig war ein sin()-Ergebnis noch nie
Natürlich muss auch das Array X_EIN vom Typ double[] sein!
MfG SideWinder
-
sicher dat, habe es geändert, und danke ertstmal. Er berechnet zumindest mal keine Null...
aber es kommt ein konstanter Wert heraus, sollte eine Sinusfunktion nicht zu verschiedenen Zeiten(in meinem Fall i) verschiedene Werte haben
wie z.B:
für i= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 usw
X_EIN= 1 2 1 0 1 2 1 0 1 2 1 0 1 2 1 0 1 uswirgendwer muss auf meiner Leitung stehen...
Ach ja das bin ich selber
-
// Statt: double d = 90; double x = sin(d); X_EIN[i] = x; // Steht aber schon: X_EIN[i] = sin(i);
?
MfG SideWinder
-
muss glaube ich mal nen Kaffee trinken, habe jetzt
for (i=0;i<KMAX;i++) { if (Parameter.Auswahl==Sinus) { X_EIN[i] = sin(i); }...
und es schaut sehr gut aus
Muss ich jetzt erstmal schauen was überhaupt rauskommt, aber danke ertsmal