Масштабирование во второй точке поворота

В настоящее время я работаю с матрицами преобразования для игрового разработчика. Одна особенность, которую мы имеем, - это базовое масштабирование, которое выполняется, когда пользователь зажимает экран. Теперь мы знаем, что для масштабирования / увеличения точки нам нужно использовать среднюю точку между двумя пальцами пользователя, и я реализовал это.

Порядок трансформации:

Matrix.translateM(matrix, 0, xPivot + xTranslate, yPivot + yTranslate, 0f)
Matrix.scaleM(matrix, 0, scale, scale, 1f)
Matrix.translateM(matrix, 0, -xPivot, -yPivot, 0f)

Проблема заключается в том, что пользовательский масштаб в другой части объекта, в то время как недавно выполнил другое масштабирование, или, как говорится в заголовке, масштабируется в другой точке поворота. Моя текущая реализация дрожит и телепортирует объект на определенном расстоянии и выполняет масштабирование в этой области. Так;

  • Как масштабировать вторую точку поворота?
  • мне нужно иметь ссылку на предыдущую точку разворота?
  • Как две точки опоры связаны друг с другом, и как преобразовать их в матричное преобразование.

0 ответов

Другие вопросы по тегам