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"的一次尝试。

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

相关推荐
boooooooom2 小时前
Vue3 provide/inject 跨层级通信:最佳实践与避坑指南
前端·vue.js
青莲8432 小时前
Android 动画机制完整详解
android·前端·面试
iReachers2 小时前
HTML打包APK(安卓APP)中下载功能常见问题和详细介绍
前端·javascript·html·html打包apk·网页打包app·下载功能
颜酱2 小时前
前端算法必备:双指针从入门到很熟练(快慢指针+相向指针+滑动窗口)
前端·后端·算法
lichenyang4532 小时前
从零开始:使用 Docker 部署 React 前端项目完整实战
前端
沉静的思考者2 小时前
vue优雅的适配无障碍
vue.js
明月_清风2 小时前
【开源项目推荐】Biome:让前端代码质量工具链快到飞起来
前端
愈努力俞幸运2 小时前
vue3 demo教程(Vue Devtools)
前端·javascript·vue.js
持续前行2 小时前
在 Vue3 中使用 LogicFlow 更新节点名称
前端·javascript·vue.js