1。标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形。

什么是 canvas?

HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.

<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

你可以通过多种方法使用 canvas 绘制路径,盒、圆、字符以及添加图像。

创建一个画布(Canvas)

一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制.

注意: 默认情况下 <canvas> 元素没有边框和内容。

<canvas>简单实例如下:

<canvas id="myCanvas" width="200" height="100"></canvas>

注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.

提示:你可以在HTML页面中使用多个 <canvas> 元素.

首先,找到 <canvas> 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

Canvas 坐标

canvas 是一个二维网格。

canvas 的左上角坐标为 (0,0)

上面的 fillRect 方法拥有参数 (0,0,150,75)。

意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

坐标实例

如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。鼠标移动的矩形框上,显示定位坐标。

Canvas - 路径

在Canvas上画线,我们将使用以下两种方法:

  • moveTo(x,y) 定义线条开始坐标
  • lineTo(x,y) 定义线条结束坐标

绘制线条我们必须使用到 "ink" 的方法,就像stroke().

Canvas - 文本

使用 canvas 绘制文本,重要的属性和方法如下:

  • font - 定义字体
  • fillText(text,x,y) - 在 canvas 上绘制实心的文本
  • strokeText(text,x,y) - 在 canvas 上绘制空心的文本

使用 fillText():

Canvas - 渐变

渐变可以填充在矩形, 圆形, 线条, 文本等等, 各种形状可以自己定义不同的颜色。

以下有两种不同的方式来设置Canvas渐变:

  • createLinearGradient(x,y,x1,y1) - 创建线条渐变
  • createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

当我们使用渐变对象,必须使用两种或两种以上的停止颜色。

addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0至1.

使用渐变,设置fillStyle或strokeStyle的值为 渐变,然后绘制形状,如矩形,文本,或一条线。

使用 createLinearGradient():

转载于:https://www.cnblogs.com/zhouyideboke/p/11175231.html

对Canvas的研究相关推荐

  1. canvas学习之柱状图

    项目地址:http://pan.baidu.com/s/1nvhWrwP 因为最近项目中使用到了图表,而且个人一直希望研究canvas,所以最近几天花时间对canvas好好研究了一下,并写了一个dem ...

  2. HTML5 Canvas中 fillText() 和 strokeText() 的区别

    前言 Canvas现在越来越多地被运用到我们的项目中了,所以对Canvas的研究也得跟上呀,不然就被时代抛弃了.这次要给大家分享的是 HTML5 Canvas 中的 fillText 和 stroke ...

  3. pdfjs viewer 开发小结

    此文已由作者吴家联授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1. pdfjs库简介 PDF.js 是由Mozilla 主导推出的可以将PDF文件转换为H5页面进行展示的 ...

  4. 满地鸡毛的一年 || 转行Android之路

    作者:程序员小北 链接:https://juejin.cn/post/7042468847466577957 效果预览 先来看一下这个库的实际表现吧,用起来真的很简单,而且特别的漂亮.以下效果图是在 ...

  5. 可复现、开放科研、跨学科合作:数据驱动下的科研趋势及应用方案

    信息技术的快速发展,催化了数据科学场景下科研组织提高科学研究的可复现性.实现开放科研.开展跨学科领域的交叉研究等协同诉求.本文剖析了此三类诉求的实现难点,并提供了系统化的解决方案. 欢迎进入Model ...

  6. Canvas设置样式无效导致圆变成椭圆的问题研究剖析

    Canvas设置样式无效导致圆变成椭圆的问题研究剖析,如下面代码段. <!DOCTYPE html> <html lang="en"> <head&g ...

  7. Android Canvas rotate 和translate 两个方法的研究

    转自:http://www.verydemo.com/demo_c131_i3507.html 首先我们来看这样一个需求:显示一个竖向显示的TextView.说白了,就是把我们日常使用的TextVie ...

  8. 用Canvas实现刮刮卡功能的研究与实践

        前几天,单位老刘让我研究一下网上最近很流行的"刮刮卡"是怎么实现的,我第一时间就想起了我媳妇曾经跟我说过的:"在HTML5中Canvas的绘图能力很强大" ...

  9. 利用Canvas在浏览器上绘制复杂图形,比如:绘制一件衣服,绘制一条围巾,现阶段研究成果

    以下效果图均由canvas绘制,精确到每一根纱线的细节,原图可能100M左右,这里放部分原图(都是QQ截图的,原图太大放不上来). 整体效果图: 放大细节: 精确到每一根: 上图还可以继续优化, 在此 ...

最新文章

  1. POJ2308连连看dfs+bfs+优化
  2. 《研磨设计模式》chap20 享元模式 Flyweight (2)模式介绍
  3. surging 微服务引擎 2.0 会有多少惊喜?
  4. python selenium span内容读取_【程仁智推荐】Selenium自动化测试入门
  5. 界面设计方法 (2) — 3.卡式, 列表, 主细表, 树形, 页签
  6. 如何生成可变表头的excel
  7. NOIP 2007 普及组初赛试题(C++)(含答案)
  8. 框架源码专题:springIOC的加载过程,bean的生命周期,结合spring源码分析
  9. 【Dairy】2016.10.30 BirthdayParty
  10. 【NOIP1999】【Luogu1020】导弹拦截
  11. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第1节 基本概念_02maven依赖管理的概念
  12. 【运动学】基于matlab GUI地球自转模拟【含Matlab源码 1115期】
  13. 如何关闭访达窗口_UG NX软件基础操作,如何自定义软件快捷键
  14. The CDB process terminated
  15. 自动删除旧代码神器来了!Uber开源Piranha,号称吃代码的“食人鱼”
  16. (基础篇)用python实现打印节日贺卡
  17. [POI2009]Lyz
  18. 安卓 手柄 linux,Linux joystick 游戏手柄编程 (获取输入数据)
  19. 无线wifi如何远程唤醒?wake on lan网络唤醒及远程控制踩过的坑!
  20. 网络及路由器故障诊断基础知识

热门文章

  1. 张恩民 php,php张恩民PHP中ltrim与rtrim去除左右空格及特殊字符实例
  2. php中时差怎么改,我的PHP时差功能可以改进吗?
  3. 读入自然数m、n,判断m/n是有限小数还是循环小数
  4. mycat连接mysql时间_Mycat连接MySQL 8时的注意事项
  5. hot编码 字符one_用 PyTorch 实现基于字符的循环神经网络 | Linux 中国
  6. 天云大数据_天云大数据三度蝉联毕马威领先金融科技50强
  7. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task4模型建立
  8. 64位ubuntu 12.04编译linux内核提示mkimage command not found
  9. 鹤峰:美丽的茶乡—— 山水篇
  10. 异步复位的串联T触发器