canvas基础入门系列教程(4)-绘制矩形

2.2.绘制矩形

前面章节中我们使用三条线来画一个三角形,同理,也可以用四条线来画出一个矩形,但是这样做代码量会更多,并不推荐这样做,在canvas中提供了相应的方法来快速画出矩形。

2.2.1.strokeRect方法

strockeRect是获取到的2d环境对象上的方法,可以非常方便的画出一个矩形

//语法
ctx.strokeRect(x, y, width, height)

strokeRect接收4个参数,第一个为x的坐标, 第二个参数为y轴的坐标,第三个参数是矩形的宽度,第四个参数是矩形的高度

 <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    #cvs{
      border: 1px solid #ddd;
    }
  </style>
</head>
<body>
  <canvas id="cvs" width="600" height="300"></canvas>
  <script>
    //获取到canvas对象
    var oCanvas = document.getElementById('cvs')
    //获取到2d的绘图环境
    var ctx = oCanvas.getContext('2d')
    //画矩形
    ctx.strokeRect(100, 100, 200, 100)
  </script>
</body>
</html>

思考: 如何画出一个红色边框的矩形?

2.2.2.fillRect方法

fillRect方法也是2d环境对象中的方法,可以帮助我们画出一个填充的矩形

//语法
ctx.fillRect (x, y, width, height)

fillRect的四个参数和strokeRect的四个参数是一样的,区别是fillRect画出来的矩形是填充的,strokeRect画出来的矩形是描边的

47251-mrzpvhts1h.png

实例代码:

//获取到canvas对象
var oCanvas = document.getElementById('cvs')
//获取到2d的绘图环境
var ctx = oCanvas.getContext('2d')
//画矩形
ctx.strokeRect(100, 100, 200, 100)
ctx.fillRect(360, 100, 200, 100)

和描边颜色设置类似,也可以通过fillStyle设置填充颜色

  //获取到canvas对象
  var oCanvas = document.getElementById('cvs')
  //获取到2d的绘图环境
  var ctx = oCanvas.getContext('2d')
  //设置描边颜色
  ctx.strokeStyle = 'blue'
  //画矩形
  ctx.strokeRect(100, 100, 200, 100)
  //设置填充颜色
  ctx.fillStyle = 'red'
  ctx.fillRect(360, 100, 200, 100)

61272-ig4r3kjhty.png

2.2.3.rect方法

绘制矩形除了strokeRect和fillRect方法以外, 还可以使用rect方法,使用rect方法并不会马上绘制出矩形,需要调用stroke或者fill方法才能真实绘制出矩形

 //获取到canvas对象
 var oCanvas = document.getElementById('cvs')
 //获取到2d的绘图环境
 var ctx = oCanvas.getContext('2d')
 ctx.rect(100, 100, 200, 100)
 ctx.stroke()

2.2.4.clearRect方法

clearRect方法可以清除指定区域的内容

//语法
ctx.clearRect(x, y, width, height)

这个方法中的参数和绘制矩形的几个方法参数相同,x,y是起点的坐标,width是清除区域的宽度,height是清除区域的高度

实例:

//获取到canvas对象
var oCanvas = document.getElementById('cvs')
//获取到2d的绘图环境
var ctx = oCanvas.getContext('2d')
ctx.rect(100, 100, 200, 100)
ctx.stroke()
ctx.fillStyle = 'orangered'
ctx.fill()
ctx.clearRect(130,130, 50, 50)

36926-atnbu2p4ba.png
课程地址:http://edu.nodeing.com/course/80

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大地飞鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值