关于对canvas.beginPath()的理解

 1 var myCanvas = document.getElementById("myCanvas");
 2 var ctx = myCanvas.getContext("2d");
 3 
 4 ctx.fillStyle = "#e4e4e4";
 5 ctx.fillRect(0, 0, 500, 500);
 6 
 7 ctx.beginPath();
 8 
 9 ctx.moveTo(150, 100);
10 ctx.lineTo(250, 100);
11 ctx.strokeStyle = "red";
12 ctx.stroke();
13 
14 ctx.beginPath();
15 ctx.moveTo(150, 200);
16 ctx.lineTo(250, 200);
17 ctx.strokeStyle = "blue";
18 ctx.stroke();

今天刚开始学习html5的基本知识,在练习中遇到的问题是beginPath()这个方法的使用,看到这个代码,我们毫无疑问的知道显示出来的分别就是一条红线和一条蓝线,那么假如我把第二个beginPath()注释了,会出现什么情况呢?答案是一条紫线和一条蓝线,这是为什么呢?因为canvas的绘制方法都是从beginPath之后的所有路径开始绘制的,beginPath是开启新的一条路径,一开始是绘制红线(因为存在stroke()这个方法),由于第二次绘制的蓝线没有开启新的路径,所以在原有红线的基础上覆盖多一层蓝线,因此成了紫线;

那么如果把第一个ctx.stroke()和第二个ctx.beginPath()注释掉的话,结果又会是什么颜色呢?结果是两条蓝线,因为第一个红线并没有绘制(没有stroke()这个方法),所以直接给蓝线覆盖了;
我的口头表达不是很好,希望大家可以多点尝试,便能总结出规律来哈~

转载于:https://www.cnblogs.com/tingting4133/p/3966218.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值