canvas
Posted zhanghua-zh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas相关的知识,希望对你有一定的参考价值。
canvas基本用法
1.什么是canvas(画布)
<canvas> 是 html5 新增的元素,可用于通过使用javascript中的脚本来绘制图形,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas模板</title> <style> canvas { border: 1px solid; } </style> </head> <body> <canvas id="test" width="300" height="300"> <span>您的浏览器不支持画布元素,请升级或更换浏览器,推荐使用谷歌浏览器</span> </canvas> <script> function draw() { var canvasNode = document.querySelector(‘#test‘); // 获取画布 if (!canvasNode.getContext) return; // 检测支持性,防止在低版本浏览器报错 var ctx = canvasNode.getContext("2d"); // 获取画笔 // 绘制..... } draw(); </script> </body> </html>
canvas绘制矩形
HTML中的元素canvas只支持一种原生的图形绘制:矩形。所有其他的图形的绘制都至少需要生成一条路径
1.绘制矩形
- 绘制矩形的三种方法
- fillRect(x, y, width, height) --- 绘制一个填充的矩形(填充色默认为黑色)
- strokeRect(x, y, width, height) --- 绘制一个矩形的边框(默认边框为:一像素实心黑色)
- clearRect(x, y, width, height) --- 清除指定矩形区域,让清除部分完全透明。
x与y指定了在canvas画布上所绘制的矩形的左上角(相对于原点)的坐标。
width和height设置矩形的尺寸。(存在边框的话,边框会在width上占据一个边框的宽度,height同理)
2.strokeRect时,边框像素渲染问题
context.strokeRect(10,10,50,50)
按理渲染出的边框应该是1px的,但canvas在渲染矩形边框时,边框宽度是平均分在偏移位置的两侧。浏览器是不会让一个像素只用自己的一半的,故渲染出的边框实际上为2px且颜色较淡。在横纵轴多偏移0.5px可解决此问题。
context.strokeRect(10.5,10.5,50,50)
3.添加样式和颜色
fillStyle :设置图形的填充颜色。默认颜色黑色。
strokeStyle :设置图形轮廓的颜色。默认颜色黑色。
lineWidth :设置当前绘线的粗细。属性值必须为正数。0、 负数、 Infinity 和 NaN 会被忽略。默认值是1.0。
lineJoin :设定线条与线条间接合处的样式(round : 圆角;bevel : 斜角;miter : 直角),默认值为miter。
以上是关于canvas的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 Canvas 支持和 Android Webview