使用js画图之正弦曲线
数学式:y=Asin(ωx+φ)+k
样例:http://www.zhaojz.com.cn/demo/draw7.html
JS函数的声明:
//画正弦曲线
//dot原点
//amplitude 振幅--A
//initialPhase初相--φ
//setover偏距--k
//palstance角速度--ω
//len周期数
functiondrawSinusoid(dot,amplitude,initialPhase,palstance,setover,len,opts){
varcolor=opts&&opts.color?opts.color:"DarkRed";//曲线的颜色
varmax=len*2*Math.PI/w;//x的最大值
//varx=-2*Math.PI/w/3;
varx=0;//x的初值
varpre=[dot[0]+x,dot[1]+(amplitude*Math.sin(palstance*x+initialPhase)+setover)];//y的初值
for(;x<max;x+=5){//每五个单位画一条线
varcur=[dot[0]+x,dot[1]+(amplitude*Math.sin(palstance*x+initialPhase)+setover)];
drawLine(pre,cur,{color:color});//画线
pre=cur;
}
vard=Math.PI/(2*w);
for(varx=0;x<max;x+=d){//描点
varcur=[dot[0]+x,dot[1]+(amplitude*Math.sin(palstance*x+initialPhase)+setover)];
drawPoint({
pw:3,ph:3,color:'DarkRed',point:cur
});
}
varpend=[dot[0]+max,dot[1]+(amplitude*Math.sin(palstance*max+initialPhase)+setover)];
drawPoint({
pw:3,ph:3,color:'DarkRed',point:pend
});
drawLine(pre,pend);
}