我目前正在为游戏开发人员处理转换矩阵。我们拥有的一项功能是基本缩放,当用户捏住屏幕时即可完成。现在我们知道,为了缩放/缩放某个点,我们需要使用用户两个手指之间的中点,而我实现了这一点。
转换顺序:
Matrix.translateM(matrix, 0, xPivot + xTranslate, yPivot + yTranslate, 0f)
Matrix.scaleM(matrix, 0, scale, scale, 1f)
Matrix.translateM(matrix, 0, -xPivot, -yPivot, 0f)
问题是用户在最近执行另一次缩放时在对象的另一部分进行缩放,或者如标题所述,在另一个枢轴点进行缩放。我当前的实现抖动并传送物体一定距离并在该区域执行缩放。所以;