Методы рисования контекста Canvas запрашивают у нас некоторые координаты и длины в их методах.Например, x
, y
, width
, height
метода fillRect(x y, width, height)
.
Все эти значения не имеют единиц измерения, поэтому давайте назовем это magical-unit.
Поскольку холст является растровым изображением, было решено, что сначала каждая магическая единица представляет один пиксель этого растрового изображения.Когда мы устанавливаем холст width
или height
, мы просто меняем количество пикселей, которое может содержать холст.
Итак, из этого мы можем построить красивую магическую единицу сетки canvas.width * canvas.height * 1.
В этом случае при передаче (10, 10)
в качестве аргументов методу, ожидающему координаты в магические единицы , указатель будет перемещен впиксели с координатами 10, 10
.
Теперь есть некоторые методы, например scale()
, но также translate()
, transform()
и т. д., которые изменят нашу магическую единицу-сетку .Например,
translate(5, 10)
переместит нашу сетку магических единиц на 5 магических единиц по горизонтали и 10 по вертикали.Так что теперь координаты (10,10)
будут фактически указывать на пиксели с координатами 15, 20
(10 + 5, 10 + 10).
А после вызова scale(2, 2)
одна магическая единица теперь будет равна двум пикселям на холсте.Итак, если мы передадим (10, 10)
тому же методу, что и выше, наш указатель фактически переместится на пиксели с координатами 20, 20
.
Наши предыдущие рисунки не изменились, качество нашего холста ничем не отличается, единственное, что изменилось, это значение нашей магической единицы .