Canvas方法

什么是canvas

HTML5 canvas 标签用于图形的绘制,通过javascript脚本来完成对canvas图形的绘制。
canvas 标签只是图形容器,您必须使用脚本来绘制图形。
你可以通过多种方法使用Canvas绘制路径,盒、圆、字符以及添加图像。

兼容性

兼容chrome、firefox等主流高版本浏览器,兼容IE9.0以上。

创建一个canvas画布

使用<canvas></canvas> 标签来创建一个画布
注意:默认情况下canvas元素没有边框和内容。

<canvas id="c1" width="800" height="600"></canvas>

使用js来绘制图像

  • 获取canvas元素
var oC = document.getElementById('c1');
  • 创建context对象
var ctx = oC.getContext('2d');

*getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
  • 绘制直线
ctx.moveTo(x,y);  //定义线条开始坐标

ctx.lineWidth = 10; // 线宽

ctx.lineTo(x,y);  //定义线条结束坐标

ctx.strokeStyle = color; // 线条颜色

ctx.closePath(); // 闭合线条

ctx.stroke();  //绘制直线

这里写图片描述

  • 绘制圆形
ctx.arc(x,y,r,start,stop);

x - 圆心x坐标位置
y - 圆心y坐标位置
r - 半径
start - 开始弧度位置
stop - 结束弧度位置

** start/stop均为弧度,start起始位置为右侧90度位置。

使用arc()方法绘制一个圆

这里写图片描述

ctx.arc(200,200,50,0,360/180*Math.PI);
ctx.stroke();
  • canvas文本
    canvas绘制文本有如下截属性和方法:
    font - 字体
    fillText(text,x,y) - 在canvas上绘制实心文字
    strokeText(text,x,y) - 在canvas上绘制空心文字
    Text(‘canvas’,200,200);

ctx.textAlign = ‘center’; // 水平居中
ctx.textBaseline = ‘middle’; // 基线居中(垂直)

绘制实心文本
ctx.font = '50px Arial';
ctx.fillText('canvas',200,200);

绘制实心文本

绘制空心文本
ctx.font = '50px Arial';
ctx.stroke!

绘制空心文本

实例

canvas简易画板

源代码:

var oC = document.getElementById('c1');
    var ctx = oC.getContext('2d');

    ctx.beginPath();
    oC.onmousedown = function(ev){
        ctx.moveTo(ev.pageX-oC.offsetLeft,ev.pageY-oC.offsetTop);

        document.onmousemove = function(ev){
            ctx.clearRect(0,0,oC.width,oC.height);
            ctx.lineTo(ev.pageX-oC.offsetLeft,ev.pageY-oC.offsetTop);
            ctx.lineWidth = 10;
            ctx.strokeStyle = 'rgb(244, 122, 10)';
            ctx.stroke();
        }
        document.onmouseup = function(){
            document.onmousemove = null;
            document.onmouseup = null;
        }
    }

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值