封装一个构造函数 绘制矩形

Posted 不完美的小孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装一个构造函数 绘制矩形相关的知识,希望对你有一定的参考价值。

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>封装 构造函数 绘制矩形</title>
    <style>
        html{
            overflow:hidden;
        }
    </style>
</head>
<body>
    <canvas id="myCanvas"></canvas>
    <script>
        //构造函数
        function Rect(options){
            this.init(options);
        }
        Rect.prototype={
            init:function(options){
                options=options||{};
                this.x=options.x||0;
                this.y=options.y||0;
                this.width=options.width||100;
                this.height=options.height ||100;
                this.stroke=options.stroke ||"#000";
                this.strokeWidth=options.strokeWidth||2;
                this.fill=options.fill||"transparent";
                this.rotate=options.rotate ||0;
                this.scaleX=options.scaleX || 1;
                this.scaleY=options.scaleY ||1;
                this.offsetX=options.offsetX || 0;
                this.offsetY=options.offsetY ||0;
            },
            render:function(ctx){
                ctx.save();
                ctx.translate(this.x,this.y);
                ctx.rotate(this.rotate);
                ctx.scale(this.scaleX,this.scaleY);
                ctx.beginPath();
                ctx.rect(this.offsetX,this.offsetY,this.width,this.height);
                ctx.fillStyle=this.fill;
                ctx.strokeStyle=this.stroke;
                ctx.lineWidth=this.strokeWidth;
                ctx.fill();
                ctx.stroke();
                ctx.restore();
            }
        }

        var canvas=document.getElementById("myCanvas");
        canvas.width=window.innerWidth;
        canvas.height=window.innerHeight;
        var ctx=canvas.getContext("2d");
        var rect=new Rect({
            x:300,
            y:300,
            width:200,
            height:200,
            fill:"skyblue",
            stroke:"pink",
            rotate:0,
            offsetX:-100,
            offsetY:-100
        });
        rect.render(ctx);
        var angle=0;
        setInterval(function(){
            canvas.width=canvas.width;
            rect.rotate=angle;
            rect.render(ctx);
            angle+=Math.PI/12;
        },100)
    </script>
</body>
</html>

以上是关于封装一个构造函数 绘制矩形的主要内容,如果未能解决你的问题,请参考以下文章

利用构造函数对canvas里面矩形与扇形的绘制进行一个封装

VB6 GDI+进阶通过拼接圆弧和线绘制圆角矩形

调用函数时如何取消绘制矩形[重复]

MFC怎么绘制一个圆角矩形

浅析普通函数与构造函数

在Java中为网格创建绘制矩形(填充黑色)函数