iphone上如何绘制饼图(使用CGContextAddArc)(原创)
生活随笔
收集整理的這篇文章主要介紹了
iphone上如何绘制饼图(使用CGContextAddArc)(原创)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CGContextAddArc是一個比較強大的函數,建議仔細看一下iphone的開發文檔。
CGContextAddArc(CGContextRef?c,?CGFloat?x,?CGFloat?y,?CGFloat?radius,?CGFloat?startAngle,?CGFloat?endAngle,?intclockwise)
?
- CGContextRef: 圖形上下文
- x,y: 開始畫的坐標
- radius: 半徑
- startAngle, endAngle: 開始的弧度,結束的弧度
- clockwise: 畫的方向(順時針,逆時針)
?
#import <UIKit/UIKit.h> #import <Foundation/Foundation.h>@interface GraphView : UIView {}@end?
?
?
GraphView.m文件: #import "GraphView.h" #define PI 3.14159265358979323846 static inline float radians(double degrees) { return degrees * PI / 180; }@interface GraphView(private) //如果有什么私有方法,在這里聲明 @end@implementation GraphView- (id)initWithFrame:(CGRect)frame {if ((self = [super initWithFrame:frame])) {// Initialization code}return self; }- (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 itCGContextRef ctx = UIGraphicsGetCurrentContext();CGContextClearRect(ctx, rect);// define stroke colorCGContextSetRGBStrokeColor(ctx, 1, 1, 1, 1.0);// define line widthCGContextSetLineWidth(ctx, 4.0);// need some values to draw pie chartsdouble 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); }- (void)dealloc {[super dealloc]; } @end調用代碼如下: GraphView* viewTest = [[GraphView alloc] initWithFrame:CGRectMake(x,y,width,height)]; [self.view addsubView:viewTest]; [viewTest release];
效果圖如下:
轉載于:https://www.cnblogs.com/moshengren/archive/2010/10/19/1855246.html
總結
以上是生活随笔為你收集整理的iphone上如何绘制饼图(使用CGContextAddArc)(原创)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Winodows Phone 7控件详
- 下一篇: 三个监控linux网卡流量脚本