我有一组代表三角形边的 SVG 线,我想为最长的一条(斜边)着色。假设ab
和是 SVG元素bc
...ca
line
var hypotenuse = [ab, bc, ca].sort(getLineLength)[0];
hypotenuse.setAttribute("stroke-width", 5);
function getLineLength(el) {
var x1 = el.getAttribute("x1");
var x2 = el.getAttribute("x2");
var y1 = el.getAttribute("y1");
var y2 = el.getAttribute("y2");
var xs = x2 - x1;
var ys = y2 - y1;
xs = xs * xs;
ys = ys * ys;
return Math.sqrt(xs + ys);
}
这不起作用,它似乎总是抓住第一个元素。它看起来也不是很直观。在Javascript中实现这一目标的正确方法是什么?我知道如何在循环中做到这一点,但我想知道是否有一些功能性习语可以让我实现这一点。
JSFiddle 在这里:http: //jsfiddle.net/btbkd/