html5canvas怎么画图形_矩形圆形路径绘制基础操作【教程】

大萱姑娘_6958

大萱姑娘_6958

2026-01-03

418人浏览

原创

fillRect()和strokeRect()可直接绘制矩形,无需路径操作;画圆必须用arc()配合beginPath()、fill()/stroke();自定义图形需moveTo()+lineTo()+closePath()组合,并注意路径状态管理。

html5canvas怎么画图形_矩形圆形路径绘制基础操作【教程】

用 fillRect() 和 strokeRect() 画矩形最直接

Canvas 绘制矩形不需要路径操作,两个 API 就够用:fillRect() 填充实心矩形,strokeRect() 只描边。它们参数统一:左上角 x、y,宽 width、高 height。

注意:坐标原点在 canvas 左上角,y 增大是向下,不是数学坐标系;且这些方法不依赖当前路径,调用后也不会改变路径状态(比如不会自动 beginPath())。

  • 如果先调了 fill() 或 stroke() 再画矩形,不影响矩形渲染——因为矩形绘制是独立的
  • 多次调用 fillRect() 不会累积路径,也不需要手动 beginPath()
  • 想让矩形带圆角?得换 rect() + arcTo() 或用 CSS border-radius 配合离屏 canvas,原生矩形 API 不支持
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#4a90e2';
ctx.fillRect(10, 20, 120, 80); // 实心蓝矩形
ctx.strokeStyle = '#d32f2f';
ctx.lineWidth = 3;
ctx.strokeRect(50, 60, 100, 40); // 红边框矩形

画圆形必须走路径:用 arc() 而不是 circle()

Canvas 没有 drawCircle() 这种方法。arc() 是唯一可靠画圆/圆弧的方式,它本质是画一段路径,所以必须配合 beginPath()、fill() 或 stroke() 才能显形。

常见错误是漏掉 beginPath(),导致新圆叠加在旧路径上,再调 fill() 就把之前所有未闭合路径一起填了;或者误用 arcTo()(它只适用于已存在两条切线的场景,不适合画标准圆)。

  • arc(x, y, radius, startAngle, endAngle, anticlockwise):角度单位是弧度,不是度数
  • 画整圆要确保 endAngle - startAngle === 2 * Math.PI,否则只是圆弧
  • 顺时针画圆设 anticlockwise = false(默认值),但填充方向不影响视觉结果
const ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(150, 100, 40, 0, Math.PI * 2); // 圆心(150,100),半径40,整圈
ctx.fillStyle = '#7c4dff';
ctx.fill();

moveTo() + lineTo() + closePath() 是自定义路径的核心组合

所有非矩形、非圆的图形(比如三角形、五角星、不规则多边形)都得靠这个组合手绘路径。它模拟的是“抬笔→落笔→连线→封口”的过程,每步都影响当前路径状态。

HTML Text Extract
HTML Text Extract

从HTML页面(URL、文件或标准输入)中提取主体内容文本,去除导航、页脚、广告和模板文本。可直接传递给readability_check或其他文本工具。

下载

最容易出错的是忘记 beginPath() —— 如果前面画过别的图形且没重置路径,新 moveTo() 会从上一个路径终点开始连,而不是你预期的起点;还有就是 closePath() 并不自动 stroke() 或 fill(),只是补一条线回起点。

  • moveTo(x, y) 抬笔移到某点,不画线
  • lineTo(x, y) 落笔画直线到该点
  • closePath() 自动加一条线回到路径起始点(即第一次 moveTo() 的位置)
  • 路径一旦 fill() 或 stroke(),就清空了,后续操作需重新 beginPath()
const ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(200, 50);
ctx.lineTo(250, 150);
ctx.lineTo(150, 150);
ctx.closePath(); // 自动连回 (200, 50)
ctx.fillStyle = '#ff6f00';
ctx.fill();

路径绘制后不显示?先查这三件事

Canvas 路径绘制是“声明式”的:定义好路径,再调 fill() 或 stroke() 才真正渲染。很多初学者卡在这一步,以为画完 arc() 或 lineTo() 就该看见图形了。

  • 是否漏了 beginPath()?尤其在循环画多个图形时,不重置路径会导致意外连接
  • 是否调用了 fill() 或 stroke()?只定义路径不会显示任何东西
  • 是否设置了 fillStyle 或 strokeStyle?默认是黑色,但如果 canvas 背景也是深色,可能看不清;透明色或 'transparent' 也会导致“看不见”

路径本身不可见,没有“轮廓线”概念;stroke() 的宽度受 lineWidth 控制,但它的绘制位置是路径中心线,不是内侧或外侧——这点在画细边框时容易偏移一像素。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

css html html5 canva

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
html边框设置教程
html边框设置教程

本教程将带你全面掌握HTML/CSS边框设置,从基础的border属性讲起,涵盖所有边框样式、圆角设置及高级技巧,帮助你快速上手实现各种边框效果。

2025.09.02

2873

11

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

2023.10.23

4591

6

canva可画使用技巧汇总
canva可画使用技巧汇总

本专题汇集了PHP中文网精心整理的Canva可画新手使用技巧大全,专为零基础用户打造。无论你是想制作精美海报、PPT还是社交媒体配图,这里都有从注册登录、模板搜索到AI辅助设计、导出分享的全流程保姆级教程。通过深入浅出的图文指南,帮助你快速跨越设计门槛,轻松掌握Canva可画的实用操作,让每个人都能成为设计达人!

2026.05.19

284

21

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

2026.11.03

0

17

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

2026.11.03

0

19

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

2026.11.03

0

12

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

2026.11.03

0

10

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

20

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

20

17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习