我对quartz2d的理解是代码CGContextTranslateCTM(context, x, y);
翻译了坐标系。我有一个quartz2d 视图,上面有很多形状,用户需要能够平移和缩放它。但是,在使用CGContextScaleCTM(context, scaleX, scaleY);
代码时,一切都围绕原点进行缩放,而不是用户正在查看的视点中心。
我对此的解决方案是使用以下代码:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, 512.0+offset.x, 384.0+offset.y);
//(512, 384) is the center of the iPad screen
CGContextScaleCTM(context, scale, scale);
你可以很好地翻译,但事情仍然会缩小到角落。怎么了?
编辑:哦。哇。呃。如果移动原点,形状也会移动,因此您不能相对于形状移动它。现在我知道出了什么问题,但我该怎么做?(独立于形状移动原点)