How to draw a pie chart using iPhone sdk?

Here’s one way to draw a PIE chart using the latest iPhone SDK. There are a ton of tutorials out there that let you get started with the iPhone app development itself and I am by no means any authoritative source on learning how to develop one. Having said that, here’s a class file that will help you use the UIKit and Quartz to draw vector graphics. 

GraphView.h

1
2
3
4
5
6
7
8
9
10
11
12
#
#(nothing to see here)
#
 
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
 
@interface GraphView : UIView {
 
}
 
@end
GraphView.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#import "GraphView.h"
 
#define PI 3.14159265358979323846
static inline float radians(double degrees) { return degrees * PI / 180; }
 
@implementation GraphView
 
- (void)drawRect:(CGRect)rect {
 
 CGRect parentViewBounds = self.bounds;
 CGFloat x = CGRectGetWidth(parentViewBounds)/2;
 CGFloat y = CGRectGetHeight(parentViewBounds)*0.55;
 
    // Get the graphics context and clear it
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextClearRect(ctx, rect);
 
 // define stroke color
 CGContextSetRGBStrokeColor(ctx, 1, 1, 1, 1.0);
 
 // define line width
 CGContextSetLineWidth(ctx, 4.0);
 
 
       // need some values to draw pie charts
 
        double snapshotCapacity =20;
        double rawCapacity = 100;
        double systemCapacity = 1;
 
 int offset = 5;
 double pie1_start = 315.0; 
 double pie1_finish = snapshotCapacity *360.0/rawCapacity; 
 double system_finish = systemCapacity*360.0/rawCapacity;
 
    CGContextSetFillColor(ctx, CGColorGetComponents( [[UIColor greenColor] CGColor]));
    CGContextMoveToPoint(ctx, x+2*offset, y);     
    CGContextAddArc(ctx, x+2*offset, y, 100,  radians(snapshot_start), radians(snapshot_start+snapshot_finish), 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 
 
 // system capacity 
 CGContextSetFillColor(ctx, CGColorGetComponents( [[UIColor colorWithRed:15 green:165/255 blue:0 alpha:1 ] CGColor]));
 CGContextMoveToPoint(ctx, x+offset,y);     
    CGContextAddArc(ctx, x+offset, y, 100,  radians(snapshot_start+snapshot_finish+offset), radians(snapshot_start+snapshot_finish+system_finish), 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 
 
 /* data capacity */
 CGContextSetFillColor(ctx, CGColorGetComponents( [[UIColor colorWithRed:99/255 green:184/255 blue:255/255 alpha:1 ] CGColor]));
 CGContextMoveToPoint(ctx, x, y);     
    CGContextAddArc(ctx, x, y, 100,  radians(snapshot_start+snapshot_finish+system_finish+offset), radians(snapshot_start), 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 
}
                                                                 click here for source code

Popular posts from this blog

How to use nsxmlparser in Iphone SDk?

How to add custom ringtone in iphone?

How to convert string uppercase in iPhone?