Ответ 1
ctx.setTransform(1, 0, 0, 1, 0, 0);
Так как HTML5 translate-method перемещает начало рисования относительно его прежнего происхождения, очевидно. (когда я использую ctx.translate(20,20) дважды подряд, я получаю тот же результат, что и при использовании ctx.translate(40,40)) Ну, теперь проблема в том, что я хотел бы reset происхождение чертежа в его исходное положение (позиция, которую он имел до первого использования на нем translate()), как это сделать?
ctx.setTransform(1, 0, 0, 1, 0, 0);
Вы можете сделать это, используя .save()
и .restore()
ctx.save();
ctx.translate(// do some translations);
// draw whatever
ctx.restore();
Вам нужно вызвать save()
для сохранения состояния текущих контекстов. Затем вы можете выполнять переводы, поворота и т.д. После того, как ваш завершенный вызов restore()
- reset, состояние контекста соответствует тому, что было, когда вы изначально называли save()
.
ctx.resetTransform();
Подробнее см. документация MDN. Он имеет очень низкую совместимость с браузером.