Если вы используете NSView, вы можете создать реализацию функции -isFlipped
, возвращающую YES, которая позволит вам рисовать на основе перевернутой системы координат.
В качестве альтернативы, если вы не используете NSView, но делаете необработанный рисунок CoreGraphics, вы можете изменить CTM следующим образом:
CGContextScaleCTM( context, 1.0, -1.0 );
Это взято из этого документа Apple Q & A .
Если вы делаете это с CGContextRef, который вы получили от чего-то другого, вы должны сначала сохранить существующий CTM и восстановить его, когда вы закончите:
CGContextSaveGState( context );
// do your stuff here ...
CGContextRestoreGState( context );
Да, и источник находится в левом нижнем углу, потому что система рендеринга Quartz основана на графической системе PDF, сама основана на PostScript и имеет источник в левом нижнем углу.