zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用js画图之正弦曲线

JS 使用 画图
2023-06-13 09:15:40 时间

数学式: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);
}