路径的概念

路径是从起始点结束点之间的连线。个人认为,二维画布中分为线性图形和非线性图形,线性图形包括矩形、直线、曲线、圆形等各种几何图形;非线性图形包括图象、文本、像素。线性图形中又分为路径和非路径,路径的特点就是以 beginPath() 来开启,非路径图形就是使用 rect() 函数绘制的矩形,这样的矩形不需要用 beginPath() 来开启。

直线

绘制一条直线必须要确定其起始点以及结束点,起始点用 moveTo 函数;结束点用 lineTo 函数。lineTo 代表路径从起始点到结束点都是一条直线。

ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(200, 200);
ctx.stroke();
ctx.closePath();

最终的效果:

贝塞尔曲线

前面提到过,路径是连接着起始点和结束点的线,贝塞尔曲线函数 quadraticCurveTo 踢动了贝塞尔的控制点以及结束点,在 beginPath() 之后一定要确定路径的起始点,即 moveTo()。《Canvas 基础(三):画曲线》中提到了绘制贝塞尔曲线的细节。

ctx.beginPath();
ctx.moveTo(10, 200);
ctx.quadraticCurveTo(60, 80, 200, 200);
ctx.stroke();
ctx.closePath();

路径装饰

路径颜色

路径的默认颜色是 #ff0000,由属性 strokeStyle 决定,接受十六进制、RGB、RGBA、颜色英文单词。

路径填充

路径矩形、圆形可以填充某种颜色,即“路径填充”。用连续的 lineTo() 绘制一个路径矩形:

ctx.beginPath();
ctx.moveTo(40, 40);
ctx.lineTo(220, 40);
ctx.lineTo(220, 220);
ctx.lineTo(40, 220);
ctx.stroke();
ctx.closePath();
// 填充路径
ctx.fillStyle = '#689bc5';
ctx.fill();

填充的效果:

Canvas:路径的更多相关文章

  1. Canvas路径方向

    使用Canvas路径画图需要注意方向,画图方向是顺时针还是逆时针需要记住.下面让我们看看Canvas常见路径方向. arc 参数值 context.arc(x,y,r,sAngle,eAngle,co ...

  2. 理解canvas路径

    canvas路径和ps里面的路径差不多,在进行图形绘制时,先绘制出来图形的路径,然后再描边或者填充. canvas路径还有子路径的概念,在某一时刻,canvas之中只能有一条路径存在,Canvas规范 ...

  3. Canvas路径、描边、填充

    <script> var context = document.getElementById('canvas').getContext('2d'); context.font = '48p ...

  4. canvas路径绘制

    惯例,先贴代码: 1 /** 2 * Created by Administrator on 2016/1/27. 3 */ 4 function draw (id){ 5 var canvas = ...

  5. canvas路径剪切和判断是否在路径内

    1.剪切路径 clip() var ctx=mycanvas.getContext('2d'); ctx.beginPath(); // 建一个矩形路径 ctx.moveTo(20,10) ctx.l ...

  6. html5 canvas路径绘制2

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Html5学习2(Html表格、Html列表、Html5新元素、Canvas (坐标、路径、画圆、文本、渐变、图像))

    Html表格 1.表格中的表头:<th></th>.其中表头部分字体加粗,颜色深绿色 <h4>水平标题:</h4> <table border=& ...

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

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

  9. HTML 5 canvas —— 基本语法

    目录 简述 canvas 基础 2D context API 基本线条 路径 插入图像 像素级操作 文字 阴影 颜色渐变 小节 简述 HTML 5 规范引进了很多新特性,其中最令人期待的之一就是 ca ...

  10. canvas小知识

    清单 1. 绘制 canvas 矩形 function drawRect(){ var canvas = document.getElementById('canvas'); if (canvas.g ...

随机推荐

  1. 【Hadoop学习】补充:优化、新特性

    一.数据压缩 1.概述 原则:IO密集而不是计算密集的job 压缩算法选择 2.压缩位置选择 通过参数进行配置 3.压缩实例: 数据流的压缩和解压缩 Map输出端采用压缩 Reduce输出端采用压缩 ...

  2. 日爬百万数据的域名限制、url的清洗和管理

    一.域名去重1.检测开头:link.startswith('http') txt = "Hello, welcome to my world." x = txt.startswit ...

  3. Django连接数据库(mysql)与Django ORM实操(增删改查) 前端页面

    目录 一:pycharm链接数据库(MySQL) 1.pycharm右侧Database工具栏 2.下载对应的驱动,填写MySQL数据库信息连接(当前为客户端) 3.pycharm连接MySQL数据库 ...

  4. DP经典例题——LIS&LCS

    DP经典例题--LIS&LCS LCS 最长公共子序列,英文缩写为LCS(Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列 ...

  5. 乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现。

    众所周知,异步并发编程可以帮助程序更好地处理阻塞操作,比如网络 IO 操作或文件 IO 操作,避免因等待这些操作完成而导致程序卡住的情况.云存储文件传输场景正好包含网络 IO 操作和文件 IO 操作, ...

  6. [OpenCV实战]2 人脸识别算法对比

    在本教程中,我们将讨论各种人脸检测方法,并对各种方法进行比较.下面是主要的人脸检测方法: 1 OpenCV中的Haar Cascade人脸分类器: 2 OpenCV中的深度学习人脸分类器: 3 Dli ...

  7. ArcEngine开发 - 打开地图读取图层

    地图文档(IMapDocument)对象是ArcEngine开发最基本对象,可以说是所有操作的第一步.使用IMapDocument可以检查和打开地图文档,读取图层信息和文档信息,为源GIS并为您详细分 ...

  8. 将 Timer 对象化

    Timer这玩意儿很常用,却又很烦人.烦人之处有四: 1.         如果将其设到HWND上,则 a)         必须手工维护Timer的ID,小心翼翼地保证这些ID不重复,可能有人(比如 ...

  9. C++string与int的相互转换(使用C++11)

    一.int转string #include <iostream> #include <string> int main() { double f = 23.43; double ...

  10. Linux的串口非标准波特率设置更改

    用的是全志的R528 SDK,Linux内核是5.4,新增加一个250000的非标准波特率 参考网络大神文档,实践并记录宝贵的经验. 方法: 1.修改内核的/include/uapi/asm-gene ...