`

iPhone 利用CG API画一个饼图(Pie chart)

阅读更多

核心函数是:CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)

 

  • CGContextRef: 图形上下文
  • x,y: 开始画的坐标
  • radius: 半径
  • startAngle, endAngle: 开始的弧度,结束的弧度
  • clockwise: 画的方向(顺时针,逆时针)

有了这个函数可以画出任意扇形,所以饼图也不再话下. 
#define PI 3.14159265358979323846
#define radius 100

static inline float radians(double degrees) { 
	return degrees * PI / 180; 
}

static inline void drawArc(CGContextRef ctx, CGPoint point, float angle_start, float angle_end, UIColor* color) {
	CGContextMoveToPoint(ctx, point.x, point.y);
	CGContextSetFillColor(ctx, CGColorGetComponents( [color CGColor]));    
    CGContextAddArc(ctx, point.x, point.y, radius,  angle_start, angle_end, 0);
    //CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 
}

- (void)drawRect:(CGRect)rect {
	
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextClearRect(ctx, rect);
	
	
	float angle_start = radians(0.0);
	float angle_end = radians(121.0);	
	drawArc(ctx, self.center, angle_start, angle_end, [UIColor yellowColor]);
	
	
	angle_start = angle_end;
	angle_end = radians(228.0);	
	drawArc(ctx, self.center, angle_start, angle_end, [UIColor greenColor]);

	
	angle_start = angle_end;
	angle_end = radians(260);
	drawArc(ctx, self.center, angle_start, angle_end, [UIColor orangeColor]);
	
	
	angle_start = angle_end;
	angle_end = radians(360);
	drawArc(ctx, self.center, angle_start, angle_end, [UIColor purpleColor]);
}
 


 
  • 大小: 18.9 KB
分享到:
评论

相关推荐

    3D 饼图 Pie jquery

    总的来说,“3D饼图Pie jquery”是一个结合了jQuery、3D图形技术和交互设计的项目,通过它可以学习到如何在网页中创建引人注目的数据可视化。这个项目不仅展示了JavaScript的强大能力,还强调了良好的用户体验设计。

    Android HelloChart饼图

    在HelloChart_PieChartTest这个压缩包文件中,可能包含了一个示例项目的源代码,通过查看和运行这个项目,开发者能够更直观地理解如何在实际应用中使用HelloChart库创建饼图。这个例子可能涵盖了上述所有步骤,包括...

    FLChart一个强大的Flutter图表库支持折线图条形图和饼图等

    FLChart是一个专为Flutter框架设计的高级图表库,它提供了丰富的图表类型,包括但不限于折线图、条形图和饼图,使得开发者能够轻松地在Flutter应用中实现数据可视化。这个库是用Dart语言编写的,充分利用了Flutter的...

    绘制饼图并实现动画效果

    饼图由多个扇区组成,每个扇区代表数据的一个部分。我们可以通过JavaScript处理数据,计算出每个扇区的角度,公式为:`angle = (value / total) * 360`,其中`value`是当前部分的值,`total`是所有部分的总和。 ...

    Asp.net 直方图饼图实现方法WebChart实例

    2. **设置数据源**:饼图只有一个系列,但每个数据点都代表一个扇区。通过`Series.Points.AddXY`方法添加数据点,其中X值是类别,Y值是对应的百分比。 3. **定义切片**:通过`SliceStyle`属性可以自定义每个扇区的...

    带有动画效果的饼图

    以“MagicPie-master”这个项目为例,它很可能是一个用JavaScript编写的库,专注于生成具有动画功能的饼图。JavaScript因其广泛应用于Web开发而成为实现此类效果的理想选择。库通常会提供API接口,开发者可以通过...

    C# winform chart 饼图 直方图

    标签"C# winform chart 饼图 直方图"则是一个关键词列表,用于标识文档内容,便于搜索和分类。 文档内容提到的“工具箱”是WinForm开发环境中的一个界面元素,开发者可以在其中找到并拖拽各种控件到窗体上。为了...

    pentaho基本报表饼图chart-pie

    http://blog.csdn.net/wild46cat/article/details/61415218

    c#chart饼图案例.7z

    在C#编程中,Chart控件是一个强大的工具,用于创建各种图表类型,包括饼图。饼图是一种数据可视化方式,它将数据以圆形划分,每个扇区代表一个数据项,扇区的大小与数据值成比例,使得一眼就能看出各部分在整体中所...

    前端项目-pie-chart.zip

    【前端项目-pie-chart.zip】是一个包含AngularJS的饼图组件的前端项目,名为"pie-chart"。这个项目专门用于创建美观且功能丰富的饼状图表,适用于数据分析和数据可视化的需求。AngularJS是一款强大的JavaScript框架...

    自定义双层嵌套饼图实现

    本文将深入探讨如何实现一个自定义的双层嵌套饼图,其中包括内层饼图、外层饼图的展示,以及动态动画和放大效果的添加。 首先,我们要了解饼图的基本原理。饼图是通过将圆周角分配给各个数据类别来表示比例关系的...

    利用QTChart绘制折线、饼图、极地图.rar

    QTChart是Qt库中的一个模块,专门用于创建各种图表,如折线图、饼图、柱状图等,适用于数据可视化。在这个“利用QTChart绘制折线、饼图、极地图.rar”压缩包中,包含了使用QTChart进行图形绘制的源代码示例,通过...

    Pie饼图用到的文件实例

    总结来说,这个实例展示了如何结合ASP.NET、C#、JSON、jQuery和Highcharts库来创建一个交互式的Pie饼图。从服务器获取数据,使用C#处理并转化为JSON,然后通过jQuery和Highcharts在客户端渲染饼图,同时实现点击事件...

    WebChart生成漂亮饼图源码

    总的来说,这个项目提供了一个完整的示例,演示了如何利用WebChart库结合数据库数据创建美观的饼图,对于学习ASP.NET Web应用开发和数据可视化的开发者来说,是一个非常有价值的参考资料。通过研究这个源码,你可以...

    C# 柱状图、折线图、饼图源码(chart控件的简单示例).rar

    首先,我们要知道Chart控件是Windows Forms中的一个强大组件,它支持多种图表类型,如柱状图(Bar Chart)、折线图(Line Chart)和饼图(Pie Chart),适用于各种数据分析和展示需求。以下是对每种图表类型的简要...

    Android炫酷带动画效果的饼图统计绘图源代码

    饼图是一种用于展示数据比例和分布的图形,每个扇区代表一个类别,扇区的大小与该类别的比例成正比。在Android应用中,饼图常用于可视化简单的统计数据,如用户偏好、市场份额等。 在这个项目中,开发者通过自定义...

    用js画简单饼图

    本文将深入探讨如何使用JavaScript来创建一个简单的饼图,以便于理解其基本原理和实现步骤。 首先,我们需要了解饼图的基本概念。饼图由一个圆代表整体,各个扇形部分表示整体中的各个部分所占的比例。每个扇形的...

    pie chart code source

    标题中的“pie chart code source”指的是用于创建饼图的源代码。饼图是一种常见的数据可视化工具,它将数据集中的各个部分表示为整个整体的扇形切片,从而直观地展示各部分占总体的比例。在IT领域,饼图通常由编程...

    winform中chart控件的简单应用,饼图、柱状图、曲线图

    在Windows Forms(Winform)开发中,Chart控件是一个强大的数据可视化工具,它允许开发者将各种类型的数据以图形的方式展示出来,便于用户理解和分析。本文将深入探讨如何在Winform应用中使用Chart控件,包括饼图、...

    Pie chart 绘制三位的饼型

    接着,创建一个Chart对象,并设置其属性来定义饼图的基本样式: ```csharp Chart pieChart = new Chart(); pieChart.Width = 600; pieChart.Height = 400; pieChart.Titles.Add("三维饼图示例"); ``` 然后,定义...

Global site tag (gtag.js) - Google Analytics