浏览器里的图形①:Canvas 最小路径——从画布到第一根线
Canvas 是浏览器提供的一块位图画布你用脚本下指令像素被画上去适合图表、小游戏、图像处理入门。本系列叫「浏览器里的图形」。第一篇只做一件事从一张空白canvas走到屏幕上的第一根线。不引入框架不讲性能玄学先把坐标系和路径节奏跑通。一、为什么从「一根线」开始很多教程一上来画复杂动画。读者能跟着跑却说不清1(0, 0)在哪2为什么改 CSS 宽高图画糊了3beginPath/stroke各自干什么一根线足够暴露这些问题。线画对了矩形、折线、清屏都只是同一套 API 的扩展。二、准备一块画布下面是一个最小 HTML。canvasidcwidth400height240/canvas上面代码中width/height属性是绘图缓冲区的像素尺寸不是 CSS 外观尺寸。若再用 CSS 把元素拉大却不改属性位图会被拉伸线条容易发糊。入门阶段属性尺寸与显示尺寸保持一致最省事。取上下文constcanvasdocument.getElementById(c)constctxcanvas.getContext(2d)上面代码中2d拿到 2D 绘图上下文。没有上下文后面所有绘制都无从谈起。WebGL 是另一条路本系列后面再碰。三、坐标系原点在左上Canvas 2D 默认1原点(0, 0)在左上角2x向右增大3y向下增大这和部分数学课上的「y 向上」习惯相反。第一次画线偏到奇怪位置多半是 y 方向搞反了。四、画第一根线的固定节奏2D 路径绘制常见节奏是AbeginPath()开始新路径BmoveTo(x, y)落笔起点ClineTo(x, y)连到下一点D设置strokeStyle/lineWidth可在 stroke 前Estroke()真正描边完整示例如下。constcanvasdocument.getElementById(c)constctxcanvas.getContext(2d)ctx.beginPath()ctx.moveTo(40,40)ctx.lineTo(360,200)ctx.strokeStyle#333ctx.lineWidth2ctx.stroke()上面代码中前三步只是在「描述路径」最后stroke()才把线画进像素。忘了stroke屏幕仍是空白这是入门最高频的坑之一。只画填充形状时用fill()线用stroke()。两者可以组合但第一根线只需要stroke。五、清屏与重画动画或交互前通常要擦掉上一帧ctx.clearRect(0,0,canvas.width,canvas.height)上面代码中从(0,0)清到画布宽高。不清理就重画轨迹会叠在一起——有时是效果有时是 bug。六、和 DOM 绘图的差别先有直觉1Canvas 画完是像素不保留「一根线」的 DOM 节点2要点选某根线需要自己做几何命中或换 SVG3适合大量图元、逐帧重绘不适合靠 CSS 轻松做文档型布局第一篇不必选技术宗教。记住Canvas 是命令式位图 API。七、常见误区1只改 CSS 宽高不改 canvas 属性导致拉伸模糊。2忘记beginPath连续 stroke 粘连旧路径可能被一起描出。3以为lineTo立刻可见没有stroke/fill不会上屏。4高 DPI 屏不考虑devicePixelRatio进阶再处理现在先保证属性尺寸正确。5把 Canvas 当万能 UI按钮、表单仍优先用 HTML。八、小结与下一篇预告今天走通的最小路径是取2d上下文 → 弄清左上原点 →beginPath/moveTo/lineTo/stroke。下一篇预告ImageData——从像素数组读写颜色为图像处理打底。完

相关新闻

给网页做永久纹身:Highlighter 让每次划重点都不再消失

给网页做永久纹身:Highlighter 让每次划重点都不再消失

给网页做永久纹身:Highlighter 让每次划重点都不再消失 【免费下载链接】highlighter A Chrome extension to highlight text and keep it all saved 项目地址: https://gitcode.com/gh_mirrors/hig/highlighter 深夜十一点,你读完一篇 8000 字的…

2026/8/18 10:07:51 阅读更多 →
告别两小时倒计时:Wand 专业版完整解锁与远程控制实战指南

告别两小时倒计时:Wand 专业版完整解锁与远程控制实战指南

告别两小时倒计时:Wand 专业版完整解锁与远程控制实战指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 聊到"游戏修改工具增强…

2026/8/18 10:07:51 阅读更多 →
Wallpaper Engine 壁纸下载器快速上手指南:3分钟批量下载 Steam 创意工坊动态壁纸

Wallpaper Engine 壁纸下载器快速上手指南:3分钟批量下载 Steam 创意工坊动态壁纸

Wallpaper Engine 壁纸下载器快速上手指南:3分钟批量下载 Steam 创意工坊动态壁纸 【免费下载链接】Wallpaper_Engine 一个便捷的创意工坊下载器 项目地址: https://gitcode.com/gh_mirrors/wa/Wallpaper_Engine Wallpaper Engine 壁纸下载器(开源…

2026/8/18 10:07:51 阅读更多 →

最新新闻

es6知识点6-自备使用

es6知识点6-自备使用

16. Set Set 可以理解成:一个“不允许重复值”的集合。最常见用途就是: 数组去重。16.1 基本使用 const set new Set()set.add(1) set.add(2) set.add(2) set.add(3)console.log(set)结果: Set(3) { 1, 2, 3 }虽然: set.add(2)执…

2026/8/18 12:06:24 阅读更多 →
LLM智能体不确定性分解与主动澄清:构建可靠AI协作的关键技术

LLM智能体不确定性分解与主动澄清:构建可靠AI协作的关键技术

1. 当LLM智能体“心里没底”时:不确定性分解与主动澄清的价值 在构建基于大语言模型的智能体时,我们常常陶醉于其强大的推理和生成能力,仿佛它无所不知。然而,任何在实际项目中深度使用过LLM智能体的人,都会遇到一个共…

2026/8/18 12:06:24 阅读更多 →
奇点大会落地指南,从识别机遇到参与技术生态构建

奇点大会落地指南,从识别机遇到参与技术生态构建

识别“待建生态”:在技术拐点前夜入局 技术生态的构建往往始于一个模糊却充满张力的时刻:某项核心技术刚刚突破临界点,应用场景初现端倪,但围绕它的协作网络尚未成型。对于技术管理者和生态建设者而言,最大的机遇不在…

2026/8/18 12:06:24 阅读更多 →
AI资讯日报 | 2026年8月17日

AI资讯日报 | 2026年8月17日

一、今日头条1. Stripe超70亿美元收购OpenRouter:AI"路由层"迎来支付巨头支付巨头Stripe宣布达成协议,以超过70亿美元的价格收购AI路由平台OpenRouter。OpenRouter通过单一API连接OpenAI、Anthropic、Google、Meta、DeepSeek等400余款模型&…

2026/8/18 12:06:24 阅读更多 →
Windows更新故障一键修复:Reset Windows Update Tool 保姆级使用教程

Windows更新故障一键修复:Reset Windows Update Tool 保姆级使用教程

Windows更新故障一键修复:Reset Windows Update Tool 保姆级使用教程 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …

2026/8/18 12:06:24 阅读更多 →
抖音评论采集终极教程:零基础三步把全量评论导出为 Excel

抖音评论采集终极教程:零基础三步把全量评论导出为 Excel

抖音评论采集终极教程:零基础三步把全量评论导出为 Excel 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 想把一条 TikTok(也就是大家熟知的抖音)视频的评论区完整搬进 E…

2026/8/18 12:05:21 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →