kurve plotten auf glcd

Gast #365831
Lesenswert?
• ▲
▼
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?
Gast #365832
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren