Canvas的使用(二)

84 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第19天,点击查看活动详情

在前面的文章canvas的基本使用(一)中,介绍了canvas的使用场景,概念和基本用法,本文将继续学习canvas的其他用法。

canvas描述

<canvas> 标签用于绘制图像,但是其元素本身并没有绘制能力,需要借助脚本(js)。getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性

canvs - 矩形

方法描述
rect()创建矩形。
fillRect()绘制"被填充"的矩形。
strokeRect()绘制矩形(无填充)。
clearRect()在给定的矩形内清除指定的像素。

Canvas - 圆形

画圆线使用arc(中心点X坐标,中心点Y坐标,半径,起始角度,结束角度),使用 arc() 来创建圆,起始角设置为 0,结束角设置为 2*Math.PI。

image.png

var c = document.getElementById("canvas"); 
var ctx = c.getContext("2d"); 
ctx.beginPath(); 
ctx.arc(95,50,40,0,2*Math.PI); 
ctx.stroke();

效果如下

image.png

Canvas - 文本

  • font - 定义字体
  • fillText(text,x,y) - 在 canvas 上绘制实心的文本
  • strokeText(text,x,y) - 在 canvas 上绘制空心的文本
var c = document.getElementById("canvas"); 
var ctx = c.getContext("2d"); 
ctx.font="20px Arial"; 
ctx.fillText("Hello World",10,50);

image.png

Canvas - 渐变

渐变可以用于填充矩形, 圆形, 线条, 文本等。

渐变分为线性渐变和径向渐变。跟背景色一样,知识是互通的。

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

渐变必使用至少两种颜色

addColorStop()方法用来指定结束颜色,参数用坐标来描述,可以是0至1。

线性渐变

var c = document.getElementById("canvas"); 
var ctx = c.getContext("2d"); // 创建渐变 
var grd = ctx.createLinearGradient(0,0,200,0); 
grd.addColorStop(0,"blue"); 
grd.addColorStop(1,"white"); // 填充渐变 
ctx.fillStyle=grd; ctx.fillRect(10,10,150,80);

效果如图 image.png

径向渐变

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

var grd = ctx.createRadialGradient(75,50,5,90,60,100);
grd.addColorStop(0,"blue");
grd.addColorStop(1,"white");

ctx.fillStyle = grd;
ctx.fillRect(10,10,150,80);

效果如下 image.png

Canvas - 图像

  • drawImage(image,x,y)
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d"); 
var img = document.getElementById("img"); 
ctx.drawImage(img,10,10);