学习:Canvas基本用法
来源:互联网 发布:淘宝换类目 编辑:程序博客网 时间:2024/06/12 23:25
前言
接触svg一段时间了。慢慢的觉得还是要学习一下canvas(其实是看粒子效果都是canvas,svg上加canvas实现粒子效果,所以没办法懒了)网上的教程不少还是按个人习惯记录一下。
MDN中的canvasAPI文档:http://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html
教程:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Basic_usage
Canvas
创建
canvas需要创建后再获取才能使用html:(标准)
<canvas></canvas>
d3:(个人习惯)
var canvas_js = document.getElementById('js');var canvas_d3 = d3.selectAll("#ceshi").append("canvas");
关于d3
d3.js v4版本支持canvas。目前还在使用v3版本。所以此处用于记录其中的各种问题。
上述的d3创建canvas。canvas_d3为d3封装的对象。使用过d3的应该习以为常的使用下列语法,但是canvas中需要注意是不可取的。因为d3_v3不支持canvas~~~
//创建var canvas_d3 = d3.selectAll("#ceshi").append("canvas");canvas_d3.width = 200;//报错哦。//个人解决办法//1.单个属性canvas_d3[0][0].width = 200;//2.一劳永逸 var canvas_d3 = >d3.selectAll("#ceshi").append("canvas")[0][0];canvas_d3.width = 200;
基本API
width( ) && height( )
设置宽高
getContext( )
获取画布。专业点的说法就是渲染上下文,通过使用 document.getElementById() 方法来为 元素得到DOM对象。一旦有了元素对象,你可以通过使用它的getContext() 方法来访问绘画上下文。
//jsvar canvasjs = document.getElementById('js');canvasjs.getContext('2d');//d3var canvasd3 = d3.selectAll("body").append("canvas")[0][0];canvasd3.getContext("2d");
参数:
‘2d’ :初学嘛。只好2D渲染了。栅格
画布栅格(canvas grid)太专业了。。。空间坐标和d3一致,默认左上角为原点。
绘制基本图形
矩形
canvas默认支持的图形只有矩形,并提供三种绘制矩形API。fillRect(x,y,width,height):填充
strokeRect(x,y,width,height)边框需要注意的是:边框线默认宽度2px;且向边外扩充1px;就是说我在(20,20)处画了一个80*80的边框矩形,但是实际显示区域是(19,19)处起线宽2px,内部79*79的矩形。
clearRect(x,y,width,height)清除
代码语法基本一致了,之后就不做区别了
//ctx_js
//绘制填充矩形
ctx_js.fillRect(20, 20, 80, 80);
//绘制矩形的边框
ctx_js.strokeRect(120, 20, 80, 80);
//清除一个矩形区域
ctx_js.clearRect(70, 20, 80, 80);
//
//ctx_d3
//绘制填充矩形
ctx_d3.fillRect(20, 20, 80, 80);
//绘制矩形的边框
ctx_d3.strokeRect(120, 20, 80, 80);
//清除一个矩形区域
ctx_d3.clearRect(70, 20, 80, 80);
绘制路径
基本步骤
beginPath():创建起点
画图命令画出路径
closePath:封闭路径,组合图形时,多个独立路径一定要闭合后再绘制新的路径,或者在路径命令中闭合
fill()或stroke():路径生成后,可以通过描边(stroke)或者填充(fill)来渲染图形画图命令
**线**lineTo(x,y);
**圆**arc(x,y,radius,startAngle,endAngle,anticlockwise);
**贝塞尔曲线**quadraticCurveTo(cp1x,cp1y,x,y);Path2D()
路径对象
- 学习:Canvas基本用法
- Canvas 基本用法学习笔记
- canvas的基本用法
- Canvas基本用法
- Canvas 基本用法
- Canvas的基本用法
- Canvas绘图基本用法
- Canvas教程 Canvas tutorial之基本用法
- 说说 canvas 的基本用法
- Android绘图Canvas、Paint类基本用法
- Canvas 的绘制图表的基本用法
- Canvas 的绘制图表的基本用法
- javascript中canvas绘图的基本用法
- canvas学习一之canvas的基本使用
- canvas学习之图像的基本操作
- JavaScript学习 - 基本用法
- 【SQL学习】基本用法
- 深入了解Canvas标签(1)——基本用法
- hadoop 2.7.1源码导入eclipse
- 【结论&例题】【数学】NKOJ3813 最多因数
- hibernate Restrictions用法
- android通过webservice连接SQL Server详细教程(数据库+服务器+客户端)
- maven导出项目依赖的jar包
- 学习:Canvas基本用法
- 服务器上有很多/usr/bin/script xxx.log的解决办法
- Java 抽象类经典例子2
- 13.jQuery中如何把一个外部json文件中的数据读入到js代码中?
- 一个一键修改IP设置的BAT脚本
- opencv 无法打开摄像头
- 报错The type javax.servlet.http.HttpServletRequest cannot be resolved.
- eclipse 中tomcat工程的server.xml改为80 端口报异常端口被占用
- sudo: /etc/sudoers is mode 0640, should be 0440解决办法