主要观点:图书馆自文字发明起就努力收集人类知识,数字时代可创建符合特定标准的人类所有著作的综合收藏,影子图书馆如 Anna’s Archive 尝试可视化大量书籍。通过 ISBN 可对书籍进行编号和管理,文中介绍了 ISBN 的结构、空间填充曲线(如 Hilbert 曲线和“Bookshelf”曲线)在可视化 ISBN 空间中的应用,还讲述了生成地图瓦片、使用着色器(GLSL)进行渲染、处理文本和性能问题、添加条形码、可视化出版商范围、计算飞行路径以及项目架构等方面的内容。
关键信息:
- ISBN 是 13 位数字,前三位固定,后一位是校验和,总空间仅 20 亿个槽位。
- “Bookshelf”曲线简单易实现、易理解且视觉效果好,坐标变换简单。
- 生成地图瓦片并存储不同信息,可通过着色器进行灵活渲染和组合数据集。
- 处理文本时遇到性能问题,通过优化 HTML 元素和去除 CSS 过滤器解决。
- 每个“组”和出版商有范围,可通过随机颜色可视化,还可同时突出显示出版商范围。
- 计算飞行路径较复杂,最终得到的结果虽不完美但比原方法好。
- 项目架构包括后端(静态文件主机)、前端(ThreeJS、React、MobX)和处理脚本(JS 和 Rust)。
重要细节:
- ISBN 前缀与国际标准组织和国家相关,前缀越长可分配的书籍数量越少。
- Hilbert 曲线虽使区域更“方形”但会引入无实际数据的结构。
- 着色器可选择颜色方案、应用变换和过滤,且可直接编辑和更新。
- 文本渲染通过嵌入 HTML 到 SVG 再转换为纹理解决性能问题。
- 条形码可强化按 ISBN 排序的概念,且使用特定 TTF 字体渲染。
- 飞行路径计算复杂,最终结果虽不完美但能工作。
- 项目源代码可在https://github.com/phiresky/isbn-visualization获取。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。