J'ai fait une vue « Circle » avec ce drawRectMise à l'échelle des iPhone « graphiques vectoriels » sur affines transforme
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(ctx, color.CGColor);
CGContextAddEllipseInRect(ctx, rect);
CGContextFillPath(ctx);
}
Lorsque je tente d'escalader la vue à l'aide CGAffineTransformMakeScale(2.0, 2.0)
, le résultat est floue et pixélisée sur les bords. Cependant, le guide de programmation indique que Quartz utilise des commandes vectorielles pour dessiner des vues et qu'elles continueront à être belles lors de l'utilisation de transformations affines:
Le système de dessin Quartz utilise un modèle de dessin vectoriel. Par rapport à un modèle de dessin raster, dans lequel les commandes de dessin fonctionnent sur des pixels individuels, les commandes de dessin dans Quartz sont spécifiées à l'aide d'un espace de dessin à échelle fixe, appelé espace de coordonnées utilisateur. iPhone OS mappe alors les coordonnées dans cet espace de dessin sur les pixels réels de l'appareil. L'avantage de ce modèle est que les graphiques dessinés à l'aide de commandes vectorielles continuent de bien paraître lorsqu'ils sont redimensionnés à l'aide d'une transformation affine.
Ou est-ce que je n'utilise pas de commandes vectorielles? Sinon, comment ferais-je cela pour dessiner un cercle?
Merci.
Merci beaucoup, bonne explication. – Dan