我正在处理在应用程序中渲染图形。处理数据(绘制点和点之间的线条)被覆盖,我感兴趣的是将这些数据映射到图形的顶部。首先,让我告诉你我想做什么(见下文),解决方案是图基有一个渐变。iOS图形渲染
我认为解决的办法是取一个梯度的块图像,只是在代码(以某种方式)削减边缘。
是否有一个现有的算法(Objective-C)会这样做?
感谢
我正在处理在应用程序中渲染图形。处理数据(绘制点和点之间的线条)被覆盖,我感兴趣的是将这些数据映射到图形的顶部。首先,让我告诉你我想做什么(见下文),解决方案是图基有一个渐变。iOS图形渲染
我认为解决的办法是取一个梯度的块图像,只是在代码(以某种方式)削减边缘。
是否有一个现有的算法(Objective-C)会这样做?
感谢
我的解决办法是将图像映射到与使用bezierPath的路径。请参阅下面的示例代码
UIBezierPath* beizerPath2 = [UIBezierPath bezierPath];
[beizerPath2 moveToPoint:CGPointMake(0.0, 167)]; //Starting Point
[beizerPath2 addLineToPoint:CGPointMake(100, 40)];
[beizerPath2 addLineToPoint:CGPointMake(200, 70)];
[beizerPath2 addLineToPoint:CGPointMake(300, 30)];
[beizerPath2 addLineToPoint:CGPointMake(320, 30)];
[beizerPath2 addLineToPoint:CGPointMake(320, 167)]; //Finishing Point
[beizerPath2 closePath]; //Close Path
NSLog(@"Masking Feedstock with Bezier");
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.path = [beizerPath2 CGPath];
graphFeedStock.layer.mask = maskLayer;
,而你可以合成图像要通过与位图数据工作的任何方式。另一个很简单的方法就是创建一个UIView,添加你想要的所有图像,然后从该uiview创建一个图像。
如何创建一个图像形成的UIView:
您可以参考:http://stackoverflow.com/questions/769749/is-there-a-good-charting-library-for-iphone – samfisher 2012-01-12 18:39:54