三角形の辺を表す SVG 線の配列があり、最も長い線 (斜辺) に色を付けたいと考えています。とが SVG要素ab
であると仮定すると...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/