Как я могу сбросить масштаб контекста холста?

У меня есть переменная context, которая является двухмерным контекстом моего холста.

var canvas = document.getElementById('canvas');
context = canvas.getContext('2d');

Вызов context.scale(x,y) несколько раз масштабирует контекст в зависимости от того, что делали предыдущие весы. Например, context.scale(2,2); context.scale(2,2) эквивалентно context.scale(4,4) , Как я могу сбросить масштаб контекста?

12 голосов | спросил Jonah 13 52015vEurope/Moscow11bEurope/MoscowFri, 13 Nov 2015 17:00:30 +0300 2015, 17:00:30

1 ответ


0

scale умножит текущую матрицу преобразования на масштабную матрицу, поэтому, действительно, эти масштабные коэффициенты умножаются. Вы можете использовать стек состояний для сохранения и восстановления текущего преобразования:

context.save();
context.scale(2, 2);
... // anything drawn here is twice as big
context.restore();

Кроме того, вы можете сбросить преобразование, загрузив непосредственно матрицу тождеств:

context.scale(2, 2);
...
context.setTransform(1, 0, 0, 1, 0, 0);
ответил Thomas 13 52015vEurope/Moscow11bEurope/MoscowFri, 13 Nov 2015 17:16:26 +0300 2015, 17:16:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132