früher gabs ja immer den schönen plot befehl in basic. Ich versuche gerade das nachzuahmen. Damit war es möglich recht nette funktionen darzustellen wenn man für JEDEN x-wert auf einen passenden y-Wert hatte. mein versuch ist folgendermaßen: int cycles=0; while(1) { if(cycles>127) { glcdclearscreen(); cycles=0; } float sine=32+(sin(cycles)*3); int value=(int)sine; if(value>0) glcdputpixel(cycles,value); cycles++; } der sinus ist erkennbar, allerdings hat er große lücken, ich denke mal das ist mein cast to int. Hat jemand ne bessere idee?
Hallo Philip, was meinst Du mit großen Lücken? Ich würde mal folgendes probieren: 1.) richtig runden: int value = (int)(sine+0.5); 2.) Mit der Frequenz des Sinus spielen (sin(cycles)*freq). Es können nunmal nur diskrete Werte auf dem Display dargestellt werden. Du mußt Dir überlegen, dass Du nur 128 Pixel in X-Richtung hast. Wieviele brauchst Du, um eine Periode ansehnlich darzustellen? Ist doch klar, dass Du nur 128/Perioden_auf_dem_Display Pixel für jede angezeigte Periode hast. Gruß, Nils
dann musst du durch eine linie verbinden , also noch einen linebefehl von punkt zu punkt zwischensetzen.
schau dir die Sprünge doch einfach mal in einer Excel Tabelle an. Vielleicht sind die Sprünge ja wirklich so groß. Gerade im Nulldurchgang würde ich das auch erwarten...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.