我怎样才能实现这种正弦函数?

时间:2016-06-04 18:44:55

标签: javascript math graph

为了实现平滑的交替动画,我想在javascript中使用类似正弦的函数,它应该看起来像红色图形之一。

蓝色图表代表常规正弦函数:

var blueY = Math.sin(x);

raw graph

最后,我想将图表修改为类似于以下蓝图:

// scaled and translated sine-graph
var blueY = (1 - Math.sin(x * Math.PI / 2)) / 2;

final graph

如何完成其​​中一个红色图表?我只需要一个在给定x值时返回y值的单行。图表不应该有角落来实现平滑的动画。

附加信息:绝对值应低于大多数点的正弦函数(极点附近除外),以产生更清晰的动画。

fiddle

1 个答案:

答案 0 :(得分:2)

您可以使用以下功能:y = 0.5*Math.sign(x) * Math.sign( Math.abs(x)%4-2)*(1-Math.pow(Math.abs(Math.abs(x)%2-1), 1.5) )+0.5(而不是1.5,也可以使用其他值)

与正弦函数比较(蓝色):

enter image description here