26 | 如何绘制带宽度的曲线?
月影
该思维导图由 AI 生成,仅供参考
你好,我是月影。
在可视化应用中,我们经常需要绘制一些带有特定宽度的曲线。比如说,在地理信息可视化中,我们会使用曲线来描绘路径,而在 3D 地球可视化中,我们会使用曲线来描述飞线、轮廓线等等。
在 Canvas2D 中,要绘制带宽度的曲线非常简单,我们直接设置上下文对象的 lineWidth 属性就行了。但在 WebGL 中,绘制带宽度的曲线是一个难点,很多开发者都在这一步被难住过。
那今天,我就来说说怎么用 Canvas2D 和 WebGL 分绘制曲线。我要特别强调一下,我们讲的曲线指广义的曲线,线段、折线和平滑曲线都包含在内。
如何用 Canvas2D 绘制带宽度的曲线?
刚才我说了,用 Canvas2D 绘制曲线非常简单。这是为什么呢?因为 Canvas2D 提供了相应的 API,能够绘制出不同宽度、具有特定连线方式和线帽形状的曲线。
这句话怎么理解呢?我们从两个关键词,“连线方式(lineJoin)”和“线帽形状(lineCap)”入手理解。
我们知道,曲线是由线段连接而成的,两个线段中间转折的部分,就是 lineJoin。如果线宽只有一个像素,那么连接处没有什么不同的形式,就是直接连接。但如果线宽超过一个像素,那么连接处的缺口,就会有不同的填充方式,而这些不同的填充方式,就对应了不同的 lineJoin。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了在Canvas2D和WebGL中绘制带宽度的曲线的方法。在Canvas2D中,通过设置lineWidth、lineJoin和lineCap属性,可以实现不同宽度、连线方式和线帽形状的曲线绘制。作者详细介绍了Canvas2D中绘制带宽度曲线的方法,并提供了相关的JavaScript代码示例。此外,还介绍了Canvas2D中的miterLimit属性对尖角的影响。在WebGL中,作者通过设置position顶点坐标和mode为gl.LINE_STRIP,展示了绘制宽度为1的曲线的方法。作者还提出了一个问题,即如何让线的宽度大于1个像素。文章通过对Canvas2D和WebGL绘制带宽度曲线的方法进行详细介绍,为读者提供了实用的技术指导。在WebGL中,作者通过挤压曲线的技术来实现带宽度的曲线,详细介绍了挤压曲线的具体步骤,包括确定挤压方向和长度,以及构建三角网格化的几何体顶点数据。最后,作者提出了一些小试牛刀的练习,鼓励读者进一步扩展和应用所学知识。整体来看,本文内容丰富,涵盖了Canvas2D和WebGL绘制带宽度曲线的方法,适合对前端绘图感兴趣的读者阅读学习。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《跟月影学可视化》,新⼈⾸单¥68
《跟月影学可视化》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- l_j_dota_1111如果数据量很大,在js中计算线经过挤压后的三角网格顶点数据,应该会很卡吧2021-06-041
收起评论