获取画布上下文的最后一个点的坐标

时间:2011-02-28 21:23:42

标签: javascript html5 canvas html5-canvas

我想用CanvasRenderingContext2D.prototype创建一个arrowTo函数。要做到这一点,我需要得到最后一点的坐标。 e.g。

//... 
var ctx = someCanvas.getContext('2d');

ctx.moveTo(10,40);
//the coordinates of the last point are now (10,40)

ctx.lineTo(50,50);
//and now it's (50,50)

//...

如何检索它们?

2 个答案:

答案 0 :(得分:5)

你必须自己跟踪它们。或者做不可想象的事情并覆盖moveTo / lineTo以通过CanvasRenderingContext2D.prototype跟踪最后的坐标。

答案 1 :(得分:3)

这是一个已存储在某个位置的属性,应该从属性中使用它(可能),因为可能很难跟踪最后一点的坐标。
例如,当您绘制圆弧

ctx.arc(xc, yc, radius, starting_angle, ending_angle); 

您没有最新的点坐标信息。
当然,在这种情况下,可以使用

lastX = xc + radius*Math.cos(ending_angle);
lastY = yc + radius*Math.sin(ending_angle);   

但是当我们知道画布确实记住了最后一点时,需要包括这些计算很烦人。
如果在弧指令之后添加

ctx.lineTo(x, y);  

它确实起作用。因此canvas的最后一点存储在某个地方,我不明白为什么它对程序员隐藏了。