三角波
y = abs((x++ % 6) - 3);
这给出了周期为 6、在 3 和 0 之间振荡的三角波。
方波
y = (x++ % 6) < 3 ? 3 : 0;
这给出了周期为 6 的规则方波,在 3 和 0 之间振荡。
正弦波
y = 3 * sin((float)x / 10);
这给出了周期的正弦波20 pi
,在 3 和 -3 之间振荡。
Update:
曲线三角波
要获得具有曲线而不是直线的三角波的变化,您只需在方程中引入指数以使其成为二次方程。
凹曲线(即x^2
shape):
y = pow(abs((x++ % 6) - 3), 2.0);
凹曲线(即sqrt(x)
shape):
y = pow(abs((x++ % 6) - 3), 0.5);
或者使用pow
函数,你可以简单地定义一个square
功能并使用sqrt
函数于math.h
,这可能会稍微提高性能。
另外,如果您想让曲线更陡/更浅,只需尝试更改索引即可。
在所有这些情况下,您应该能够轻松地调整常数并在正确的位置添加缩放因子,以给出给定波形的变化(不同的周期、幅度、不对称性等)。