使用缩放变换来否定y坐标会改变Quartz绘图中的某些约定。例如,如果你打电话 CGContextDrawImage 将图像绘制到上下文中,图像是 当它被绘制到目的地时由变换修改。 同样,路径绘制例程接受指定的参数 是否以顺时针或逆时针方向绘制圆弧 在默认坐标系中。如果修改了坐标系, 结果也被修改,好像图像反映在一个 镜子。在图1-5中,将相同的参数传递给Quartz结果 在默认坐标系中的顺时针弧和a y坐标被否定后的逆时针弧 变换。
这是关于坐标系的apple quartz2d guide。
这第一行是什么意思? Using a scaling transform to negate the y-coordinate alters some conventions in Quartz drawing.
并且在第二行中他们给出了thecgcontextdrawimage
示例,是的,其真正的uikit会自动修改从左下角到左上角的坐标,那么这里的点是什么?
并且也不明白最后一点,passing the same parameters into Quartz results in a clockwise arc in the default coordinate system and a counterclockwise arc after the y-coordinate is negated by the transform.
提前致谢,问候。
答案 0 :(得分:1)
他们只是提请注意这样一个事实:在示例中使用具有负坐标的缩放变换(y)会创建镜像效果。它可能不是obvoius,但是当看着镜子时,轴的方向会发生变化。在这个例子中,他们谈论的是y轴,这导致了上下颠倒的概念。如果你仔细考虑镜子的类比,或者只是选择一个镜子并尝试:),你可以想象/看到顺时针绘制的圆弧将在镜子中逆时针绘制。
请注意,此缩放变换只是反转轴(上下),它根本不影响原点(点被认为是0,0)。这就是为什么对于一个完整的镜像效果你也进行翻译,需要将原点从左上角移动到右下角。