发布时间:2026/8/22 13:40:39
如何在10分钟内画出第一个3D数学曲面:Grafar快速上手完整教程 如何在10分钟内画出第一个3D数学曲面Grafar快速上手完整教程【免费下载链接】grafarReactive multidimensional math data visualization for the web.项目地址: https://gitcode.com/gh_mirrors/gr/grafarGrafar是一个运行在浏览器里的 JavaScript 库专为3D 数学可视化与数据可视化而生。它基于 WebGLThree.js渲染核心卖点是响应式Reactive你定义好变量之间的依赖关系后Grafar 会自动追踪数据变化并实时刷新画面。本教程带你用不到 10 分钟从零画出第一个可以旋转、拖拽的 3D 数学曲面。 为什么选择 Grafar3 个核心理由特性说明响应式数据流修改一个变量所有依赖它的曲线、曲面自动重算刷新无需手动刷新完整的 3D 体验内置 3D 视口鼠标即可旋转、缩放观察曲面高级拓扑推断两个一维区间做map自动得到曲面一个区间得到曲线——不用手写网格对于传统图表库如 d3难以呈现的大量数据点和连续数学对象Grafar 是更合适的选择。 准备工作2 步装好 Grafar1 分钟方式一npm 安装推荐npm install grafar方式二从源码构建git clone https://gitcode.com/gh_mirrors/gr/grafar cd grafar npm install npm run build # 产物在 build/grafar.js构建出的build/grafar.js是一个 UMD 模块可以直接用script标签引入网页。 如果你只想快速上手可以直接参考仓库里开箱即用的示例例如 3D 球面演示 examples/parametric_sphere.html。 第一步用生成器定义自变量2 分钟Grafar 的每个应用都从**生成器Generator**开始。生成器负责往数组里填数字并告诉 Grafar 点与点之间如何连接比如是离散点集还是连续区间。最常用的三个内置生成器grafar.range(a, b, n)在 a 到 b 之间均匀取 n 个点点之间相连模拟连续区间[a, b]grafar.seq(a, b, n)同样取 n 个点但点不相连得到离散点集grafar.set([...])直接包装一个数字数组生成器输出后需要调用.select()声明为自由变量。完整说明见docs/tutorial/2-generators.md。⚡ 第二步用 map() 一键生成 3D 数学曲面3 分钟这是 Grafar 最魔法的地方grafar.map()会自动追踪依赖并根据输入变量的维度推断输出对象的拓扑。一条规则搞定所有形状输入输出形状2 个range变量3D 数学曲面1 个range变量曲线rangeseq组合一组曲线线集下面这段核心代码就定义了一个波浪曲面 z cos(x)·sin(y)const x grafar.range(-1, 1, 100).select(); const y grafar.range(-1, 1, 100).select(); const z grafar.map([x, y], (x, y) Math.cos(x) * Math.sin(y));就这么简单——Grafar 会自动对 100×100 的每个 (x, y) 组合调用你的函数并推断出这是一个曲面。map的源码在src/grafar.ts拓扑推断逻辑位于src/core/topology/目录。️ 第三步pin() 上屏看到你的第一个曲面2 分钟Grafar 用Panel绑定在 DOM 节点上的 WebGL 画布来显示图形const container document.getElementById(render); const pan new grafar.Panel(container); // 创建 3D 面板 grafar.pin([x, y, z], pan); // 把曲面钉上去打开页面你就能看到第一个 3D 数学曲面鼠标拖拽即可旋转视角 还可以在同一面板叠加多个图形、动态着色// 叠加第二个曲面z 1 grafar.pin([x, y, grafar.map(z, z z 1)], pan); // 用 (x, y, z) 三个值作为 RGB 分量动态着色 grafar.pin({ axes: [x, y, z], color: [x, y, z] }, pan);想显示 2D 图只需pan.setAxes([x, y])并传入两个变量即可。Panel的实现见src/rendering/Panel.ts。 进阶玩法参数化曲面与隐式曲面3 分钟参数化曲面(p, q) → (x, y, z)当曲面难以写成 z f(x, y) 时比如球体用两个参数分别映射出 x、y、zconst t grafar.range(0, Math.PI, 30).select(); const p grafar.range(-Math.PI, Math.PI, 50).select(); grafar.pin([ grafar.map([t, p], (t, p) Math.sin(t) * Math.sin(p)), grafar.map([t, p], (t, p) Math.cos(t) * Math.sin(p)), grafar.map([t, p], (t, p) Math.cos(p)) ], pan3d); // 得到一个球面隐式曲面直接求解 f(x, y, z) 0grafar.vsolve内部使用牛顿迭代法直接对隐式方程采样求零点比如 x³ y² z² 2 这种写不出 z 的式子也能画const surf grafar.vsolve( v Math.pow(v[0], 3) Math.pow(v[1], 2) Math.pow(v[2], 2) - 2, 50000, // 采样点数 3 // 求解维度 ).select(); grafar.pin(surf, grafar.panel(document.getElementById(isurf))); 注意vsolve目前生成的是点云最适合绘制光滑、有界、靠近原点的物体。❓ 常见报错排查清单画面是空的→ 检查是否漏了.select()忘记调用则生成器不会参与响应式系统想要曲面却画出了一堆点→ 把range()换成了seq()seq不连接相邻点坐标系不对→ 用pan.setAxes([...])设置轴标签传 2 个标签可切换为 2D 模式粒子大小不合适→ 用grafar.setup({ particleRadius: 0.08 })调整全局渲染参数 继续学习Grafar 文档地图绘图与面板docs/tutorial/1-plotting.md生成器详解docs/tutorial/2-generators.mdmap() 与拓扑推断docs/tutorial/3-mapping.md参数化曲线/曲面docs/tutorial/4-parametric.md隐式曲面vsolvedocs/tutorial/5-implicit.md响应式与动画docs/tutorial/6-animations.md完整 API 参考docs/api.md更多可直接运行的示例examples/目录曲面、方向场、动画、隐式相交等小结Grafar 的完整工作流只有三步——生成器定义自由变量 →map()自动推断拓扑 →pin()上屏渲染。掌握这三步你就能在 10 分钟内画出自己的第一个 3D 数学曲面并继续探索动画、交互输入和数据可视化等更高级的功能。【免费下载链接】grafarReactive multidimensional math data visualization for the web.项目地址: https://gitcode.com/gh_mirrors/gr/grafar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/22 13:35:38

GetQzonehistory:QQ空间历史说说免费备份方案

GetQzonehistory:QQ空间历史说说免费备份方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你有多久没翻过 QQ 空间里那些老说说了?想逐条找回文字、配图和评论…

2026/8/22 13:35:38

微前端-qiankun

微前端与 qiankun 学习笔记 一、微前端概述 微前端(Micro Frontends) 是一种将前端应用拆分成多个独立、可部署的部分的架构模式,每个部分可以由不同的团队、技术独立开发、测试、部署和维护。这种架构类似于后端的微服务,是为了应…

2026/8/22 15:00:42

2026年论文写作全流程AI工具实测:aibiye从开题到答辩

aibiye官网直达入口:https://www.aibiye.com/ 一篇1.2万字的本科毕业论文,从开题报告到答辩PPT,全程用AI工具辅助完成,到底要多久?实测答案是6小时。这篇记录aibiye在论文写作全流程各环节的实际表现,同时…

2026/8/21 13:13:49

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

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

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…