zoukankan      html  css  js  c++  java
  • JS画几何图形之三【正弦曲线】

    数学式:y=Asin(ωx+φ)+k

    样例:http://www.zhaojz.com.cn/demo/draw7.html

    依赖:【点】、【直线】

    JS函数的声明:

    //画正弦曲线
    //dot 原点
    //amplitude    振幅 -- A
    //initialPhase 初相 -- φ
    //setover 偏距 -- k
    //palstance 角速度 -- ω
    //len 周期数
    function drawSinusoid(dot, amplitude,initialPhase,palstance,setover, len, opts){
        var color = opts&&opts.color?opts.color:"DarkRed"; //曲线的颜色
        var max = len*2*Math.PI/w; //x的最大值
        //var x = -2*Math.PI/w/3;
        var x = 0; //x的初值
        var pre = [dot[0]+x, dot[1]+(amplitude*Math.sin(palstance*x+initialPhase)+setover)]; //y的初值
        for(;x < max;x+=5){ //每五个单位画一条线
            var cur = [dot[0]+x, dot[1]+(amplitude*Math.sin(palstance*x+initialPhase)+setover)];
            drawLine(pre, cur, {color: color}); // 画线
            pre = cur;
        }
        var d = Math.PI/(2*w);
        for(var x =0;x < max;x+=d){//描点
            var cur = [dot[0]+x, dot[1]+(amplitude*Math.sin(palstance*x+initialPhase)+setover)];
            drawPoint({
                pw:3,ph:3,color:'DarkRed',point: cur
            });
        }
        
        var pend = [dot[0]+max, dot[1]+(amplitude*Math.sin(palstance*max+initialPhase)+setover)];
        drawPoint({
            pw:3,ph:3,color:'DarkRed',point: pend
        });
        drawLine(pre, pend);
    }
  • 相关阅读:
    Markdown语法帮助文档
    react-native-vector-icons使用方法
    如何创建Pull Request,以开源项目ant design pro为例
    4.环境变量总结篇
    3.Flutter之hello_world
    构建之法 阅读笔记03
    学习进度14
    团队项目-个人博客6.5
    团队项目-个人博客6.4
    构建之法 阅读笔记02
  • 原文地址:https://www.cnblogs.com/zhaojz/p/4218005.html
Copyright © 2011-2022 走看看