2016-07-06 11 views
1

Я пытаюсь получить хороший вверх и вниз анимации происходит на моем сайте с помощью JavaScript, но мне нужна последовательность, как это:Как получить пазухи, как по модулю шаблон

0 1 2 3 4 3 2 1 0 1 2 3 4 ...

Но модуль, который Я предпочитаю использовать для повторяющихся действий только дает мне:

0 1 2 3 4 0 1 2 3 4 0 1 2 ...

Как я могу получить круговую диаграмму, например, из i++ переменных.

Я попытался применить синусовую волну, например.

+1

Возможно, вы не хотите, чтобы все числа были целыми числами ... Вы? – Zac

ответ

2

То, что вы, кажется, хотят это треугольная волна. Попробуйте это:

var period = 8, 
 
    amplitude = 4; 
 

 
for (var i = 0; i < 50; i++) { 
 
    console.log(
 
    amplitude * Math.abs(
 
     2*(i/period - Math.floor(i/period + 1/2)) 
 
    ) 
 
) 
 
}

Вот версия, которая использует оператор модуля:

var period = 8, 
 
    amplitude = 4; 
 

 
for (var i = 0; i < 50; i++) { 
 
    console.log(
 
    (2 * amplitude/period) * (
 
     Math.abs(((i + period/2) % period) - period/2) 
 
    ) 
 
) 
 
}

Обе эти работы по принципу, что вы можете создать треугольная волна, взяв абсолютное значение пилообразной волны. В первом мы используем Math.floor для создания пилообразной волны, а во втором мы используем %.

+0

Я должен просто сказать спасибо в комментариях, но мне нравится просто поблагодарить вас за это :). Удивительная пилообразная волна! –

1

Вы можете сделать что-то вроде этого:

"use strict" 
 
for (let i=0;i<20;i+=0.25) { // step size 
 
    console.log(
 
    Math.round(//integers only 
 
     Math.abs(//positives 
 
     Math.sin(i)*4 //sin goes from 0 to 1, so if your peak is 4... 
 
    ) 
 
    ) 
 
); 
 
}

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

  • Нет связанных вопросов^_^