ScaleGestureRecognizer:利用 focalPoint 计算缩放矩阵的数学推导 大家好,今天我们深入探讨 ScaleGestureRecognizer 中一个关键环节:如何利用 focalPoint(焦点)计算缩放矩阵。这部分是实现平滑且自然的缩放体验的核心。我们将从数学原理出发,结合代码示例,逐步剖析其中的细节。 1. 缩放矩阵的基础 在理解 focalPoint 的作用之前,我们需要先掌握缩放矩阵的基本概念。一个标准的 2D 缩放矩阵如下所示: | Sx 0 0 | | 0 Sy 0 | | 0 0 1 | 其中,Sx 代表 X 轴方向的缩放比例,Sy 代表 Y 轴方向的缩放比例。如果 Sx 和 Sy 相等,则为均匀缩放;否则为非均匀缩放。将这个矩阵应用于一个点 (x, y),得到缩放后的点 (x’, y’): x’ = Sx * x y’ = Sy * y 这个缩放是以原点 (0, 0) 为中心的。但是,在手势操作中,我们通常希望以手指触摸的中心点(即 focalPoint)为中心进行缩放。这就需要进行坐标变换。 2. 以 focalPoint 为中心的缩放 为 …