开发中涉及到了绘制图形,实现用多边形展示各个数值的占比,这种情形在支付宝芝麻信用中用到,实际并不复杂,本质就是确定各个点的坐标,然后进行连线。直接上代码如下:
运行效果图
其中需要注意以下几点:
1.确定好中心点,本代码中的中心点即为父视图的中心
2.确定好第一个绘制点的坐标,是以中心点为参照标准,在x轴和y轴上进行加减(正负号由弧度值决定)
3.第一个绘制点 用 CGContextMoveToPoint 方法设置,并放在for循环的外部,顺次绘制出的点,用CGContextAddLineToPoint方法依次连接,并在CGContextClosePath 方法执行后,自动与第一个绘制点闭合。
4.绘制射线的时候,CGContextMoveToPoint 与 CGContextAddLineToPoint 方法同步进行了for循环,因为每次绘制完一条射线,需要从同一个原点开始,而与第3项不同(从上一个绘制点依次连线)
5. 注意正弦和余弦值的用法,x轴用cosf,y轴用sinf,另外,弧度值0-2M_PI,是从正右方向,顺时针算,正下为90度,正左为180度,依次类推。