应用Html5中的cavas画1面国旗

2021-02-22 19:03 jianzhan

应用Html5中的cavas画1面国旗,实际编码以下所示:

var canvas = document.getElementById("canvas");//建立1个cavas画板
    var context = canvas.getContext('2d');//设定画板特性
    var width=canvas.width;
    var height=width*2/3;
    context.fillStyle="red";
    context.fillRect(0,0,width,height);
    var maxR = 0.15, minR = 0.05;
    var maxX = 0.55, maxY = 0.35;//大5星的部位
    var minX = [0.80, 0.90, 0.90, 0.80,0.65,0.50,0.40];//各个小5角星的x座标
    var minY = [0.20, 0.30, 0.45, 0.55,0.60,0.60,0.50];//各个小5角星的y座标
    var ox = height * maxX, oy = height * maxY;

html编码

<canvas id="canvas" width="600" height="400"></canvas>   

js编码

create5star(context,ox,oy,height * maxR,"#ff0",0);//绘图大5角星
    for (var idx = 0; idx < 7; idx++) {
        var  sx = minX[idx] * height, sy = minY[idx] * height;
        var  theta = Math.atan((oy - sy)/(ox - sx));
        create5star(context,sx, sy, height * minR, "#ff0",-Math.PI/2+theta);    // 画小5角星
    }
    //绘图5角星
    function create5star(context,sx,sy,radius,color,rotato){
        context.save();
        context.fillStyle=color;
        context.translate(sx,sy);//挪动座标原点
        context.rotate(Math.PI+rotato);//转动
        context.beginPath();//建立相对路径
        var x = Math.sin(0);
        var y= Math.cos(0);
        var dig = Math.PI/5 *4;
        for(var i = 0;i< 5;i++){//画5角星的5条边
            var x = Math.sin(i*dig);
            var y = Math.cos(i*dig);
            context.lineTo(x*radius,y*radius);
        }
        context.closePath();
        context.stroke();
        context.fill();
        context.restore();
    }

总结

以上所述是网编给大伙儿详细介绍的应用Html5中的cavas画1面国旗,期待对大伙儿有一定的协助,假如大伙儿有任何疑惑请给我留言,网编会立即回应大伙儿的。在此也十分谢谢大伙儿对脚本制作之家网站的适用!
假如你感觉本文对你有协助,欢迎转载,烦请注明出处,感谢!