2011-05-17 72 views
5

是否可以使用不同笔画风格在画布中绘制单个填充形状?绘制不同笔画风格的单个填充形状

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

我知道有一个不到最佳的解决方案:

  1. 是一个新的路径,得出不招三角形,填写好,然后关闭路径
  2. 开始一个新的路径,重绘第一面与所述第一着色行程,关闭路径
  3. 开始一个新的路径,具有不同颜色的行程重绘第二侧,关闭路径
  4. 开始一个新的路径,具有不同颜色的行程重绘第三侧,关闭路径

总之,绘制一个没有笔画的实体形状,然后用独特的笔画风格重绘每一面。

这对单个三角形来说不是什么大问题,但是如果你有很多更复杂的形状,这看起来效率不高。

所以 - 是否有可能沿路径的各个部分绘制具有不同笔画风格的单个形状?

回答

4

简短的回答是否定的,不是以内置的方式。原因是因为每次新呼叫stroke()它都会触发整个路径,而不仅仅是尚未被触动的部分。

你总是可以创建自己的函数,比如说,接受一堆点或类型的段(你必须让你自己的类)给每一种颜色,然后让这个函数解析它们,然后做画画。但这就像你会得到的那样。

您很快就会意识到,这会带来新的令人兴奋的问题,例如如何解决问题。如果你不知道斜接是什么,你会发现这样做真正的快速这:)

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

+0

来缓解你(或其他人)确定没有任何办法吗?真的很伤心,我想绘制一条曲线,但沿着路径以不同的颜色显示。像你说的那样开一条新路径说afaik会打破试图。 – 2013-04-13 23:09:10

+0

好吧,有一种方法可以做你想做的,用裁剪区域上的路径做着色 – 2013-04-14 02:17:34

+0

其实,你能给我一张你想要的图片吗? – 2013-04-14 02:18:04