Vue 3 + Three.js 打造轻量级 3D 图表库 —— chart3

大家好,我是 一颗烂土豆

最近在数据可视化领域进行了一些探索,基于 Vue 3Three.js 开发了一款轻量级的 3D 图表库 ------ chart3

今天不谈晦涩的代码实现,主要和大家分享一下这个项目的设计初衷目前进展 以及未来的规划

💻 在线体验chart3js.netlify.app/

🌟 愿景 (Vision)

在实际开发中,我们往往面临两难的选择:要么使用传统的 2D 图表库(如 ECharts)通过"伪 3D"来实现效果,但缺乏立体感和自由视角;要么直接使用 Three.js 从零撸,成本高且难以复用。

chart3 的诞生就是为了解决这个问题,它的核心愿景是:

  1. 极简配置:延续 ECharts 的 "Option-based" 配置思维,让前端开发者无需深入了解 WebGL/Three.js 的底层细节,通过简单的 JSON 配置即可生成炫酷的 3D 图表。
  2. 真 3D 体验:全场景 3D 渲染,支持 360 度自由旋转、缩放、平移,提供真实的光影、材质和空间感。
  3. 轻量与现代:完全基于 Vue 3 Composition API 和 TypeScript 构建,模块化设计,无历史包袱。

🚀 现状 (Current Status)

目前项目处于快速迭代阶段,核心引擎已经搭建完毕,并实现了一套可视化的配置系统。你可以通过 在线 Demo 实时调整参数并预览效果。

已支持的功能特性:

  • 基础图表组件
    • 📊 3D 柱状图 (Bar3D):支持多系列、不同颜色的柱体渲染。
  • 🥧 3D 饼图 (Pie3D):支持扇区挤出高度、标签展示。

* 📈 3D 折线图 (Line3D):支持管状线条渲染。

* 🌌 3D 散点图 (Scatter3D):支持三维空间的数据点分布。

  • 可视化配置系统
    • 数据源 (Data):支持静态数据配置。
    • 主题与配色 (Theme):内置多套配色方案,支持自定义默认颜色。
    • 坐标系 (Coordinate):可实时调整网格的宽度、深度、高度,以及各轴线、刻度、网格线的显示与隐藏。
    • 材质系统 (Material):这是 3D 图表的灵魂。支持实时调节透明度、粗糙度 (Roughness)、金属度 (Metalness),轻松实现玻璃、金属等质感。
    • 灯光系统 (Lighting):支持环境光和方向光的强度与位置调节,营造氛围感。
    • 交互 (Interaction):支持鼠标悬停高亮、HTML 标签 (Label) 自动跟随。

📅 待实现的任务 (Roadmap)

为了让 chart3 真正成为生产可用的图表库,后续还有很多有趣的工作要做:

  • 高级图表开发
    • 🌊 3D 曲面图 (Surface 3D):用于展示复杂的三维函数或地形数据(目前 Demo 中显示为"待开发")。
    • 🗺️ 3D 地图 (Map 3D):支持 GeoJSON 数据的三维挤出渲染。
  • 性能优化
    • 引入 InstancedMesh 技术,大幅提升大数据量(如 10w+ 散点或柱体)下的渲染性能。
  • 动画系统
    • 实现图表的入场动画(如柱子升起、饼图展开)。
    • 数据更新时的平滑过渡动画。
  • 工程化与文档
    • 完善 API 文档和使用指南。
    • 提供 NPM 包发布,方便项目集成。

🤝 结语

这个项目是我对"数据可视化 x 3D"的一次尝试。

让我们一起把数据变得更酷一点!

相关推荐
东东51627 分钟前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino31 分钟前
图片、文件的预览
前端·javascript
layman05282 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔3 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李3 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN3 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒3 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库3 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
电商API_180079052473 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
晓晓莺歌3 小时前
vue3某一个路由切换,导致所有路由页面均变成空白页
前端·vue.js