SuperAPI AI 工具集

ga-visualization

设计与创作

查看项目

更新于 10-19 01:07

技能介绍

ga-visualization 是一个用于将几何代数元素渲染为交互式 SVG 或 WebGL 图形的技能,版本 1.0.0。其核心是 ganja.js 提供的 graph() 函数,它根据输入自动判断渲染模式。

主要能力

一维函数会渲染为 Canvas 折线图,例如 Algebra(0).graph(x => Math.sin(x * 5)) 绘制正弦波。二维函数渲染为 Canvas 热力图,例如 Algebra(0).graph((x, y) => x * x + y * y) 绘制径向渐变。PGA2D 元素渲染为 SVG 点与线,可传入颜色、带标签的点、由 Vee 积得到的直线以及线段数组,并支持坐标网格。PGA3D 元素渲染为 WebGL 三维场景,支持通过 camera 选项设置相机。CGA 元素渲染为圆、球等共形几何对象,支持 OPNS/IPNS 表达。

交互与动画

二维 PGA 中的点可以设为可拖拽,当点移动时依赖它的线会动态更新,示例中通过 animate: true 启用。动画模式下 lambda 表达式每帧重新求值,例如用 Date.now() 驱动 rotor 旋转。

图形选项

可配置选项包括:grid(显示坐标网格)、animate(逐帧重渲染)、gl(强制 WebGL 模式)、conformal(CGA 渲染模式)、camera(初始相机位置,类型为 motor)、width、height(画布尺寸)、lineWidth(线宽)、pointRadius(点大小)、alpha(启用透明度)。

颜色编码

可将 GF(3) 三值映射为颜色用于视觉调试:-1 为红色、0 为绿色、+1 为蓝色,通过 colorByTrit 函数对元素着色后传入 graph()。

SVG 元素样式

资料给出了点、选中点、线、选中线的 CSS 类与样式,例如 .pointBase 的填充为 #fff,.lineBase 的描边为 white,.lineSel 的 stroke-width 为 0.3。

WebGL 渲染管线

渲染流程为:元素 → 投影到三维 → 构建网格 → 顶点着色器 → 片段着色器 → 画布。对于由零向量定义的隐式曲面,采用球体追踪(Sphere Tracing)。

与 Gay.jl 配色集成

资料提供了一个 Julia 函数示例,使用 Gay 模块按种子生成颜色,并将颜色与元素导出为 ganja.js 的 graph() 调用格式。

使用方式

资料给出的命令包括:用 npx serve node_modules/ganja.js/examples 启动示例服务器;用浏览器打开 coffeeshop 页面中的特定示例;以及通过 node -e 在命令行生成 SVG 并输出 outerHTML。

文件与参考

相关文件包括渲染器 lib/ga_renderer.js、颜色映射 lib/gf3_colors.js 和示例 examples/visualization_gallery.html。参考资料为 ganja.js coffeeshop、ganja.js graph() 源码和 bivector.net 教程。

限制

资料未说明该技能的安装方式、收费模式、平台支持范围、性能上限或兼容性要求,这些事实暂未提供。