2015-11-16 5 views
3

Я разбиваю голову с помощью D3 для создания trapezoid с использованием SVG.Area. Может кто-нибудь сказать мне, можно ли достичь этого, если да, пожалуйста, кратко меня, как я могу видеть только 3 оценщикам x,y1 and y0 .Я не знаю, как я могу установить различное значение xСоздайте трапецию с помощью d3 svg.area

enter image description here

ответ

3

Вместо d3.svg.area , вы должны использовать svg:polygon или d3.svg.line в сочетании с командой closepath, чтобы нарисовать трапеции.

Вот краткий пример того, как я бы это сделать:

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script data-require="[email protected]" data-semver="3.5.3" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<body> 
 
    <script> 
 
    var svg = d3.select('body') 
 
     .append('svg') 
 
     .attr('width', 500) 
 
     .attr('height', 500); 
 
     
 
    var line = d3.svg.line() 
 
     .x(function(d) { 
 
     return d.x; 
 
     }) 
 
     .y(function(d) { 
 
     return d.y; 
 
     }); 
 
    var points = [{ 
 
     x: 100, y: 100 
 
     },{ 
 
     x: 400, y: 100 
 
     },{ 
 
     x: 375, y: 150 
 
     },{ 
 
     x: 125, y: 150 
 
     }]; 
 
     
 
    svg.append('path') 
 
     .attr("d", line(points) + 'Z') 
 
     .style("fill", "orange") 
 
     .style("stroke", "black"); 
 
     
 
    </script> 
 
</body> 
 

 
</html>

Смежные вопросы