canvas教程

canvas中arcTo的画弧原理?

字号+ 作者:H5之家 来源:H5之家 2017-01-24 18:02 我要评论( )

相信每一个熟悉html5的猿猿都知道,canvas是html5提供的一个强大的绘图工具,今天同事突然跟我聊起canvas中的arcTo方法,决定来记录一下这其中原理。 网上关于c

        相信每一个熟悉html5的猿猿都知道,canvas是html5提供的一个强大的绘图工具,今天同事突然跟我聊起canvas中的arcTo方法,决定来记录一下这其中原理。

        网上关于canvas该方法的相关资料很少,刚接触这个方法时,我也摸索了很久。arcTo这个方法其实就是画曲线的,并且画出的曲线也是圆的一段弧,这一点跟另一个arc方法一样,但是它的参数跟arc却相差很大。

        ctx.arcTo(x1,y1,x2,y2,radius);该方法参数中包括两个点,如果你觉得这两个点跟圆有关的画,那就错了,这些参数中仅仅最后一个参数是圆的半径,下面的是我的代码:

        代码看起来很多,其实第30行之后的部分才是画弧的实现,前面代码是为了方便描述用路径追踪了弧线相关的几个坐标点:起点,第一个点,第二个点,下面是运行结果:

 

 

        蓝色直线是追踪路径,黑色部分才是弧线,这样就看得很直观了,其实是通过起点、第一个点,第二个点的两条直线,组成的三角区域(夹角),这两条直线也是圆的切线,而半径决定了圆弧的位置,半径越小越靠近夹角,半径越大越远离。下面是将半径由50改为80后的运行结果:

 

 

    继续改参数,下面缩短起点与第一个点的距离,代码如下:

 

 

        这会现象就比较惊人了,看效果:

 

        这个圆依然是和两条线相切的,但是切线被掰倒了反方向,arcTo方法中有个很重要的点,这个重要的点就是代码31行中的起点,只要它到圆的切点的距离,小于它到第一个点的距离,就会发生反转,因为此时切线满足不了这个圆了,而第二个点坐标可以无限变化,所以在使用时,注意第一个点与起点的设置,这是关键。

如有不当之处,欢迎指正!

技术交流,干货分享,欢迎关注个人微信公众号:CodingInfo

爱编程-编程爱好者经验分享平台

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
e