Polígonos — d3-polygon¶
El módulo d3-polygon ofrece algunas operaciones que se pueden efectuar sobre polígonos de dos dimensiones. Cada polígono está representado por un array de arrays de dos elementos y pueden ser cerrados (si el primer y el último punto son el mismo) o abiertos. Típicamente, el orden de los puntos están dados en dirección a las agujas del reloj donde el origen (0, 0)
se sitúa en la esquina izquierda-arriba de la pantalla.
.. raw:: html
<script>
var puntos = [
[10, 10],
[30, 10],
[50, 40],
[45, 60],
[15, 35],
[10, 10]
];
// Definimos un polígono a partir de sus puntos ("hull" == cáscara)
var poligono = d3.polygonHull(puntos);
console.log(poligono); // [Array(2), Array(2), Array(2), Array(2), Array(2)]
// Obtenemos el área del polígono
var area = d3.polygonArea(poligono);
console.log(area); // 1087.5
// Obtenemos el perímetro del polígono
var perimetro = d3.polygonLength(poligono);
console.log(perimetro); // 141.2173868302254
// Obtenemos el centro del polígono
var centro = d3.polygonCentroid(poligono);
console.log(centro); // [30.268199233716476, 31.590038314176244]
// Comprobamos si un punto está dentro del polígono
var contiene = d3.polygonContains(poligono, (35, 10));
console.log(contiene); // false
</script>