beginPath() 方法开始一条路径,或重置当前的路径。w3school上的解释!

路径是canvas里很重要的一个概念,刚开始学canvas的人对路径理解不是很深,他们在用canvas的时候会乱用beginPath(),今天做了一个小demo来说明一下路径

<html lang="en-US">
<canvas id=myCanvas width=500px height=500px></canvas> <script>
var myCanvas = document.getElementById("myCanvas");
var context = myCanvas.getContext("2d"); context.fillStyle = "#e4e4e4";
context.fillRect(0,0,500,500); context.beginPath(); context.moveTo(100,100);
context.lineTo(200,100);
context.strokeStyle = "red";
context.stroke(); context.beginPath();
context.moveTo(100,200);
context.lineTo(200,200);
context.strokeStyle = "blue";
context.stroke();
</script>
</html>

  如果不对这段代码做改动的话,显示的一条红线和蓝线,大家会想,这有什么好说的呢,肯定是这样啊。

接下来我们把第二个的context.stroke()注释起来,你会发现最后的结果只是一条蓝线,因为第一个路径没有stroke(),紧接着

context.beginPath(); 

就重新开辟了一个路径,使得只能画了第二个路径的直线,大家是不是发现越来越神奇了呢?

紧接着我把不注释context.stroke(),而把context.beginPath()注释起来,你发现什么了?很奇妙,你发现了一条紫线和蓝线,为什么呢?原来是因为没有开辟新的路径,所以第二个stroke()又重新画了第一条直线,并且用了蓝色,而第一个stroke()已经用红色画了第一条直线了,蓝色和红色的结合就变成了紫色,第二

context.stroke();绘画了蓝色。

你想想,如果把beginPath()和stroke()都注释起来会怎么样呢?两条蓝色的直线,you are good

HTML5 canvas beginPath() 方法的更多相关文章

  1. HTML5 canvas translate() 方法

    HTML5 canvas translate() 方法 translate() 方法重新映射画布上的 (0,0) 位置.

  2. HTML5 canvas clearRect() 方法

    浏览器支持 Internet Explorer 9.Firefox.Opera.Chrome 以及 Safari 支持 clearRect() 方法. 注释:Internet Explorer 8 或 ...

  3. HTML5 canvas getImageData() 方法

    下面的代码通过 getImageData() 复制画布上指定矩形的像素数据,然后通过 putImageData() 将图像数据放回画布: var c=document.getElementById(& ...

  4. 提高HTML5 canvas性能的几种方法

    简介 HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2Dimmediate mode graphic)的标准.许多开发者现在利 ...

  5. html5 canvas 画图移动端出现锯齿毛边的解决方法

    使用HTML5的canvas元素画出来的.在移动端手机上测试都发现画图有一点锯齿问题 出现这个问题的原因应该是手机的宽是720像素的, 而这个canvas是按照小于720像素画出来的, 所以在720像 ...

  6. HTML5 Canvas绘图基本使用方法, H5使用Canvas绘图

    Canvas 是H5的一部分,允许脚本语言动态渲染图像.Canvas 定义一个区域,可以由html属性定义该区域的宽高,javascript代码可以访问该区域,通过一整套完整的绘图功能(API),在网 ...

  7. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  8. HTML5 Canvas绘制转盘抽奖

    新项目:完整的Canvas转盘抽奖代码 https://github.com/givebest/GB-canvas-turntable 演示 http://blog.givebest.cn/GB-ca ...

  9. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

随机推荐

  1. bug--service--Caused by java.lang.SecurityException: Unable to start service Intent { }:user 0 is restricted

    http://bbs.coloros.com/thread-174655-1-1.html 急!!Service在OPPO系列手机下无法启动,寻求帮助 你好,我是网易邮件事业部1元夺宝开发工程师,最近 ...

  2. SharePrecences--(json+sharePrecences)存list 或对象

    利用Gson和SharePreference存储结构化数据 具体的步骤 这个假设有三个User对象生成一个ArrayList<User>: User user1 = new User(&q ...

  3. tornado api 简单模板

    # 安装 pip insatll tornado # 主文件 web_server.py #!/usr/bin/env python # encoding: utf-8 import tornado. ...

  4. App.Config详解及读写操作

    App.Config详解及读写操作   App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而 ...

  5. 在java下使用log4j2记录日志

    1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jarlog4j-api-xx.jarlog4j-web-xx.jar(web项目的需要引用) 3.配置 ...

  6. ArcGIS Engine中数据的加载 (转)

    1.加载Shapefile数据 1 IWorkspaceFactory pWorkspaceFactory; 2 IFeatureWorkspace pFeatureWorkspace; 3 IFea ...

  7. [手机取证] 绕过屏幕锁定启用调试模式-For Android 4.4.2

    Google在Android 4.x中引入了调试信任机制,类似于iOS,在设备有屏幕密码的情况下首次连接(或未记住计算机)的情况下, 需要首先打开屏幕锁定后才可进行调试启用操作. 在Android 4 ...

  8. 【HOW】如何对Reporting Services表格中数据按字段排序

    Reporting Services中可以设置排序的地方非常多,有很多地方从其字面意思上好像是对表格数据的排序,但实际都不管用.在多次尝试后,得到如下的有效设置方式: 1. 鼠标右键单击要排序字段的内 ...

  9. phoenix 索引修复-基本流程

    索引修复基本流程

  10. win8.1中EZDML输入中文显示问号问题

    在win8.1下使用EZDML,发现无法输入中文,解决办法如下:   打开控制面板--语言   删除美式键盘 然后就可以正常输入中文了 其实就是win8.1把美式键盘默认放在中文语言中,导致的输入问题 ...