经过 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)、rgbrgba

所以绘制矩形的步骤是

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教程(二) 绘制直线的更多相关文章

  1. canvas教程(三) 绘制曲线

    经过 canvas 教程(二) 绘制直线 我们知道了 canvas 的直线是怎么绘制的 而本次是给大家带来曲线相关的绘制 绘制圆形 在 canvas 中我们可以使用 arc 方法画一个圆 contex ...

  2. canvas教程(一) 简介

    什么是 canvas 按例是要介绍一下 canvas 的,在没有 canvas 之前,我们为了网页的效果,很多情况下是使用了图片来实现,不过用图片就需要加载,而且图片的体积也是一个问题,所以在 htm ...

  3. 学习Canvas绘图与动画基础 绘制直线(二)

    1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="U ...

  4. 封装 用canvas绘制直线的函数--面向对象

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. canvas绘制直线

    HTML5 <canvas>元素用于图形的绘制,该元素只是图形容器,必须使用javascript脚本绘制图形创建一个画布:<canvas id="myCanvas" ...

  6. 你不知道的Canvas(二)

    你不知道的Canvas(二) 一.色彩Colors 到目前为止,我们只看到过绘制内容的方法.如果我们想要给图形上色,有两个重要的属性可以做到:fillStyle 和 strokeStyle. fill ...

  7. Canvas 教程

    在本文章中 在你开始之前 教程内容 相关资料 A note to contributors <canvas> 是一种可以通过编写脚本(通常是JavaScript)来实现绘制图形的HTML元 ...

  8. Html5新特性 &lt;canvas&gt;画板画直线

     以下样例为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  9. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星云 ...

随机推荐

  1. 2015-2016-2《Java程序设计》团队博客2

     简易画图板介绍 一.功能结构图 二.主类设计 1.总体设计:在设计简易画图板时,根据程序功能的分类,包含了十二个文件,包括SimpleDraw.java,MenuContainer.java,Dra ...

  2. uniapp - 关于ios调试

    [ios调试] 1.一台windows电脑.一根apple数据线(一旦连接以后,apple设备就会自动识别itunes软件,如果没有安装会提示) 2.安装itunes (爱思助手) 3.官方教程:ht ...

  3. SpringBoot过滤XSS脚本攻击

    XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...

  4. MySQL数据库事务的四大特性以及事务的隔离级别

    一.事务的四大特性(ACID) 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因 ...

  5. SEO前端篇(二)关键词

    首先要SEO的关键词最好放在网站首页index,并且网站域名选用顶级域名,最好是.com.现在很多后缀的域名不能备案,选择域名的时候一定要慎重. 域名解析的主机IP最好选择站点资源少的区域,可以用 爱 ...

  6. 深入分析GCC

    深入分析GCC 目录 前言章 GCC概述 11.1 GCC的产生与发展 11.2 GCC的特点 21.3 GCC代码分析 3第2章 GCC源代码分析工具 42.1 vim ctags代码阅读工具 42 ...

  7. knuth洗牌算法

    首先来思考一个问题: 设计一个公平的洗牌算法 1. 看问题,洗牌,显然是一个随机算法了.随机算法还不简单?随机呗.把所有牌放到一个数组中,每次取两张牌交换位置,随机 k 次即可. 如果你的答案是这样, ...

  8. Swift编码总结8

    1.判断当前控制器是否在显示: // 判断当前控制器是否在显示 func isCurrentViewControllerVisible() -> Bool { return (self.isVi ...

  9. Laravel 数据库实例教程 —— 使用查询构建器对数据库进行增删改查

    原文地址:https://blog.csdn.net/lmy_love_/article/details/72832259 获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法, ...

  10. K8S+GitLab+.net core-自动化分布式部署-1

    K8S+GitLab-自动化分布式部署ASP.NET Core(一) 部署环境 一.部署流程介绍 开发人员通过Git上传asp.net core 项目到Gilab,并编写好.gitlab-ci.yml ...