示例可以在这里查看。
续上,这次我们添加一个小小的改进,给线条指定宽度。
我们知道,由于 ANGLE 的限制,在 Windows 平台上 gl.lineWidth()
函数并不能用。那么要画宽度不是1的线条怎么办呢?按照上次我提出的“用矩形模拟”的方法是一种思路。
修改 main()
函数,这里我们动态加入线条。
|
同时,由于我们使用矩形来模拟,也就是要画三角形,那么就要保证顶点数组的排列符合预期。这里我们选用 gl.TRIANGLES
。
为什么不选用 gl.TRIANGLE_STRIP
或者 gl.TRIANGLE_FAN
加上索引-顶点呢?嘛,这是个简单的示例而已……索引+顶点到时候很可能要用的(将顶点 6N 的数据量压成了 2N+2 啊),不过考虑到画线时的相接情况,TRIANGLE_STRIP
和 TRIANGLE_FAN
在处理上会麻烦一些。
|
顶点数组中每个顶点的格式不变,我们写一个函数生成需要的格式数组。其实就是一个简单的平面几何而已,最多不过 tan2(x) 的变换。
注意 WebGL 使用的坐标系(源自 OpenGL)和数学上的是一致的(正方向为右、上),和一般操作系统的坐标系(正方向为右、下)关系是相互为 Y 轴翻转。
|
看看示例,是三种不同粗细的线条吧?