仿移动话费查询页面生成的饼图

简介: 最近在查询移动历史话费页面上,新增加了一个小小的消费比例的饼图,就是这个小小的饼图,给我修改话费账单页面造成了一点小小的麻烦,如果我要修改账单里得金额,我必须在Photoshop中重新计算消费比例,再根据此修改出一张新的图,非常麻烦。

        最近在查询移动历史话费页面上,新增加了一个小小的消费比例的饼图,就是这个小小的饼图,给我修改话费账单页面造成了一点小小的麻烦,如果我要修改账单里得金额,我必须在Photoshop中重新计算消费比例,再根据此修改出一张新的图,非常麻烦。因此我尝试完全仿照它的样式自己用代码绘制出这样一个“小圆饼”。还好的是,这个小饼比较简单,固定由三部分费用组成,详见下图所示。

      

       这个图虽然比较简单,但也存在绘制饼图的所有“麻烦”要素:

       (1)角度变换问题。饼图并不是正透视,而是倾斜视角,所以角度存在变幻关系。这里的饼图和视平线成一个倾斜夹角,因此我们简单的认为,假设以圆饼圆心为原点,圆饼边缘上的点的横坐标不变,而纵坐标y具有这样的变换关系:y'=y*k; 其中k=椭圆高度/椭圆宽度;如下图所示:

     

       因此 tg a'=k tg a, 即a'=atan( k*tg a );

       另一点需要注意的是,图上的角度以12点为起始点,因此圆饼边界射线的角度值范围从-90~270度,而反正切函数值的范围是-90~90度,反正切后需要把值重新映射到-90~270度范围。

      (2)另一个难点是绘制圆饼的侧面,也就是在视角可见的圆柱面,每一块侧面由上下两段椭圆弧+两侧两个一条垂直线段组成一个闭合路径,然后填充它即可。具体方法参见DrawPieSide方法,代码略。

       这样我们填入相应的金额,点击生成按钮即可生成一张饼图,然后点击保存按钮即可把图片保存到硬盘。

       源代码下载链接:    

       http://files.cnblogs.com/hoodlum1980/JRL_PieGraph.rar       

目录
相关文章
|
tengine 弹性计算 网络安全
[原创]有关tengine几个超时时间说明
负载均衡的客户和技术支持同学经常问: 7层 HTTP Keepalive 超时时间 是15秒 和http 60S 这个超时时间有什么区别? 下边列出来具体的含义 ####1. keepalive_timeout 15s; 长连接中连续两个http/https请求之间空闲的最大时间,超过
4047 0
|
前端开发 Java 测试技术
【IDEA+通义灵码插件】实现属于你的大模型编程助手
【IDEA+通义灵码插件】实现属于你的大模型编程助手
1761 0
|
Java Android开发
Eclipse打不开,出现an error has occured see the log file(日志中出现!MESSAGE FrameworkEvent ERROR !STACK 0)问题
Eclipse打不开,出现an error has occured see the log file(日志中出现!MESSAGE FrameworkEvent ERROR !STACK 0)问题
1139 0
Eclipse打不开,出现an error has occured see the log file(日志中出现!MESSAGE FrameworkEvent ERROR !STACK 0)问题
|
XML Web App开发 API
Android 12上焕然一新的小组件:美观、便捷和实用(1)
Android 12上焕然一新的小组件:美观、便捷和实用(1)
Android 12上焕然一新的小组件:美观、便捷和实用(1)
|
传感器 存储 算法
嵌入式的我们为什么要学ROS
嵌入式的我们为什么要学ROS
651 0
嵌入式的我们为什么要学ROS
|
敏捷开发 新零售 人工智能
对话|鲜丰水果:“看不见”的门店数字化
鲜丰水果:“看不见”的门店数字化。本期对话鲜丰水果,既让我们看到一家传统水果零售企业数字化转型背后那些“看不见”的思考,又让我们学习到优秀且可复制的转型经验。“实现了85%的技术需求,2周内上线;同时拉齐了与业务团队的需求认知,让业务以敏捷开发的模式顺畅地跑了起来。”让研发团队不为基础设施操心、完全专注于业务的敏捷迭代?
1826 3
对话|鲜丰水果:“看不见”的门店数字化
|
API 数据库 云栖大会
云栖大会SaaS加速器专场 | 阿里云李立峰:阿里云全域集成方案——提升5倍全域集成效率
阿里云高级技术专家李立峰(花名:申峰)发布了阿里云全域集成解决方案,并从它的四大核心特点和主要优势,讲述阿里云全域集成解决方案如何帮助实现现代企业数字化转型的中台策略。
4216 0
云栖大会SaaS加速器专场 | 阿里云李立峰:阿里云全域集成方案——提升5倍全域集成效率
|
存储 SQL 安全
内含干货PPT下载|一站式数据管理DMS关键技术解读
深入解读实时数据流、库仓一体数据处理等核心技术
913 0
内含干货PPT下载|一站式数据管理DMS关键技术解读
|
传感器 监控 算法
案例酷第19期| 东方希望:数字化门槛儿到底有多高?
疫情发生前,依托钉钉平台以及云计算,东方希望快速实现了组织的数字化转型,实现了业务数据化、数据业务化,业务、场景、流程完全透明地集成于一个数字化平台之上。疫情期间,东方希望作为一家拥有160余家分子公司的大型企业,通过集成在钉钉端的54个微应用,覆盖集团在远程办公和业务协同的全部场景,利用钉钉平台的组织在线,整体提升了复工复产的组织效率。
1383 0
案例酷第19期| 东方希望:数字化门槛儿到底有多高?
|
机器学习/深度学习 人工智能 算法
佳格天地首席科学家宋宽:参赛倒逼出了技术和产品的真正成熟
众所周知的是,在全球的最近20年发展过程中,从来没有一个国家像中国一样城市化的进程如此之快,社会变化如此日新月异。