1

我目前正在为游戏开发使用转换矩阵。我们拥有的一个功能是基本缩放,这是在用户捏住屏幕时完成的。现在我们知道,为了缩放/放大一个点,我们需要使用用户两根手指之间的中点,我实现了这个。

转换顺序:

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

问题是当用户在最近执行另一个缩放时在对象的另一部分进行缩放,或者如标题所述,在不同的轴心点进行缩放。我当前的实现在一定距离内抖动和传送对象并在该区域执行缩放。所以;

  • 如何缩放第二个枢轴点?
  • 我需要参考上一个枢轴点吗?
  • 两个枢轴点如何相互关联,以及如何将它们转换为矩阵变换。
4

0 回答 0