function midpoint({ x1, x2, y1, y2, ...options } = {}) {
const [X, setX] = Plot.column(x2);
const [Y, setY] = Plot.column(y2);
return Plot.transform({ x: X, y: Y, ...options }, function (data, facets) {
const X1 = Plot.valueof(data, x1);
const X2 = Plot.valueof(data, x2);
const Y1 = Plot.valueof(data, y1);
const Y2 = Plot.valueof(data, y2);
setX(Float64Array.from(data, (d, i) => (X1[i] + X2[i]) / 2));
setY(Float64Array.from(data, (d, i) => (Y1[i] + Y2[i]) / 2));
return { data, facets };
});
}