Canvas:路径
路径的概念
路径是从起始点到结束点之间的连线。个人认为,二维画布中分为线性图形和非线性图形,线性图形包括矩形、直线、曲线、圆形等各种几何图形;非线性图形包括图象、文本、像素。线性图形中又分为路径和非路径,路径的特点就是以 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:路径的更多相关文章
- Canvas路径方向
使用Canvas路径画图需要注意方向,画图方向是顺时针还是逆时针需要记住.下面让我们看看Canvas常见路径方向. arc 参数值 context.arc(x,y,r,sAngle,eAngle,co ...
- 理解canvas路径
canvas路径和ps里面的路径差不多,在进行图形绘制时,先绘制出来图形的路径,然后再描边或者填充. canvas路径还有子路径的概念,在某一时刻,canvas之中只能有一条路径存在,Canvas规范 ...
- Canvas路径、描边、填充
<script> var context = document.getElementById('canvas').getContext('2d'); context.font = '48p ...
- canvas路径绘制
惯例,先贴代码: 1 /** 2 * Created by Administrator on 2016/1/27. 3 */ 4 function draw (id){ 5 var canvas = ...
- canvas路径剪切和判断是否在路径内
1.剪切路径 clip() var ctx=mycanvas.getContext('2d'); ctx.beginPath(); // 建一个矩形路径 ctx.moveTo(20,10) ctx.l ...
- html5 canvas路径绘制2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Html5学习2(Html表格、Html列表、Html5新元素、Canvas (坐标、路径、画圆、文本、渐变、图像))
Html表格 1.表格中的表头:<th></th>.其中表头部分字体加粗,颜色深绿色 <h4>水平标题:</h4> <table border=& ...
- HTML5 程序设计 - 使用HTML5 Canvas API
请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
- HTML 5 canvas —— 基本语法
目录 简述 canvas 基础 2D context API 基本线条 路径 插入图像 像素级操作 文字 阴影 颜色渐变 小节 简述 HTML 5 规范引进了很多新特性,其中最令人期待的之一就是 ca ...
- canvas小知识
清单 1. 绘制 canvas 矩形 function drawRect(){ var canvas = document.getElementById('canvas'); if (canvas.g ...
随机推荐
- 用最少的代码打造一个Mini版的gRPC框架
在<用最少的代码模拟gRPC四种消息交换模式>中,我使用很简单的代码模拟了gRPC四种消息交换模式(Unary.Client Streaming.Server Streaming和Dupl ...
- Vuex从入门到精通
一.vuex介绍 目标 什么是Vuex 为什么学习Vuex 通信方案 组件关系 数据通信 父子关系 父传子:props : 子传父:$emit 非父子关系 vuex (一种组件通信方案) Vuex是什 ...
- Centos7下git最新版本安装
刚重新装了centos7最小版的系统,发现没有git,只好重新安装了,记录下以防忘记.(以下命令最好在root用户下执行,要么你有管理员权限也行,则需要在命令前加sudo) 安装方法有两种: 一.yu ...
- 对Asp.net WebApi中异步(async+await)接口实际使用及相关思考(示例给出了get,post,提交文件,异步接口等实践).
[很多初学者的疑问] 为何作为web api这样的天然的并发应用,还需要在controller的action上声明使用async这些呢? <参考解答> 在 web 服务器上,.NET Fr ...
- [深度学习] ubuntu18.04配置深度学习环境笔记
最近装过很多ubuntu18.04系统的nvidia驱动,cuda10.2,cudnn7.6.5,发现每次都会出现一些小问题.总结了具体步骤,做个记录.主要分为三个步骤:驱动安装,cuda安装,cud ...
- [Leetcode]在排序数组中查找元素的第一个和最后一个位置
题目 代码 class Solution { public: vector<int> searchRange(vector<int>& nums, int target ...
- UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) 代码
#include <bits/stdc++.h> #define int long long #define judge(a,func) case a:func();break; usin ...
- YMOI 2019.6.8
题解 YMOI 2019.6.8 前言 第二回考试,承让拿了第一次rank1,(●ˇ∀ˇ●) 题解 这次考试总体发挥比较好,每一道题都尽可能得取得了所能及的所有分.虽然多少还是有失误,不过在所难免.保 ...
- SOFAJRaft模块启动过程
本篇文章旨在分析SOFAJRaft中jraft-example模块的启动过程,由于SOFAJRaft在持续开源的过程中,所以无法保证示例代码永远是最新的,要是源代码有较大的变动,亦或出现纰漏.错误的地 ...
- 使用SQL获取当前周别,oracle日期处理
使用SQL获取当前周别 select to_char(sysdate,'yyyyww') from dual select to_char(to_date('20200611','yyyymmdd' ...