关于 beginPath 的几个问题,求大神解答。

来源:2-3 线条组成的图形和beginPath

刘小骏

2016-10-05 13:08

问题一:既然 moveTo( ) 可以被 beginPath( ) 代替,那么 moveTo( ) 存在的意义何在?

问题二:例子中可以把 lineWidth 写在代码的最上端,而程序仍然正常执行,那么意味着每次 Canvas 在执行 stroke( ) 函数的时候,都要遍历当前程序块内的全部代码,即便找到了距离最近的  beginPath( ) ,仍然会遍历,这样会不会给计算机造成很大符合(假设绘制一个十分复杂的图形的时候,而且会不断刷新产生动画)?

写回答 关注

2回答

  • GK_poter
    2016-10-05 13:44:12
    已采纳

    moveTo是将笔尖发在某处,类似于arcTo函数就需要一个开始的地方,而beginpath不能代替moveto。

    canvas是基于状态绘图,也就是说之后会找到最近的beginpath,但之前的转态不会因此失效

    刘小骏

    喔,可能是我还没有看到那么深入。那第二个问题,你说的意思我明白了,就是程序顺序执行,画布上就有一支笔,已经记录了绘制属性,那我还是不懂为啥 canvas 的绘图方式叫做基于状态,“状态”这个概念应该怎么理解呢?

    2016-10-05 16:54:51

    共 1 条回复 >

  • qq_星风幻灭_0
    2016-10-07 12:26:24

    主要是现在这里只学到beginPath,等到后面讲了closePath就能够更好的理解状态了,在一个beginPath和closePath之间可以保存当前里面的颜色,宽度等等样式。

Canvas绘图详解

Canvas系列教程第二课,详解Canvas各接口,让同学彻底掌握Canvas绘图

72881 学习 · 422 问题

查看课程

相似问题