# SUMMARY * [简介](./README.md) * [开篇词 | 不写网页的前端工程师,还能干什么?](./docs/252088.md) * [预习 | Web前端与可视化到底有什么区别?](./docs/252090.md) * [01 | 浏览器中实现可视化的四种方式](./docs/252076.md) * [02 | 指令式绘图系统:如何用Canvas绘制层次关系图?](./docs/252705.md) * [03 | 声明式图形系统:如何用SVG图形元素绘制可视化图表?](./docs/252710.md) * [04 | GPU与渲染管线:如何用WebGL绘制最简单的几何图形?](./docs/254631.md) * [05 | 如何用向量和坐标系描述点和线段?](./docs/255584.md) * [06 | 可视化中你必须要掌握的向量乘法知识](./docs/256827.md) * [07 | 如何用向量和参数方程描述曲线?](./docs/257051.md) * [08 | 如何利用三角剖分和向量操作描述并处理多边形?](./docs/258101.md) * [09 | 如何用仿射变换对几何图形进行坐标变换?](./docs/259264.md) * [10 | 图形系统如何表示颜色?](./docs/260922.md) * [11|图案生成:如何生成重复图案、分形图案以及随机效果?](./docs/262330.md) * [12 | 如何使用滤镜函数实现美颜效果?](./docs/263455.md) * [13 | 如何给简单的图案添加纹理和复杂滤镜?](./docs/264199.md) * [14 | 如何使用片元着色器进行几何造型?](./docs/265376.md) * [15 | 如何用极坐标系绘制有趣图案?](./docs/266346.md) * [16 | 如何使用噪声生成复杂的纹理?](./docs/267016.md) * [17 | 如何使用后期处理通道增强图像效果?](./docs/267863.md) * [18 | 如何生成简单动画让图形动起来?](./docs/268865.md) * [19 | 如何用着色器实现像素动画?](./docs/269494.md) * [20 | 如何用WebGL绘制3D物体?](./docs/270356.md) * [21 | 如何添加相机,用透视原理对物体进行投影?](./docs/271225.md) * [22 | 如何用仿射变换来移动和旋转3D物体?](./docs/271842.md) * [23 | 如何模拟光照让3D场景更逼真?(上)](./docs/273007.md) * [24 | 如何模拟光照让3D场景更逼真?(下)](./docs/274341.md) * [25 | 如何用法线贴图模拟真实物体表面](./docs/274956.md) * [26 | 如何绘制带宽度的曲线?](./docs/275838.md) * [27 | 案例:如何实现简单的3D可视化图表?](./docs/277226.md) * [28 | Canvas、SVG与WebGL在性能上的优势与劣势](./docs/277717.md) * [29 | 怎么给Canvas绘制加速?](./docs/279075.md) * [30|怎么给WebGL绘制加速?](./docs/280287.md) * [31 | 针对海量数据,如何优化性能?](./docs/283666.md) * [32 | 数据之美:如何选择合适的方法对数据进行可视化处理?](./docs/284595.md) * [33 | 数据处理(一):可视化数据处理的一般方法是什么?](./docs/285581.md) * [34 | 数据处理(二):如何处理多元变量?](./docs/286380.md) * [35| 设计(一):如何让可视化设计更加清晰?](./docs/288323.md) * [36 | 设计(二):如何理解可视化设计原则?](./docs/289560.md) * [37 | 实战(一):如何使用图表库绘制常用数据图表?](./docs/290387.md) * [38 | 实战(二):如何使用数据驱动框架绘制常用数据图表?](./docs/291822.md) * [39 | 实战(三):如何实现地理信息的可视化?](./docs/292607.md) * [40| 实战(四):如何实现3D地球可视化(上)?](./docs/294332.md) * [41 | 实战(五):如何实现3D地球可视化(下)?](./docs/294944.md) * [42 | 如何整理出我们自己的可视化工具集?](./docs/296035.md) * [国庆策划 | 假期别闲着,一起来挑战“手势密码”](./docs/293197.md) * [国庆策划 | 快来看看怎么用原生JavaScript实现手势解锁组件](./docs/293376.md) * [加餐1 | 作为一名程序员,数学到底要多好?](./docs/260319.md) * [加餐2 | SpriteJS:我是如何设计一个可视化图形渲染引擎的?](./docs/280669.md) * [用户故事 | 非前端开发,我为什么要学可视化?](./docs/281807.md) * [加餐3 | 轻松一刻:我想和你聊聊前端的未来](./docs/282902.md) * [加餐4 | 一篇文章,带你快速理解函数式编程](./docs/287296.md) * [加餐5|周爱民:我想和你分享些学习的道理](./docs/293016.md) * [结束语 | 可视化工程师的未来之路](./docs/296552.md) * [有奖征集倒计时4天!你填写毕业问卷了吗?](./docs/306770.md)