是否可以在 Canvas 上绘制具有不同笔触样式的单个填充形状?

换句话说,我可以画一个蓝色的三角形,并且让每一边都有不同的颜色吗?

我意识到有一个并非最优的解决方案:

  • 是新路径,绘制没有笔触的三角形,填充它,然后关闭路径
  • 开始新路径,用第一个有色笔画重画第一面,关闭路径
  • 开始新的路径,用不同颜色的笔触重画第二面,关闭路径
  • 开始新的路径,用不同颜色的笔触重画第三面,关闭路径

  • 简而言之,绘制没有笔触的填充形状,然后以独特的笔触样式重绘每侧。

    对于单个三角形来说,这并不是什么大问题,但是如果您有许多更复杂的形状,这似乎效率很低。

    那么-是否可以沿着路径的各个部分绘制具有不同笔触样式的单个形状?

    最佳答案

    简短的答案是“不”,无论如何不是内置的。原因是因为每次调用stroke()时,它都会遍历整个路径,而不仅是尚未被描边的部分。

    您总是可以创建自己的函数,例如,使用一堆点或类型的段(您必须创建自己的类)为每种颜色赋予颜色,然后让该函数解析它们并绘制图形。但这就是您的最佳选择。

    您很快就会意识到这带来了新的令人兴奋的问题,例如如何进行斜接。而且,如果您不知道什么是斜接,则可以通过以下方法快速找到真正的方法:)

    (...然后可以通过使用ctx.linecap = 'round'缓解某些问题

    关于html - 绘制具有不同笔触样式的单个填充形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6034293/

    10-11 23:35