这是来自https://observablehq.com/@d3/non-contiguous-cartogram的片段,它控制状态形状的转换。
function transform(d, year) {
const [x, y] = path.centroid(d);
return `
translate(${x},${y})
scale(${Math.sqrt(data.get(d.id)[year])})
translate(${-x},${-y})
`;
}
既然x
和y
是常数,不应该translate(${x},${y})
和translate(${-x},${-y})
抵消吗?
此外,为什么这种机制将质心固定在其旧位置?