2010-07-29 19 views
0

Je suis en train de développer une application avec un graphique à secteurs. Je veux afficher les valeurs (utilisées pour créer le camembert) à afficher dans la zone correspondante centrale.Comment afficher les étiquettes sur un graphique à secteurs

J'utilise ce code pour dessiner le PieChart:

CGContextSetRGBFillColor(ctx, 0.52, 0.63, 0.31, 1.0); 
    CGContextMoveToPoint(ctx, posX, posY); 
    CGContextAddArc(ctx, posX, posY, r,(startDeg)*M_PI/180.0, (endDeg)*M_PI/180.0, 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 

je peux ajouter les étiquettes sur le dessus de camembert, mais je ne suis pas en mesure de placer l'étiquette dans le centre de la région.

Quelqu'un peut-il s'il vous plaît aidez-moi avec ce problème. C'est très urgent et important. J'ai passé beaucoup de temps sur cette question ...

Merci

Répondre

1

Le « centre » de la région est en quelque sorte un concept mal défini lorsque vous parlez d'une tranche de tarte. Voici ce que je ferais:

Prenez un angle à mi-chemin entre startDeg et endDeg le long d'un rayon d'environ 1/2 à 2/3 de r et plop le centre de votre étiquette là-bas. Il faut une polaire pour rect coordonner la conversion, qui, si vous avez oublié est:

x = r * cos(angle); 
y = r * sin(angle); 
0

étiquette Affichage pour camembert nécessite un petit peu de mathématiques. HUChart est de dessiner la moitié graphique à secteurs mais je pense que vous trouverez quelques informations utiles là-bas.