Danke dir für die Antwort. Vollkommen richtig, nur leider war ich schon so neben der Spur dass ich sogar die Frage falsch gestellt habe.
Ich muss mein Vorhaben genauer erklären (Bitte Post #1 ignorieren):
var positions = [
{x:100, y:300, z:40}, // 0%
{x:400, y:100, z:-70}, // 33.3333%
{x:50, y:800, z:100} // 66.6666%
];
var duration = 300000; // 5 minutes in ms
var methods = {
calculatePosition: function (now) {
var percent = 0;
var pos = {x:0, y:0, z:0};
// hier weiß ich nicht weiter
return pos;
}
};
var elem = new Element3D ();
var interval = setInterval(function () {
var pos = methods.calculatePosition(Date.now());
elem.x = pos.x;
elem.y = pos.y;
elem.z = pos.z;
},20);
Mein Ziel ist es jetzt dass methods.calculatePosition, abhängig vom Parameter „now“, die zur aktuellen Uhrzeit richtige Position für ein 3D Element zurückgibt.
Die Objekte im Array „positions“ sind jeweils, wie soll ich sagen, Wegpunkte. Es können unterschiedlich viele „positions“ angegeben werden.
Anhand der von mir gesuchten Prozent, soll dann anschließend der Mittelwert zwischen den „positions“ berechnet werden.
Bei 50% also irgendwas zwischen positions[1] und positions[2].
Die Dauer, bis einmal die kompletten „positions“ die Runde gemacht haben (also 0-100%) ist in der Variable „duration“ mit 300000 Millisekunden angegeben, also 5 Minuten.
Wenn die Funktion also zum ersten mal aufgerufen wird, soll nicht bei 0% begonnen werden, sondern gemessen an der Uhrzeit die richtige Position ermittelt werden.
0 % sollten also jeden Tag um 00:00:00 Uhr, 00:05:00 Uhr, 00:10:00 Uhr, … 23:55:00 Uhr erreicht werden.
100% sollten jeden Tag um 00:04:59 Uhr, 00:09:59 Uhr, 00:14:59 Uhr, … 23:59:59 Uhr erreicht werden.
50 % sind daher in etwa bei 00:02:30 Uhr, … erreicht.
Ach Pseudo-Code ist willkommen, ich benötige wahrscheinlich nur einen kleinen Denkanstoß.
Hoffe es ist verständlich und auch lösbar was ich erreichen möchte
DANKE!
PS: Es geht mir jetzt mal noch nicht um die Berechnung des Mittelwertes, sondern „nur“ um die Ermittlung des Prozentwertes.