在画布上旋转箭头

时间:2010-09-28 09:36:44

标签: javascript html5 canvas

我想将箭头旋转到任何给定的角度。我需要添加/修改,以便它可以旋转到任何角度。目前它的180度。

function drawArrowAtAngle(cx,cy,angle,context){
  context.save();
  context.beginPath();
  context.lineWidth = 1;
  context.strokeStyle = '#aaa';
  context.moveTo(cx+25,cx-2);
  context.lineTo(cx-55,cx-2);
  context.lineTo(cx-58,cx);
  context.lineTo(cx-55,cx+2);
  context.lineTo(cx+25,cx+2);
  context.lineTo(cx+25,cx-2);  
  context.stroke();
  context.closePath();
  context.restore();

 }

1 个答案:

答案 0 :(得分:3)

假设您希望旋转中心为(cx,cx),请在context.save();语句后插入以下三行。

  context.translate(cx,cx) ;
  context.rotate(angle) ;
  context.translate(-cx,-cx) ;

这将使箭头顺时针旋转angle(弧度)。

您在代码中使用(cx,cx)来锚定箭头。如果你的意思是(cx,cy),那么请相应地调整上面的代码段。