问答详情
源自:2-4 多边形的填充和closePath

关于直接用lineTo绘制封闭图形时的缺口的问题

563a06af00017a6c05000410.jpg


请问如果绘制的时候的点,是粗线条的中点的话,为什么直接用lineTo到起点时,只有起点和终点处有缺口,下面却没有缺口呢?

提问者:cesiya23 2015-11-04 21:23

个回答

  • qq_挺问中原_0
    2015-11-12 17:41:48

    这是由canvas的样式决定的,当你lineTo回到起点时,canvas可不会认为你这条线是跟起点是连起来的,而是认为你这条线跟起点重合了,所以不会产生转角样式,简单的讲,就是断了。如果要解决这个问题,很简单:

    当你接下来是要lineTo到起点的时候,直接

    cxt.closePath();

    cxt.stroke();

    封闭路径后再执行stroke()函数,这样的话,canvas会自动把终点和起点连在一起并且创造转角样式;

    一般来说,画三角形只需要moveTo起点,lineTo第一个点,lineTo第二个点,closePath封闭路径,stroke执行划线,就可以了