canvas教程(二) 绘制直线
经过 canvas 教程(一) 简介 我们知道了 canvas 的一些基本情况
而本次是给大家带来直线的绘制
canvas 中,基本图形有两种,一种是直线,还有一种是曲线
但是无论是直线还是曲线,我们都应该先了解 canvas 的坐标系 s
canvas 的坐标系
要绘制之前肯定要了解一下 canvas 的坐标系,我们之前肯定接触过数学坐标系:y 轴正方向是向上的
其实在前端领域里几乎所有的坐标系都是使用的 w3c 的坐标你,canvas 也是一样,w3c 的坐标系和数学坐标系的区别就在于:w3c 坐标系的 y 轴正方向是向下的
绘制直线
canvas 中绘制直线可以使用 moveTo 和 lineTo 两个方法,我们看看绘制一条直线的语法是怎么样的
context.moveTo(x1, y1); //将画笔移动至坐标(x1,y1)作为新的起点
context.lineTo(x2, y2); //从起点画线到(x2,y2)并以此作为新的起点
context.stroke(); //描边连线
stroke 是指描边,对应的还有 fill 填充,我们在下面的绘制中试一试便知道是什么意思了
moveTo 和 lineTo 是可以重复使用来同时绘制多条直线
所以我们可以进行绘制三角形,矩形等
描边三角形:
context.moveTo(50, 50);
context.lineTo(50, 100);
context.lineTo(100, 100);
context.lineTo(50, 50);
context.stroke();
填充矩形:
context.moveTo(50, 50);
context.lineTo(50, 100);
context.lineTo(150, 100);
context.lineTo(150, 50);
context.lineTo(50, 50);
context.fill();
是吧,我们很容易就理解了其中的区别。
绘制矩形
那么在我们开发当中,矩形是非常常见的,但我们发现一条一条的直线绘制是一件很麻烦的事情,所以 canvas 也带有了绘制矩形的方法: rect(x, y, width, height)
其中 x,y 代表绘制起点 width 和 height 分别要绘制的矩形的宽和高
而在我们绘制的时候可以修改颜色即是描边颜色:strokeStyle 和填充颜色:fillStyle
这两个属性的取值分为三种 1.颜色值 2.渐变色 3.图案
后面两种暂且不表,颜色则支持十六进制、颜色关键字(例如:red)、rgb、rgba
所以绘制矩形的步骤是
context.strokeStyle = 'red'; //1. 设置描边颜色
context.rect(50, 50, 100, 50); //2. 绘制矩形
context.stroke(); //3. 描边
canvas 也提供了另外两种绘制矩形的方法:描边矩形和和填充矩形
就是上面的 2,3 的结合
填充和描边的分别是 fill 和 stroke 那么填充矩形和描边矩形的方法就是 fillRect 和 strokeRect 了
语法均是一致的
⚠️ strokeStyle 和 fillStyle 必须在绘制之前设置,否则无效
清除画布
有绘制矩形的方法,也有清除矩形的方法,这里的清除矩形不是指清除之前画的所有矩形,而是指在画布清除指定矩形区域
方法名字为 clearRect,属性和绘制矩形是一致的
所以我们以后也会经常用到这个方法来,用来清空整个 canvas,即 context.clearRect(0,0,canvas.width,canvas.height)
结束
本次讲了:绘制直线、绘制矩形、描边和填充、清除矩形,大家学会了多少呢?
其实已经可以利用这些做一些好玩的事情了,比如五角星,多边形,取色板等有趣的形状,工具
canvas教程(二) 绘制直线的更多相关文章
- canvas教程(三) 绘制曲线
经过 canvas 教程(二) 绘制直线 我们知道了 canvas 的直线是怎么绘制的 而本次是给大家带来曲线相关的绘制 绘制圆形 在 canvas 中我们可以使用 arc 方法画一个圆 contex ...
- canvas教程(一) 简介
什么是 canvas 按例是要介绍一下 canvas 的,在没有 canvas 之前,我们为了网页的效果,很多情况下是使用了图片来实现,不过用图片就需要加载,而且图片的体积也是一个问题,所以在 htm ...
- 学习Canvas绘图与动画基础 绘制直线(二)
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="U ...
- 封装 用canvas绘制直线的函数--面向对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- canvas绘制直线
HTML5 <canvas>元素用于图形的绘制,该元素只是图形容器,必须使用javascript脚本绘制图形创建一个画布:<canvas id="myCanvas" ...
- 你不知道的Canvas(二)
你不知道的Canvas(二) 一.色彩Colors 到目前为止,我们只看到过绘制内容的方法.如果我们想要给图形上色,有两个重要的属性可以做到:fillStyle 和 strokeStyle. fill ...
- Canvas 教程
在本文章中 在你开始之前 教程内容 相关资料 A note to contributors <canvas> 是一种可以通过编写脚本(通常是JavaScript)来实现绘制图形的HTML元 ...
- Html5新特性 <canvas>画板画直线
以下样例为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星云 ...
随机推荐
- Django入门——《Python编程从入门到实践》
Django是一个Web框架--一套用于帮助开发交互式网站的工具.Django能够响应网页请求,还能让你更轻松地读写数据库.管理用户等. 1.建立项目 开始编写一个名为"学习笔记" ...
- Linux中mpstat命令参数详解
Linux中mpstat命令参数详解 mpstat 是 Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在 /proc/stat ...
- 运维笔记--ubuntu安装指定版本的RabbitMQ
场景描述: 日常开发or生产环境经常会需要安装指定版本的软件,出于和其他软件的配合兼容性,以及稳定性的考虑. 现在我们的需求是安装指定版本的RabbitMQ,版本号: 操作步骤: 注意事项: 异常处理 ...
- Robot Framwork关键字驱动+RedwoodHQ安装
一.Robot Framwork介绍 Robot Framwork是一款python编写的功能框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行. ...
- Visual Studio 2017 vcvarsall.bat 环境配置对应关系
博客参考:https://chenzehe.iteye.com/blog/1703429 安装Visual Studio 2017之后,vcvarsall.bat ,vcvars32.bat,vcva ...
- 取未清PO逻辑
注意这里的 GR qty [ WEMNG] 和 Open Quantity [OBMNG] *&---------------------------------------------- ...
- 相位展开(phase unwrapping)算法研究与实践
1. 什么是相位展开? 相位展开(Phase Unwrapping)是一个经典的信号处理问题,它指的是从值区间中恢复原始相位值(原因在于:计算相位时,运用反正切函数,则相位图中提取的相位都是包裹在一个 ...
- [LeetCode] 251. Flatten 2D Vector 压平二维向量
Implement an iterator to flatten a 2d vector. For example,Given 2d vector = [ [1,2], [3], [4,5,6] ] ...
- MySQL之SQL语句的使用
SQL使用 mysql中的基本逻辑对象 mysql有这么几种对象 mysqld--->库---->表---->记录(由行和列组成)一条记录中的一列叫做字段 什么是关系型数据库 表与表 ...
- iOS:Xcode代码块,提升敲代码的效率
一.代码块在哪里? 看下图 或者 快捷键:command+shift+L 长这样: 二.如何创建代码块: 1.先选中要创建的代码片段,然后点击右键,选中 Create Code Snippet 然后会 ...