function renderTriangle(config,first_time){ var lineData = [{ "x": config.x1, "y": config.y1},{ "x": config.x2, "y": config.y2}, { "x": config.x2, "y": config.y2},{ "x": config.x3, "y": config.y3}, { "x": config.x3, "y": config.y3},{ "x": config.x1, "y": config.y1}]; //This is the accessor function we talked about above var lineFunction = d3.svg.line() .x(function(d) { return d.x; }) .y(function(d) { return d.y; }) .interpolate("linear"); if(first_time){ var svg = d3.select(config.dom_element).append("svg") .style("width", config.width + config.margin.left + config.margin.right) .style("height", config.height + config.margin.top + config.margin.bottom); //The line SVG Path we draw var lineGraph = svg.append("path") .attr("d", lineFunction(lineData)) .style("fill",config.fill_color) .style("stroke",config.stroke_color) .style("stroke-width",config.stroke_width) $("#x1").val(config.x1); $("#y1").val(config.y1); $("#x2").val(config.x2); $("#y2").val(config.y2); $("#x3").val(config.x3); $("#y3").val(config.y3); $("#width").val(config.width); $("#height").val(config.height); $("#strokeColor").val(config.stroke_color); $("#strokeWidth").val(config.stroke_width); $("#fillColor").val(config.fill_color); }else{ var dom_element = d3.select("svg") .style("width", config.width + config.margin.left + config.margin.right) .style("height", config.height + config.margin.top + config.margin.bottom); dom_element.select("path") .attr("d", lineFunction(lineData)) .style("fill",config.fill_color) .style("stroke",config.stroke_color) .style("stroke-width",config.stroke_width) } }