MrSmith: Mathematik - Berechnung der mindestens benötigten Durchgänge

Beitrag lesen

So. Ich hänge mal wieder an was bestimmt für euch simplen fest.

Ich habe eine Canvas-Javascript-Klasse geschrieben, welche ich nun mit einem GIF-Encoder kombiniert habe. Kurz: Ich kann aus meinen Canvas-Animationen GIFS machen.

Nun ist klar, was ich will. Ich will wissen, nach wievielen Durchgängen der Animation im Canvas der entsprechende 0-Punkt zur fließenden Animation erreicht wird.

Zum Beispiel habe ich eine Animation mit (1:1) 400 bildern. Davon lasse ich aber via Frameskip (um es schneller laufen zu lassen) 7 Frames je Durchgang springen (anstelle von 1).

Nun ist mein Problem. Wie kann ich VORHER ausrechnen, wieviele Frames es brauch, bis ich wieder bei exakt frame 0 ankomme?

Bei 400 Bildern und einem FrameSkip von 1 (also jedes frame), wäre die sache einfach. 400 frames. Bei einem frameskip von 2 ist es auch einfach. da wäre ich nach 200 bildern durch. doch bei 3 wird es dann schon schwieriger.

Wer kann mir da helfen?

Aktuell ermittle ich das "frame 0" indem ich einfach folgendes mache:

self.frame += self.frameSkip;
while(self.frame > self.max_frames) {
    self.frame -= self.max_frames + 1;
}
self.generatedFrames += 1;
if(self.frame == 0) {
    // Hier ist frame 0.
    // Es wurden self.generatedFrames
    // generiert. Dieses Frame 0 nicht
    // mit eingerechnet. Das jetzige
    // Frame 0 würde erst beim
    // nächsten Durchgang erzeugt
    // werden.
    self.generatedFrames = 0;
}

Gibts da eventuell ne relativ simple Formel, die mir da das genau ausrechnet/zurückgibt anhand von Frameanzahl (self.max_frames) und frameSkip? (1 ist hierbei das minimum. 0 wäre verständlicherweise ohne jegliche animation)