iOS 中的转换和特殊缩放
transformations in iOS and particullary Scaling
如果我错了,请纠正我:如果我们有 x=10,y=20,当我们对这些坐标应用变换时(比方说将 x 和 y 缩放 10),新坐标将为 x= 100 和 y = 200。
因此,如果我们将 x 缩放 -1,我们会得到 x= -10,y =20。但是为什么这个动作会导致视图被镜像呢?视图不应该在它的新坐标处重新绘制吗?
我在这里错过了什么?
不要考虑单个坐标,考虑一个坐标范围。
如果您采用... 0、1、2、3、4 的坐标(此处仅为 x 值)并将它们缩放 10,那么它们将分别映射到 0、10、20、30、40 .这将拉伸 x 轴,因此视图看起来比原来大 10 倍。
如果您采用相同的 x 坐标并将它们缩放 -1,那么它们将分别映射到 0、-1、-2、-3、-4。
也就是说,离原点最远的像素(4)仍然是离原点最远的,但现在是-4。
每个像素都通过原点进行镜像。
这就是缩放在 iOS、Android 和一般数学中的工作原理。
如果您只想左右滑动视图而不改变它的大小,那么您可以使用 translation
。
如果我错了,请纠正我:如果我们有 x=10,y=20,当我们对这些坐标应用变换时(比方说将 x 和 y 缩放 10),新坐标将为 x= 100 和 y = 200。 因此,如果我们将 x 缩放 -1,我们会得到 x= -10,y =20。但是为什么这个动作会导致视图被镜像呢?视图不应该在它的新坐标处重新绘制吗? 我在这里错过了什么?
不要考虑单个坐标,考虑一个坐标范围。
如果您采用... 0、1、2、3、4 的坐标(此处仅为 x 值)并将它们缩放 10,那么它们将分别映射到 0、10、20、30、40 .这将拉伸 x 轴,因此视图看起来比原来大 10 倍。
如果您采用相同的 x 坐标并将它们缩放 -1,那么它们将分别映射到 0、-1、-2、-3、-4。
也就是说,离原点最远的像素(4)仍然是离原点最远的,但现在是-4。
每个像素都通过原点进行镜像。
这就是缩放在 iOS、Android 和一般数学中的工作原理。
如果您只想左右滑动视图而不改变它的大小,那么您可以使用 translation
。