【发布时间】:2016-05-01 13:01:15
【问题描述】:
我一直在使用 2 个画布在彼此之上构建一个具有 2 种颜色的圆圈(以显示进度)
为了简化填充弧所需百分比的计算,我想将它的起始位置移动到 1.5PI,但让它表现得像 0PI
我认为这样可以解决问题:
context.rotate(Math.PI * 1.5 ) 我想偏移 1.5PI 或 240 度。
这不起作用,给了我一个奇怪的结果。
// Filler
var canvas = document.getElementById('canvas_<?php echo $champions_['champion_id'];?>');
var context = canvas.getContext('2d');
context.rotate(1.5*Math.PI )
var x = canvas.width / 2;
var y = canvas.height / 2;
var endAngle = 1.5 * Math.PI;
context.beginPath();
context.arc(x, y, 75, 0,<?php echo $percentage*2;?> * Math.PI, false);
context.lineWidth = 15;
// line color
context.strokeStyle = '<?php echo $second_colour;?>';
context.stroke();
//Base
var canvas = document.getElementById('canvas_main_<?php echo $champions_['champion_id'];?>');
var context = canvas.getContext('2d');
context.beginPath();
context.arc((canvas.width / 2), (canvas.height / 2), 75, 2 * Math.PI, false);
context.lineWidth = 15;
// line color
context.strokeStyle = '<?php echo $base_colour;?>';
context.stroke();
【问题讨论】:
-
你知道
ctx.arc(x,y,radius, startAngle, endAngle)的第四个和第五个参数是开始和结束角度吗?做ctx.arc(x,y,radius, Math.PI*1.5, val+Math.PI*1.5);不是更容易吗? -
没想到,谢谢!
标签: javascript canvas