【问题标题】:Getting a canvas-context's last point's coordinates获取画布上下文的最后一个点的坐标
【发布时间】:2011-07-06 02:03:51
【问题描述】:

我想用CanvasRenderingContext2D.prototype 创建一个arrowTo 函数。为此,我需要获取最后一点的坐标,例如

//... 
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)

//...

我怎样才能找回它们?

【问题讨论】:

标签: javascript html canvas html5-canvas


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这是画布已存储在某处的属性,它应该可以从属性中获得(很可能),因为跟踪最后一个点的坐标可能很困难。
    例如当你画一个圆弧时

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

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

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

    但是当我们知道画布确实记得最后一点时,需要包含这些计算是令人恼火的。
    如果在 arc 指令之后添加一个

    ctx.lineTo(x, y);  
    

    它确实有效。因此画布将最后一点存储在某个地方,我不明白为什么它对程序员隐藏。

    【讨论】:

    • 这不回答问题。相反,这只是描述问题... :(
    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 2011-08-31
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多