摘要: 在canvas中可以很方便的用arc方法画出圆形,本来圆形也可以看作是一个宽高相等的椭圆,但canvas中根本没有画椭圆的方法,我们要用其他方法来模拟。我们首先要明确画一个椭圆需要那些参数,基本的几何知识告诉我们,椭圆需要圆心坐标,宽度,高度——或者还有旋转角度,不过这个可以暂时不要,旋转是比较容易... 阅读全文
posted @ 2014-12-08 16:15 赤骥绝地 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章我讲了画矩形和圆形的方法,他们都有原生的canvas绘图函数可完成。而本文讲的圆角矩形则只有通过其他方法模拟出来。一个正常的圆角矩形,我们先假设他四个角的圆角弧度一致——因为这样比较好画。我们动用把面拆成线条的能力,很容易就能发现圆角矩形其实是由4条钩子般的曲线组成。提到钩子,如果你看过我... 阅读全文
posted @ 2014-12-08 16:13 赤骥绝地 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 本文讲一下在canvas中画出矩形和圆形的办法,他们属于基础图形。当然,基础图形本来不止他们,但在canvas中,只有画矩形与圆形不需要用其他方法模拟。canvas画矩形1,fillRect与strokeRectfillRect可以直接填充出一个矩形,填充样式是你当前设置的样式;同理strokeRe... 阅读全文
posted @ 2014-12-08 16:11 赤骥绝地 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 前面的文章我已经讲了3种在canvas中画曲线的方法:arc,arcTo以及quadraticCurveTo.他们都有一个共同点,就是他们画的曲线都只能偏向一边,今天讲的bezierCurveTo与他们最大的不同点就是有两个控制点,即可以画出S形的曲线了。bezierCurveTo,也就是所谓的贝赛... 阅读全文
posted @ 2014-12-08 16:10 赤骥绝地 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 继续讲canvas中画曲线的方法,今天讲quadraticCurveTo。说实话这个方法有点吓人,单从函数名称上都可以初体验。话说,我觉得有必要把这个函数名缩短。quadratic的意思是二次,即数学中二次元方程那个二次。而ctx.quadraticCurveTo的参数如下:代码如下:ctx.qua... 阅读全文
posted @ 2014-12-08 16:05 赤骥绝地 阅读(236) 评论(0) 推荐(0) 编辑
摘要: arc与arcTo,从名字都能看出来相似。arcTo也是画曲线的方法,而且他画出的曲线也是正圆的一段弧线。但他的参数和arc简直是不共戴天~ctx.arcTo(x1,y1,x2,y2,radius);arcTo的参数中包括两个点,而且这两个点中并没有表示圆心的点,仅仅最后的参数是圆的半径,表示arc... 阅读全文
posted @ 2014-12-08 16:04 赤骥绝地 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 在canvas画线条这篇文章中,我讲了画直线的方法,按理这篇画曲线的文章早该发了,但由于canvas画曲线比较特殊,我还没摸透,所以要一步步尝试。canvas里画曲线的难点之一,就在于他连曲线的函数就有4个!分别是arc,arcTo,quadraticCurveTo,bezierCurveTo.我从... 阅读全文
posted @ 2014-12-08 16:00 赤骥绝地 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 一般绘图的方式有两种,即填充和描边,前面的文章已经讲了描边的方法stroke,本文就讲一下Canvas中填充图形的方法。填充即fill(),很直白吧?而且和strokeStyle表示描边样式一样,fillStyle即表示填充样式。ctx.fillStyle = '颜色';默认的填充样式是不透明的黑色... 阅读全文
posted @ 2014-12-08 15:58 赤骥绝地 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 上次我们讲到,canvas有时候会出现1像素的线条模糊不清且好像更宽的情况,如下图:这样的线条显然不是我们想要的。这篇文章的目的就是弄清楚里面的原理,以及解决它。大家都知道屏幕上最小的显示尺寸就是1像素,虽然小于1像素的东西可能显示不出来,但计算机可不管,他会试着画一下。其实像素终究来说也是一个单位... 阅读全文
posted @ 2014-12-08 15:55 赤骥绝地 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形。在Canvas中也是如此。在开始之前我们先拿出画布和画笔:代码如下:var cvs = document.getElementById('cvs'); //画布 var ctx = cvs.getContext('2d'); // 画笔... 阅读全文
posted @ 2014-12-08 15:53 赤骥绝地 阅读(834) 评论(0) 推荐(0) 编辑

友情链接:

梦想天空