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

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)

  1. Hallo,

    kann es sein, das du das kleinste gemeinsame Vielfache (kgV) zweier Zahlen suchst?

    Gruß Jürgen

    1. Hallo,

      kann es sein, das du das kleinste gemeinsame Vielfache (kgV) zweier Zahlen suchst?

      Gruß Jürgen

      Ein Traum! Das wird mir schon bei der Lösung sehr helfen. Google weiß auf "kgV" bestimmt passende Lektüre.

      Ich danke vielmals! :P