canvas画圆时遇到问题

canvas画圆时遇到问题


canvaslock.prototype.drawCle = function (x, y) {
   this.ctx.fillStyle="#0ff";
   // this.ctx.beginPath();  如图我去掉beginPath()后出现了下面的现象,我知道beginPath() 方法开始一条路径,或重置当前的路径。如果不加,内存中会存留以前的路径,导致多次绘画。但多次绘画也是画圆啊,怎末会出现多边形
   this.ctx.arc(x, y, this.r, 0, Math.PI * 2, true);
   this.ctx.fill();
};


http://img1.sycdn.imooc.com//climg/5a54cd4300015dbe04180402.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你好,粘贴全部代码,是指html\css\js,为了更好测试代码,因为出现问题有能上下关联代码问题。针对你的代码与截图综合考虑,关于beginPath();的理解基本正确,可见beginPath();的重要性,开始一条路径,图形之间如没有该语句,会以“上一次beginPath”之后的所有路径为基础进行绘制,所以出现所有图形都连起来,无论直接绘制,还是用JS绘制,每个形状都要有beginPath(),fill(),以避免出现异常,参考如下:

var canvas=document.getElementById('canvas'), 
ctx=canvas.getContext("2d");
 ctx.fillStyle = "#0ff";
  ctx.beginPath(); 
  ctx.arc(64, 64, 20, 0, 2 * Math.PI); 
  ctx.fill();
  ctx.beginPath(); 
  ctx.arc(150, 64,20 , 0, 2 * Math.PI);
  ctx.fill(); 
  ctx.beginPath(); 
  ctx.arc(235, 64,20 , 0, 2 * Math.PI);
  ctx.fill(); 
  ctx.beginPath(); 
  ctx.arc(64, 150, 20, 0, 2 * Math.PI);
  ctx.fill();

希望帮你解答疑惑,加油!

一路电光带火花 2018-01-11 20:58:46

这是全部代码吗?你一下把全部代码粘过来呗,比较好测试。

  • 提问者 慕粉1902362591 #1
    var canvas=document.getElementById('canvas'), ctx=canvas.getContext("2d"); ctx.fillStyle = "#0ff"; ctx.arc(64, 64, 20, 0, 2 * Math.PI); ctx.arc(150, 64,20 , 0, 2 * Math.PI); ctx.arc(235, 64,20 , 0, 2 * Math.PI); ctx.arc(64, 150, 20, 0, 2 * Math.PI); ctx.fill();
    2018-01-13 22:47:41
小丸子爱吃菜 2018-01-10 09:57:52

请粘贴你全部的代码,我们需要运行并调试问题。

祝学习愉快!

  • 提问者 慕粉1902362591 #1
    var canvas=document.getElementById('canvas'), ctx=canvas.getContext("2d"); ctx.fillStyle = "#0ff"; ctx.arc(64, 64, 20, 0, 2 * Math.PI); ctx.arc(150, 64,20 , 0, 2 * Math.PI); ctx.arc(235, 64,20 , 0, 2 * Math.PI); ctx.arc(64, 150, 20, 0, 2 * Math.PI); ctx.fill();
    2018-01-11 19:55:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5&CSS3进阶与常用框架 2018
  • 参与学习       315    人
  • 提交作业       136    份
  • 解答问题       626    个

如果你有H5、CSS3、JS基础,热爱前端并希望在前端应用方面不断进步,那就来吧,本路径为你带来的课程有HTML5进阶、CSS3进阶、JS面向对象、jQ基础、Less等,助你进一步提升前端开发技能

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师