Я создаю анимацию предварительной загрузки изображения, то есть кружок/пирог, который нарисован. Каждый «срез» - totalImages/imagesLoaded. Поэтому, если загружено четыре изображения и 2, он должен рисовать до 180 с течением времени.Математика и облегчение для анимации Javascript/Canvas Предварительная загрузка анимации
Я использую requestAnimFrame, который отлично работает, и у меня есть настройка deltaTime, чтобы ограничить анимацию до времени, однако у меня проблемы с математикой. Самое близкое, что я могу получить, это то, что он оживляет и облегчает приближение, где он должен быть, но тогда приращения значения становятся все меньше и меньше. По существу, он никогда не достигнет завершенного значения. (90 градусов, если одно изображение загружено, в качестве примера).
var totalImages = 4;
var imagesLoaded = 1;
var currentArc = 0;
function drawPie(){
var newArc = 360/totalImages * this.imagesLoaded // Get the value in degrees that we should animate to
var percentage = (isNaN(currentArc/newArc) || !isFinite(currentArc/newArc)) || (currentArc/newArc) > 1 ? 1 : (currentArc/newArc); // Dividing these two numbers sometimes returned NaN or Infinity/-Infinity, so this is a fallback
var easeValue = easeInOutExpo(percentage, 0, newArc, 1);
//This animates continuously (Obviously), because it's just constantly adding to itself:
currentArc += easedValue * this.time.delta;
OR
//This never reaches the full amount, as increments get infinitely smaller
currentArc += (newArc - easedValue) * this.time.delta;
}
function easeInOutExpo(t, b, c, d){
return c*((t=t/d-1)*t*t + 1) + b;
}
Я чувствую, что у меня есть все правильные элементы и ценности. Я просто собираю их неправильно.
Любая помощь оценивается.
Perfect. Я подумал о том, чтобы щелкнуть, но, возможно, я что-то упустил. На самом деле мне недавно сказали парадокс черепахи! Как облегчение jQuery справляется с проблемой, знаете ли вы? – stuntboots
Итак, я зажал его, используя это: 'this.currentArc + = this.Clamp ((newArc - hello) * this.time.delta, 2, 500);' Функция Clamp, которую я использую, работает , Я выписал значения. И в то время как непринужденность очевидна, легкость в ней минимальна, несмотря на то, что вы пытаетесь сделать несколько легкости в/из уравнений. Есть ли что-то в моих расчетах, которые не позволяли бы правильно ослабить? При ослаблении он замедляется до конца. Ослабление в этом едва заметно. – stuntboots