Суббота, 23 Ноября 2024, 02:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
алгоритм масштабирования для сенсорного экрана?
Gargolev43Дата: Четверг, 08 Августа 2013, 17:11 | Сообщение # 1
частый гость
Сейчас нет на сайте
на сенсорном экране есть жест pinch - ставим два пальца и сводим их вместе/разводим в стороны. Можем вычислить координаты этих пальцев.
Для жеста начало координат в левом верхнем углу

Изображение нарисовано через opengl, координаты в нижнем левом углу (вроде удалось перенастроить на левый верхний угол).

Задача - масштабировать относительно центральной точки для pinch. Пока получается только относительно начала координат.

Как я понимаю алгоритм:
1)в качестве целевой точки берем центральную точку pinch, но в координатах opengl - получим точку
2)от точки1 отнимаем центральную точку pinch в координатах экрана (точка2) - точка3 (смещаем изображение в начало координат)
3)масштабируем изображение
4)к точке3 прибавляем точку2 (возвращаем масштабированное изображение на место)

В итоге наилучший результат, которого достиг - изображение масштабируется относительно нужной точки, но таким образом, как будто эта точка была взята на немасштабированном изображении.

Добавлено (05.08.2013, 16:51)
---------------------------------------------
В итоге выяснилось, что при перерисовке перемножаю матрицы преобразования изображения и получаю результирующую матрицу каждый раз заново. Поэтому когда устанавливаю новую точку для масштабирования, то и все предыдущие преобразования сбиваются.

Соответственно проблема в том, как учитывать очередное действие масштабирования относительно уже сделанный преобразований

Добавлено (08.08.2013, 17:11)
---------------------------------------------
решил. Проблема была в неправильном порядке пермножения матриц

Сообщение отредактировал Gargolev43 - Понедельник, 05 Августа 2013, 11:35
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг