2013-03-03 2 views
1

J'ai quelques arcs (cercles) que je voudrais stocker dans une variable. Un rectangle peut être stocké comme ceci:stocker un arc dans une variable

CGRect rect = CGRectMake(float x, float y, width, height); 

Leur manière similaire pour stocker les informations nécessaires à un arc ou un chemin?

+0

Comment créez-vous les arcs? –

+0

En règle générale, un arc est un rayon et un angle. –

+0

@JoshCaswell CGContextAddArc (...) – JimmyYXA

Répondre

2

Utilisez UIBezierPath.

De la documentation:

Les chemins peuvent définir des formes simples telles que des rectangles, des ovales et des arcs ou ils peuvent définir des polygones complexes qui intègrent un mélange de segments de ligne droites et courbes.

Vous pouvez, par exemple, dessiner un ovale en procédant comme suit:

- (void)drawRect:(CGRect)rect 
{ 
    UIBezierPath* path = [UIBezierPath bezierPathWithOvalInRect:rect]; 

    [path stroke]; 
} 
+0

le NSBezierPath n'existe pas dans la suggestion automatique. Mais le UIBezierPath fait mais je ne peux pas utiliser cela avec du quartz non? – JimmyYXA

+0

Est-ce que vous écrivez une application iOS ou OS X? Comment envisagiez-vous de dessiner votre rectangle? – ericg

+0

IOS. J'ai un cercle qui est dessiné quand un UIButton est pressé. Et dans la même méthode, je veux qu'un autre cercle soit tracé quand le premier a été dessiné. C'est pourquoi j'ai pensé créer une variable pour commencer. – JimmyYXA

1

La manière rapide/lumière dans la plupart des cas serait de créer un CGPath représentant les arcs (voir aussi CGMutablePath). Vous pouvez ensuite dessiner le chemin dans un CGContext. Vous pouvez également ajouter les paramètres que vous allez passer à CGContextAddArc. Par exemple:

@interface MONArc : NSObject 

@interface (nonatomic, assign, readwrite) CGFloat x; 
@interface (nonatomic, assign, readwrite) CGFloat y; 
@interface (nonatomic, assign, readwrite) CGFloat radius; 
@interface (nonatomic, assign, readwrite) CGFloat startAngle; 
@interface (nonatomic, assign, readwrite) CGFloat endAngle; 
@interface (nonatomic, assign, readwrite) int clockwise; 

@end 

puis enregistrez quelques-unes des personnes dans un NSArray et de les appliquer pour le rendu.

Questions connexes