Как работает canvas 2dContext.translate (...)? - PullRequest
1 голос
/ 13 ноября 2011

Я пытаюсь создать приложение, используя OnTouchListener и 2dContext.translate, с 2dContext = canvas.getContext('2d').
Слушатель изменит значения панорамы, когда пользователь коснется экрана и canvas.translate новые координаты.

И теперь я решаю небольшую проблему, как на самом деле работает 2dContext.translate.
Например: я установил первые координаты, используя 2dContext.translate(100,100), это не панорамирование, а реальная координата в представлении.Вторые координаты в представлении [400,400].Что правильно, 2dContext.translate(400,400) или 2dContext.translate(300,300)?

Я имею в виду, нужно ли мне устанавливать новые координаты для последней координаты, такие как pan (100 + 300), или мне нужно устанавливать вторую координату, как полностью новую координату(400)?Имеют ли координаты относительное или абсолютное значение в этом случае?

1 Ответ

2 голосов
/ 14 ноября 2011

Каждый перевод относительно текущего происхождения.Если вы позвоните ctx.translate(x, y), ваш источник сместится x пикселей в направлении x и y пикселей в направлении y.Допустимы как положительные, так и отрицательные значения.

Если вам нужно сохранить различные исходные позиции, используйте ctx.save() и ctx.restore(), чтобы запомнить и сбросить ранее определенные атрибуты холста.Эти функции работают в стеке, поэтому вы можете сохранять несколько состояний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...