Javascript 使用canvas元素绘制圆环路径
我想用画布画一条双螺母路径。它包括与直线相连的内拱和外拱。但我得到了错误的画布图像。请看下图 期望值: 这是我的密码Javascript 使用canvas元素绘制圆环路径,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,我想用画布画一条双螺母路径。它包括与直线相连的内拱和外拱。但我得到了错误的画布图像。请看下图 期望值: 这是我的密码 this.ctx.beginPath(); this.ctx.moveTo(options.x, options.y); this.ctx.arc(options.x, options.y, options.radius, options.start, options.end, false); this.ctx.lineTo(options.x, options.y)
this.ctx.beginPath();
this.ctx.moveTo(options.x, options.y);
this.ctx.arc(options.x, options.y, options.radius, options.start, options.end, false);
this.ctx.lineTo(options.x, options.y);
this.ctx.arc(options.x, options.y, options.innerR, options.start, options.end, false);
this.ctx.closePath();
请任何人帮我解决这个问题
谢谢,
Bharathi.将“笔”移动到(options.x,options.y)并围绕该点绘制一个圆时,您的“笔”必须首先到达圆弧的起始位置。这里画了一条你不想在画布上画的线
要解决此问题,必须计算外圆的起始位置(取决于起始角度)。你应该尝试用sin或cos来计算你的“新”x和y
然后看起来就像
var newX = options.x + options.radius * cos(options.start);
var newY = options.y + options.radius * sin(options.start);
然后移到这个位置
this.ctx.moveTo(newX, newY);
然后围绕旧的x和y画一个圆圈
this.ctx.arc(options.x, options.y, options.radius, options.start, options.end, false);
对于内圈和端点位置,您可以类似于此进行计算。我已经使用css进行了计算
var gradient = ctx.createLinearGradient(0, 0, canvas.width, 0);
gradient.addColorStop(0, "#008B8B");
gradient.addColorStop(0.75, "#F5DEB3");
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, canvas.width, canvas.height);
只需删除上面代码中的最后两行,您就会看到内圈再次出现
如果您有任何问题。你也可以随便问