0

我想在创建节点之前计算并显示绘制路径的长度。其背后的想法是让用户在创建之前查看每个路径段的长度,以便知道将节点准确放置在哪里。

我一直在使用 gettotallength 方法,但这会在单击节点后计算路径的长度,使用户只能查看他已经创建的路径的长度。

我正在使用 jQuery。

干杯!

4

2 回答 2

0

如果它是从最后绘制点到鼠标点的线,则使用基本数学 = SQRT((x1-x2)^2 + (y1-y2)^2)

唯一的技巧是将屏幕坐标转换为用户坐标。这是我使用的一个功能非常好(到目前为止)......

function getMousePos(evt) 
{
    var svgPoint = document.documentElement.createSVGPoint();

    evt = evt || window.event;

    if (typeof evt.pageX != 'undefined') // Firefox
    {
      svgPoint.x = evt.pageX;
      svgPoint.y = evt.pageY;
    }
    else // IE et al
    {
      svgPoint.x = document.body.scrollLeft || document.documentElement.scrollLeft || window.pageXOffset || 0;
      svgPoint.y = document.body.scrollTop || document.documentElement.scrollTop || window.pageYOffset || 0;
    }

    return svgPoint.matrixTransform(document.documentElement.getScreenCTM().inverse());
};
于 2013-01-28T19:58:05.073 回答
0

只需使元素 visibility="hidden" 或 opacity="0" 使其不可见。如果您想知道最后一段的长度,请测量整个路径,然后测量没有最后一段的路径的不可见副本并减去。

于 2013-01-27T20:34:49.200 回答