iOS多次绘制相同的形状

时间:2013-05-28 19:22:29

标签: ios image drawing

需要石英2d的帮助,这对我来说是全新的。

基本上我的应用程序需要按照触摸,从中心开始多次绘制该行。问题是它必须是动态的,线条必须平均分布(有点像从中心开始的章鱼)。我在android上的方式是我记得数组中的形状路径,而不是通过旋转坐标系多次绘制它,但我无法弄清楚如何在iOS上做到这一点。

我的旋转功能

- (void) rotateContext:(int)angle 
{


    CGContextTranslateCTM(UIGraphicsGetCurrentContext(), self.center.x, self.center.y);
    CGContextRotateCTM(UIGraphicsGetCurrentContext(), radians(angle));
    CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -self.center.x, -self.center.y);


}

它只有在我尝试在drawRect()中执行时才有效,并且它会随之旋转所有路径。

您能否建议我解决问题的好方法?

由于

1 个答案:

答案 0 :(得分:0)

这可以引导您找到解决方案: (可能甚至编译)

/* setup the context */
UIBezierPath *bpath = [UIBezierPath bezierPath];
UIBezierPath *subpath =
[UIBezierPath bezierPathWithOvalInRect:<#some rect#>];
[bpath appendPath:subpath];
/* add more stuff to the path as you wish */

bezierPath.lineWidth = 2;     
/* draw the same path rotated multiple times */
for(NSInteger i = 0; i < 4; i++) {
    [bpath applyTransform:CGAffineTransformMakeRotation(M_PI_2 * i)];
    [bpath stroke];
}
/* teardown the context */

旋转贝塞尔曲线非常棘手,您需要根据预期的结果应用更复杂的变换。

那些bezier路径对象可以存储在数组中或任何你需要的地方。