摘要:2013.08.28更新:此次更新是修复上一次更新的遗留问题,即"有返回值的函数无法得到正确的返回值",比如getImageData,isPointInPath等,这个问题是因为为了实现链式语法,函数会总是返回this.其实要修复这个问题是很简单的,就是判断函数执行后是否有返回值,有的话就返回这个返回值,没有就继续返回this(大多数情况下都没有).不过由于这个判断的原因,可能会对整体效率有那么一点点的影响;另外,在使用有返回值的函数后,后续就不能继续链式语法了.另外我把原来的用来放函数名的数组变成了一个字符串,因为这样可以少写很多引号.var XtendCanvas =
阅读全文
摘要:上一篇文章讲了canvas的arc方法,这一篇讲和他有关的arcTo方法。arc与arcTo,从名字都能看出来相似。arcTo也是画曲线的方法,而且他画出的曲线也是正圆的一段弧线。但他的参数和arc简直是不共戴天~ctx.arcTo(x1,y1,x2,y2,radius);arcTo的参数中包括两个点,而且这两个点中并没有表示圆心的点,仅仅最后的参数是圆的半径,表示arcTo和圆有那么点关系。网上关于arcTo的文章很少,好不容易找到一篇还是外国的;而且canvas画图木有直观工具,只能靠猜,arcTo害我猜了半天。。为了直观的描述,我采取了一种辅助办法:arcTo画到哪里,我就用lineTo
阅读全文
摘要:在canvas画线条这篇文章中,我讲了画直线的方法,按理这篇画曲线的文章早该发了,但由于canvas画曲线比较特殊,我还没摸透,所以要一步步尝试。canvas里画曲线的难点之一,就在于他连曲线的函数就有4个!分别是arc,arcTo,quadraticCurveTo,bezierCurveTo.我从最简单的arc方法讲起吧。arc的作用是画一个正规的圆弧,可以是一个完整的圆,也可以是一个圆的某一段弧线。arc的语法如下:context.arc(x, y, radius, startAngle, endAngle, anticlockwise)他的参数我解释一下,即arc(圆心x,圆心y,半径,
阅读全文