Objective c iOS图形渲染

Objective c iOS图形渲染,objective-c,ios,graph,drawing,Objective C,Ios,Graph,Drawing,我正在应用程序中渲染图形。涉及到数据处理(绘制点和点之间的线),我感兴趣的是将这些数据映射到图形的顶部 首先,让我告诉你我想做什么(见下文),解决方案是图的基础有一个梯度 我假设解决方案是只拍摄梯度的块图像,然后在代码中剪切边缘(不知何故) 是否有现有的算法(Objective-C)可以做到这一点 谢谢 而您可以通过使用位图数据以任何方式合成图像。另一种简单的方法是创建一个UIView,将所有需要的图像添加到其中,然后从该UIView创建一个图像 如何从UIView创建图像: 我的解决方案是使用

我正在应用程序中渲染图形。涉及到数据处理(绘制点和点之间的线),我感兴趣的是将这些数据映射到图形的顶部

首先,让我告诉你我想做什么(见下文),解决方案是图的基础有一个梯度

我假设解决方案是只拍摄梯度的块图像,然后在代码中剪切边缘(不知何故)

是否有现有的算法(Objective-C)可以做到这一点

谢谢


而您可以通过使用位图数据以任何方式合成图像。另一种简单的方法是创建一个UIView,将所有需要的图像添加到其中,然后从该UIView创建一个图像

如何从UIView创建图像:


我的解决方案是使用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;     
你可以参考: