我试图使用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++
变量。
我尝试应用正弦波。
答案 0 :(得分:2)
你似乎想要的是三角波。试试这个:
domain2

这是一个使用模数运算符的版本:
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))
)
)
}
&#13;
这两个原理都可以通过获取锯齿波的绝对值来创建三角波。在第一个中,我们使用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
。
答案 1 :(得分: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...
)
)
);
}