{
const margin = 50;
const size = 100 + margin * 2;
const svg = d3.create("svg").attr("width", size).attr("height", size);
svg
.append("line")
.attr("x1", margin)
.attr("y1", size - margin)
.attr("x2", aLength + margin)
.attr("y2", size - margin)
.attr("stroke", "red");
svg
.append("text")
.text("a = " + aLength)
.attr("x", aLength / 2 + margin)
.attr("y", size - margin + 10)
.attr("dominant-baseline", "hanging")
.attr("text-anchor", "middle")
.attr("font-style", "italic")
.attr("font-size", 12);
svg
.append("line")
.attr("x1", aLength + margin)
.attr("y1", size - margin)
.attr("x2", aLength + margin)
.attr("y2", size - margin - bLength)
.attr("stroke", "blue");
svg
.append("text")
.text("b = " + bLength)
.attr("dominant-baseline", "middle")
.attr("x", aLength + margin + 10)
.attr("y", size - margin - bLength / 2)
.attr("font-style", "italic")
.attr("font-size", 12);
svg
.append("line")
.attr("x1", margin)
.attr("y1", size - margin)
.attr("x2", aLength + margin)
.attr("y2", size - margin - bLength)
.attr("stroke", "green");
svg
.append("text")
.text("c = " + Math.sqrt(aLength ** 2 + bLength ** 2).toFixed(2))
.attr("text-anchor", "end")
.attr("x", aLength / 2 + margin - 10)
.attr("y", size - margin - bLength / 2 - 10)
.attr("font-style", "italic")
.attr("font-size", 12);
return svg.node();
}