function drawSquareAndInverted([p1, p2, p3, p4], c, context) {
const cr = 1.5;
const BLACK = circleSprite('black', cr * 2);
const RED = circleSprite('red', cr * 2);
for (let x = p2[0]; x <= p1[0]; x += step) {
[p1, p3].forEach(p => {
BLACK.draw(context, x, p[1]);
RED.draw(context, ...invertOnCircle(c, [x, p[1], cr]));
});
}
for (let y = p3[1]; y <= p2[1]; y += step) {
[p3, p4].forEach(p => {
const c_i = [p[0], y, cr];
BLACK.draw(context, p[0], y);
RED.draw(context, ...invertOnCircle(c, [p[0], y, cr]));
});
}
}