canvas 简介

Canvas的概述

定义

  • <canvas>是H5新增的标签
  • canvas提供给了 javascript 绘图接口
  • canvas绘图建立在坐标系上

应用领域

  • 炫酷特效、banner
  • 可视化数据(图表)
  • 游戏
  • 大型应用(地图)
  • 在线系统 (在线PS )

canvas标签

  • 属性 width
  • 属性 height
  • 方法 getContext() 可选的参数 "2d" / "webgl" 返回上下文环境

绘图环境

  • 该对象提供API,让JavaScript来绘制图形

绘图基础

路径的开启和闭合

  • beginPath() 开启路径
  • closePath() 关闭路径 (把路径闭合)

设置起点

  • moveTo(x, y)

画线

  • lineTo(x , y) 绘制直线

描边

  • lineWidth 属性 设置描边线的粗细
  • strokeStyle 属性 设置描边颜色
  • stroke() 绘制

填充

  • fillStyle 属性 填充颜色
  • fill() 执行填充

快速矩形

  • rect(x, y, width, height) 绘制矩形路径
  • strokeRect(x, y, width, height) 描边矩形
  • fillStroke(x, y, width, height) 填充矩形
  • clearRect(x, y, width. height) 清除矩形 (可以用来清除屏幕)

圆弧

  • arc(x, y, radius, start, end, true/false) 圆弧路径
  • start 表示开始的弧度(位置) 0弧度是三点钟方向
  • end 表示结束的弧度(位置)
  • 默认false 表示顺时针

绘制文字

  • font 属性 设置文字的风格、大小、字体 值 同css的font属性
  • textAlign 属性 文字水平对齐方式 (start/left/center/right/end)
  • textBaseline 属性 文字的垂直对齐方式 (top/middel/bottom/alphabetic)
  • strokeText(text, x, y) 描边字
  • fillText(text, x, y) 填充字
  • measureText(text) 返回对象 文字的宽度 取决于字体大小

绘制图片

  • drawImage(img, x, y) 简单绘制图片
  • drawImage(im, x, y, w, h) 绘制图片并指定在画布上的大小
  • drawImage(im, sx, sy, sw, sh, x, y, w, h) 裁剪图片并把裁剪部分绘制到画布
  • 其中 img是图片的dom对象, 配合onload事件

设置阴影

  • shadowColor 阴影颜色
  • shadowBlur 阴影模糊值
  • shadowOffsetX 阴影x偏移量
  • shadowOffsetY 阴影y偏移量

渐变

  • createLinearGradient(x, y, x1, y1) 创建线性渐变
  • createRadialGradient(cx1, cy1, r1, cx2, cy2, r2);

线条样式

  • lineCap 属性 线条两端样式 butt/round/square
  • lineJoin 属性 线条相交样式 miter/bevel/square

Cavnas 高级

变换--位移

  • translate(x, y)

变换-缩放

  • scale(xS, yS)

变换-旋转

  • rotate(弧度)

环境的保存和释放

  • save()
  • restore()

    设置透明度

  • globalAlpha 属性 设置绘图环境的不透明度 值 0~1之间

限制绘图区域

  • clip() 配合路径。 对绘图环境进行的限制

输入base64编码

  • canvasEle.toDataURL()

画布渲染画布

  • 使用 drawImage() 把canvas元素当做img元素

贝塞尔曲线

  • bezierCurveTo()

绘制圆角

  • arcTo(x1, y1, x2, y2, r);

Cavnas 第三方类库

常见的第三方类库

  • konva.js
  • chart.js 图表插件
  • eccharts 图表插件(百度)
  • tree.js (3d webgl 库)

第三方类库 Konva

Konva的结构

  • 舞台 (stage)--> 层(layer) --> 图形
  • Statge --> Layer ---> 分组 (--->分组---->) ---> 图形

Konva 绘制图形

  • Konva.Rect
  • Konva.Circle
  • Konva.Wedge
  • Konva.Line
  • Konva.Star
  • Konva.Image
  • ......
时间: 2024-08-02 16:40:07

canvas 简介的相关文章

VML、SVG、Canvas简介

1.VML: VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途,VML只是被IE支持. 2.SVG:       可缩放矢量图形(Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG由W3C制定,是一个开放标准.       由于SVG文件可嵌入JavaScript(严格地说,应该是ECMAScript)脚

canvas简介

<!DOCTYPE html><html><head> <title>canvas介绍</title></head><body><canvas width="600"height="600" style="background:yellow">你的浏览器当前不支持canvas标签</canvas> <script type="

简介 jCanvas:当 jQuery遇上HTML5 Canvas

HTML5 可以直接在你的网页中使用 <canvas> 元素及其相关的 JavaScript API绘制的图形. 在这篇文章中,我将向你介绍 jCanvas,一个基于 jQuery的免费且开源的 HTML5的Canvas API. 如果你使用 jQuery 进行开发,jCanvas能够使用 jQuery更简单,更快速的完成一些非常炫酷的 canvas画布及交互效果. 什么是 jCanvas ? jCanvas 官网是这样解释的: "jCanvas is a JavaScript li

神奇且强大的canvas

一.canvas简介 1.1什么是canvas? 是HTML5提供的一种新标签,ie9才开始支持的 <canvas></canvas>   英 ['k?nv?s] 美 ['k?nv?s] 帆布 画布 canvas是一个矩形区域的画布,可以用JS控制每一个像素在上面绘画. canvas标签使用JavaScript在网页上绘制图像,本身不具备绘图功能. canvas拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 1.2canvas主要应用的领域 1可视化数据:各类统计图表,比如

【转】五分钟学会 Canvas 基础(一)

原文:http://www.jianshu.com/p/d9ec1ef9c1e8 0.前言 最近忙里偷闲,来写的这篇文章,但是中午出去吃个饭,回来因为自己的误操作,把上午的文章全删除了,还没法找回. 小编真的是瞬间觉得整个人生都灰暗了. 心塞,这次真的不想多说什么了. -------------我是华丽的分割线-------------- 终于把这篇文章写完了,关于本文,针对读者主要是之前从未接触过 Canvas的同学.当然,你要学 canvas 一定要有 JS 基础啦. 其次就是,因为前前后后

HTML5的新标签之一的Canvas

一. <canvas>简介(了解) 1. 什么是canvas: 是HTML5提供的一种新标签 <canvas></canvas>  英 ['k?nv?s]  美 ['k?nv?s]   帆布 画布 Canvas是一个矩形区域的画布,可以用JavaScript在上面绘画.控制其每一个像素. canvas 标签使用 JavaScript 在网页上绘制图像,本身不具备绘图功能. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. HTML5之前的web页面只

超多经典 canvas 实例,动态离子背景、移动炫彩小球、贪吃蛇、坦克大战、是男人就下100层、心形文字等等等

超多经典 canvas 实例 普及:<canvas> 元素用于在网页上绘制图形.这是一个图形容器,您可以控制其每一像素,必须使用脚本来绘制图形. 注意:IE 8 以及更早的版本不支持 <canvas> 元素. 贴士:全部例子都分享在我的 GayHub - https://github.com/bxm0927/canvas-special 尤雨溪个人主页炫彩三角纽带效果,点击还可变换 GitHub源码 . Demo演示 知乎登录注册页动态离子背景效果 GitHub源码 . Demo演

【Unity3d游戏开发】浅谈UGUI中的Canvas以及三种画布渲染模式

阅读目录 一.Canvas简介 二.Canvas画布参数与应用 回到顶部 一.Canvas简介 Canvas画布是承载所有UI元素的区域.Canvas实际上是一个游戏对象上绑定了Canvas组件.所有的UI元素都必须是Canvas的自对象.如果场景中没有画布,那么我们创建任何一个UI元素,都会自动创建画布,并且将新元素置于其下. 回到顶部 二.Canvas画布参数与应用 1.创建画布 当你创建任何一个UI元素的时候,都会自动创建画布.也可以主动创建一张画布:点击GameObject->UI->

五分钟学会 Canvas 基础(一)

0.前言 最近忙里偷闲,来写的这篇文章,但是中午出去吃个饭,回来因为自己的误操作,把上午的文章全删除了,还没法找回. 小编真的是瞬间觉得整个人生都灰暗了. 心塞,这次真的不想多说什么了. -----我是华丽的分割线----– 终于把这篇文章写完了,关于本文,针对读者主要是之前从未接触过 Canvas的同学.当然,你要学 canvas 一定要有 JS 基础啦. 其次就是,因为前前后后耽误了两天时间,可能在书写和描述中出现一些小的纰漏,请各位读者老爷见谅. 最后,也希望这篇文章能够对迷茫的你产生一些