HTML5 Canvas 使用教程

HTML5 Canvas 使用教程

HTML5 的 Canvas 元素提供了一种在网页上动态绘制图形的方法。通过 JavaScript,开发者可以在 Canvas 上绘制图像、动画、图表等。本文将详细介绍 Canvas 的使用方法,从基础到高级应用。

目录

  1. Canvas 简介
  2. 在 HTML 中使用 Canvas
  3. 获取绘图上下文
  4. 基本绘图操作
    • 绘制矩形
    • 绘制路径和线条
    • 绘制圆形和弧线
  5. 绘图样式
    • 颜色与填充
    • 线条样式
    • 渐变与图案
    • 阴影效果
  6. 图像与文本
    • 绘制图像
    • 绘制文本
  7. 动画
    • 基本动画原理
    • 使用 requestAnimationFrame
  8. 事件处理
    • 鼠标事件
    • 键盘事件
  9. 高级技巧
    • 使用路径
    • 组合操作与混合模式
    • 保存与恢复状态
  10. 性能优化
  11. 常用工具与库
  12. 参考资料

Canvas 简介

Canvas 是 HTML5 中新增的一个元素,允许在网页上通过 JavaScript 动态绘制图形。它适用于游戏开发、数据可视化、图像处理等多种场景。

特点:

  • 动态绘制:可以实时更新图形。
  • 像素级控制:精确控制每个像素。
  • 广泛支持:现代浏览器均支持 Canvas。

在 HTML 中使用 Canvas

首先,在 HTML 文件中添加 Canvas 元素:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Canvas 示例</title>
</head>
<body>
    <canvas id="myCanvas" width="800" height="600" style="border:1px solid #000000;"></canvas>

    <script src="script.js"></script>
</body>
</html>

属性说明:

  • id:用于在 JavaScript 中引用 Canvas。
  • widthheight:Canvas 的宽度和高度,默认分别为 300 和 150。
  • style:可以通过 CSS 设置 Canvas 的样式,例如边框。

获取绘图上下文

要在 Canvas 上绘图,需要获取绘图上下文(通常是 2D 上下文)。

// script.js

// 获取 Canvas 元素
const canvas = document.getElementById('myCanvas');

// 获取 2D 绘图上下文
const ctx = canvas.getContext('2d');

绘图上下文 是一个对象,提供了用于绘制图形的方法和属性。


基本绘图操作

绘制矩形

Canvas 提供了多种绘制矩形的方法:

  • fillRect(x, y, width, height):绘制填充矩形。
  • strokeRect(x, y, width, height):绘制矩形边框。
  • clearRect(x, y, width, height):清除指定区域。
// 绘制红色填充矩形
ctx.fillStyle = 'red';
ctx.fillRect(50, 50, 200, 100);

// 绘制蓝色边框矩形
ctx.strokeStyle = 'blue';
ctx.lineWidth = 5;
ctx.strokeRect(300, 50, 200, 100);

// 清除区域
ctx.clearRect(60, 60, 50, 50);

绘制路径和线条

使用路径可以绘制复杂的图形和线条。

// 开始新路径
ctx.beginPath();

// 移动到起点
ctx.moveTo(100, 300);

// 绘制直线
ctx.lineTo(200, 300);
ctx.lineTo(200, 400);
ctx.lineTo(100, 400);

// 闭合路径
ctx.closePath();

// 设置样式
ctx.fillStyle = 'green';
ctx.fill();

ctx.strokeStyle = 'black';
ctx.lineWidth = 2;
ctx.stroke();

绘制圆形和弧线

使用 arc 方法绘制圆形或弧线。

// 绘制完整圆形
ctx.beginPath();
ctx.arc(400, 300, 50, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值