绘图技术canvas

canvas基本概念:本身没有任何外观,只是在文档中创建一个画板,画布的宽度和高度直接在canvas的属性设置,不要在css里面定义

画布的getContext()方法返回一个绘制上下文对象,调用该方法的时候,传递的参数是“2d”,也就是getContext("2d")

1、绘制线段

beginPath:开始定义一条新的路径

moveTo:开始定义一条新的子路径,该方法确定了线段的起点

lineTo:将上面定义的线段起点和指定的新的点连接起来

fill():填充区域,此时只是填充,起点和终点并没有连接起来

closePath:会把起点和终点连接起来

stroke():开始绘制图形,当前路径下的所有子路经都会绘制出来

如果要接着绘制新的路径,记得调用beginPath()方法

<style>
        #box{
            border: 2px red solid;
        }
    </style>
    <canvas id="box" width="600px" height="500px">
        good
    </canvas>
    <script>
        var canvas=document.querySelector("#box")
        var ctx=canvas.getContext("2d")
        ctx.moveTo(100,200)
        ctx.lineTo(300,300)

        ctx.lineWidth=3  //宽度
        ctx.strokeStyle="red"  //样
        ctx.stroke()  //stroke绘制

        ctx.beginPath()
        ctx.moveTo(100,100)
        ctx.lineTo(140,450)
        ctx.lineTo(400,260)
        ctx.lineTo(200,30)
        ctx.stroke()
        // lineTo会把上一次的终点作为这一次的起点,没有上一次的终点,那就没有这一次的起点

    </script>

2、绘制弧线

arc():在当前子路径添加一条弧线

语法:context.arc(x,y,r,sAngle,eAngle,counterclockwise)

x:圆的中心的x坐标

y:圆的中心的y坐标

r:半径

sAngle:起始角,以弧度计  start Angle

eAngle:结束角,以弧度计  end Angle

counterclockwise:可选,规定应该逆时针还是顺时针绘图,False为顺时针,true为逆时针

<style>
        #box {
            border: 1px gray solid;
        }
    </style>
    <canvas id="box" width="600px" height="600px">

    </canvas>

    <script>
        var canvas = document.querySelector("#box")
        var ctx = canvas.getContext("2d")

        let deg = Math.PI / 180
        var r = 200
        var x1 = 300
        var y1 = 300
        ctx.strokeStyle="red"
        ctx.arc(x1, y1, r, 0, 260 * deg)
        ctx.stroke()
</script>

 

 3、绘制矩形

rect():在当前子路径添加一条弧线

语法:context.rect(x,y,width,height)

x,y:左上角坐标

width,height:矩形的宽度和高度

strokeRect()方法可以直接绘制一个矩形

语法:context.strokeRect(x,y,width,height)

<style>
        #box {
            border: 1px gray solid;
        }
    </style>
    <canvas id="box" width="600px" height="600px">

    </canvas>

    <script>
        var canvas = document.querySelector("#box")
        var ctx = canvas.getContext("2d")

        // 线条绘制矩形
        ctx.moveTo(200, 300)
        ctx.lineTo(200, 500)
        ctx.lineTo(400, 500)
        ctx.lineTo(400, 300)
        ctx.closePath() //闭合轨迹,把线连接到某一点形成矩形
        // ctx.stroke()
        ctx.strokeStyle = "red"
        ctx.fillStyle = "skyblue"
        ctx.fill() //把闭合轨迹填充上颜色
        ctx.stroke()


        // 直接绘制矩形
        ctx.beginPath()
        ctx.rect(100,200,400,360)
        ctx.strokeStyle="greenyellow"
        // ctx.fillStyle="green"
        // ctx.fill()  //会覆盖
        ctx.stroke()
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值