2012-04-27 2 views
3

Итак, у меня есть следующий код, чтобы оживить что-то вверх ... это очень простой ...Javascript и Canvas - Анимационные синусоидальной волны

SetInterval(function() { 
    particlesY -= 1; 
}, 10); 

Затем цикл, как, например:

ctx.clearRect(0,0,canvas.width,canvas.height); 
ctx.drawRect(50, particlesY, 32, 32); 

Это прекрасно работает, но я хочу немного изменить X-Axis - я могу использовать Math.random(), чтобы получить случайное направление, но результат очень рывкий и довольно смехотворный.

Я понял, что синусоидальная волна даст мне приятное плавное изменение оси X.

Любые идеи? :(

ответ

2

Синусоидальная волна должна быть достаточно проста:

ctx.drawRect(Math.sin(particlesY) * 100, particlesY, 32, 32); 
+0

'Math.sin()' принимает радиан - декремент 'particlesY' на 1 каждый цикл даст вам только 6,28 образцов за цикл ... – Alnitak

+0

извините, да, я думал, что после того, как я ответил, было бы разумно разделить частицы на некоторый скаляр, прежде чем получить грех. – bharling

Смежные вопросы