Я хотел бы создать поле, отображающее NxN
квадратов. (в этом примере отображаются 2x2 красных квадрата) в центре холста. Поле, в котором расположены квадраты, должно быть горизонтально и вертикально центрировано на холсте. (Также точно после изменения rowCount)
Кроме того, fieldSize объявляет размер вычисляемой области, в которой выровнены красные квадраты. Изменение коэффициента изменит поля Size. ( 1 == Размер холста, 0,5 = 1/2 Размер холста )
Мой вопрос:
В приведенном ниже примере (трудно увидеть) красные прямоугольники не центрированы, но я бы хотел, чтобы они были. Посмотрите на это изображение:
![image](https://i.stack.imgur.com/s5rLe.png)
let canvas = document.getElementById("canvas")
/* edit these values */
let rowCount = 2
let fieldSize = canvas.width * 0.8
/********************/
let ctx = canvas.getContext("2d")
for (let y = 0; y < rowCount; y++) {
for (let x = 0; x < rowCount; x++) {
let squareSize = (fieldSize / rowCount) * 0.7
let positionX = (fieldSize / rowCount) * (x) + (canvas.width - fieldSize) * 0.5
let positionY = (fieldSize / rowCount) * (y) + (canvas.width - fieldSize) * 0.5
ctx.rect(positionX, positionY, squareSize, squareSize);
ctx.fillStyle = "red"
ctx.fill()
}
}
<canvas style="background: green" id="canvas" width="300" height="300" id="codeCanvas"></canvas>