我正在解决“缩放变换坐标”的问题。需要帮助

时间:2012-03-12 11:13:08

标签: ios core-graphics

  

使用缩放变换来否定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.

提前致谢,问候。

1 个答案:

答案 0 :(得分:1)

他们只是提请注意这样一个事实:在示例中使用具有负坐标的缩放变换(y)会创建镜像效果。它可能不是obvoius,但是当看着镜子时,轴的方向会发生变化。在这个例子中,他们谈论的是y轴,这导致了上下颠倒的概念。如果你仔细考虑镜子的类比,或者只是选择一个镜子并尝试:),你可以想象/看到顺时针绘制的圆弧将在镜子中逆时针绘制。

请注意,此缩放变换只是反转轴(上下),它根本不影响原点(点被认为是0,0)。这就是为什么对于一个完整的镜像效果你也进行翻译,需要将原点从左上角移动到右下角。