Предположим, у меня есть холст 400x200
. Я хочу работать в системе координат, где (0, 0)
находится в точной середине холста и положителен. y
означает повышение и положительный x
означает право.Трансформация холста не ведет себя так, как ожидалось
Итак, я установил преобразование следующим образом:
var ctx = document.getElementById("canvas").getContext("2d");
ctx.setTransform(1, 0, 0, -1, 200, 100);
ctx.fillRect(-20, -20, 40, 40);
<canvas id="canvas" style="width: 400px; height: 200px"></canvas>
Итак, когда я заполняю прямоугольник как в фрагменте выше, я бы ожидал увидеть квадрат с центром в середине элемент холста. Однако при запуске вышеприведенного фрагмента (в последнем Chrome) квадрат явно не центрирован. Почему это? Я что-то не понимаю о матрице преобразования? Если да, то как может Я достигаю своей цели?
Ах, я полностью понимаю. Я не понимал, что существует различие между атрибутами CSS и «родными» атрибутами холста. Благодаря! – cemulate